黑马程序员技术交流社区
标题:
【厦门JavaEE就业2期-每日总结】基础加强
[打印本页]
作者:
厦门校区
时间:
2018-7-9 21:12
标题:
【厦门JavaEE就业2期-每日总结】基础加强
同学们,今天是我们基础阶段的最后一天,从后天开始,我们将进入WEB的新解决,做好总结,迎接新的挑战:
1.黑盒测试和白盒测试的区别?
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
3.获取 Class对象有几种方式?他们的用途都在哪?
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
5.注解在程序中都有哪些用途?
6.什么是元注解?
7.文件从编译到运行可以分为哪三个时期?
8.思考:想让一个类加载进内存,有几种方式?
作者:
明月照大姜
时间:
2018-7-9 21:41
杨银万
1.黑盒测试和白盒测试的区别?
黑盒测试:不需要写程序,给定输入值,测试输出值是否与预期一致
白盒测试:需要写程序,检测代码的执行流程
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
将类的各个部分封装成其他类,就是反射机制
反射可以在程序中调用类的各个部分,能够实现代码解耦,提高代码的可扩展性
3.获取 Class对象有几种方式?他们的用途都在哪?
三种:
Class.forName(全类名):多用于加载配置文件
类名.Class():多用于参数传递
对象.getClass():多用于对象获取字节码
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
Class对象.getDeclaredFields();
Class对象.getDeclaredField(变量名);
Class对象.getDeclaredMethods();
Class对象.getDeclaredMethod(方法名,参数...);
5.注解在程序中都有哪些用途?
编译检测:检测被注解修饰部分代码的规范
生成文档:生成doc文档
代码解析:利用反射机制,对被注解修饰部分代码进行解析
6.什么是元注解?
元注解就是用来描述注解的注解
7.文件从编译到运行可以分为哪三个时期?
源代码时期(Resource)
类时期(Class)
运行时期(Runtime)
8.思考:想让一个类加载进内存,有几种方式?
三种:
类加载器new Class
反序列化ObjectInputStream.readObject()
反射Class.forName(全类名)
作者:
刘思聪
时间:
2018-7-9 21:50
同学们,今天是我们基础阶段的最后一天,从后天开始,我们将进入WEB的新解决,做好总结,迎接新的挑战:
1.黑盒测试和白盒测试的区别?
黑盒测试不关注过程和代码,只是关注输入给定值是否能得到预期结果。
白盒测试则是在已知代码的情况下去针对代码的特点去进行测试。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射将类中的组成部分封装为其他对象的形式,反射多被作为框架的底层实现。反射的优点:可以在运行时去操作对象。可以实现程序的解耦,提高代码的扩展性(符合高内聚,低耦合的开发要求)
3.获取 Class对象有几种方式?他们的用途都在哪?
Class.forName("全类名"):加载类文件并获取其对象,多配合自定义注解和配置文件使用。
类名.class:获取已经加载到内存中的类的字节码对象,多用于传参。
对象名.getClass():在已有该类对象的情况下去获取该类字节码对象。
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
使用getDeclaredXxxx的几个方法,可以无视权限修饰符获取到所有的成员方法或者成员变量。如果要实际进行访问时候则需要先访问setAccessible方法设置为ture(暴力访问,但是非必要的话不建议进行该操作,会破坏程序的封装性。)
5.注解在程序中都有哪些用途?
注解,是用来说明程序,“给计算机看的”:
编译检查:告诉编译器对带有注解的部分进行针对性的检查(比如确认方法是不是正确的覆盖重写,该接口是否符合函数式接口等等。
编辑文档:编写文档注释,在生成JavaDoc文档(如JDK官方的API文档也是以该种形式)的时候用来标注一些相关信息:如作者,支持Java版本,类文件本身的版本等。
解析程序:在程序运行时的时候,根据标注的注解去解析程序内容。(可以像配置文件一样配合反射来提高程序扩展性)
6.什么是元注解?
用来描述注解的注解(比如该注解的适用位置以及保存情况和是否自动继承等)
7.文件从编译到运行可以分为哪三个时期?
源代码阶段:从.java源码编译成.class文件;
类加载器阶段:将字节码文件加载到内存中,此阶段会产生字节码对象
运行时阶段:程序开始实际运行执行其中的业务逻辑。
8.思考:想让一个类加载进内存,有几种方式?
调用该类的构造方法。
逆序列化之前序列化过的该类的对象。
反射获取构造器对象。使用该构造器对象来创建对象。
作者:
abaoo2018
时间:
2018-7-9 21:51
梁端刚
1.黑盒测试和白盒测试的区别?
黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
白盒测试:需要写代码的。关注程序具体的执行流程。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
将类的各个组成部分封装为其他对象,这就是反射机制
反射在框架设计中比较常见
使用反射可以在程序运行过程中,操作这些对象。
可以解耦,提高程序的可扩展性。
3.获取 Class对象有几种方式?他们的用途都在哪?
Class.forname(全类名) 配置文件
类名.class 参数的传递
对象名.getClass 对象的获取字节码的方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
使用暴力反射setAccessible(true)
5.注解在程序中都有哪些用途?
说明程序的。给计算机看的
6.什么是元注解?
用于描述注解的注解
7.文件从编译到运行可以分为哪三个时期?
Source源代码阶段
Class类对象
Runtime运行时阶段
8.思考:想让一个类加载进内存,有几种方式?
创建类对象
字节码文件获取类对象
序列化操作获取类对象
作者:
wangyuchen
时间:
2018-7-9 21:51
王宇晨
1.黑盒测试和白盒测试的区别?
黑盒测试:不需要写代码,输入值,看程序能否给出期望输出值。
白盒测试:需要写代码,关注程序执行的流程。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射就是将各个组成部分分装为其他对象。
反射可以在框架的基础上进行开发,简化代码。
反射可以解耦,提高程序的可扩展性。
3.获取 Class对象有几种方式?他们的用途都在哪?
有三种方式。
Class.forName():多用于配置文件,读取文件,加载类。
类名.class:多用于参数的传递
对象名.getclass():多用于对象的获取字节码的方式。
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
获取被私有的成员变量:Field[] getDeclaredFields(),field getDeclaredField(String name)
获取被私有的成员方法对象:Method[] getDeclaredMethods(),Method getDeclaredMethod(String name,类<?>...parameterTypes)
5.注解在程序中都有哪些用途?
用于描述程序,方便程序员的理解,可以根据注解生成文档,通过代码注解进行分析。
6.什么是元注解?
用于描述注解的注解。
7.文件从编译到运行可以分为哪三个时期?
源代码时期、
类时期、
运行时期
8.思考:想让一个类加载进内存,有几种方式?
反射、类加载器、
反序列化
作者:
就叫那个谁
时间:
2018-7-9 21:55
谢精良
1.黑盒测试和白盒测试的区别? 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
白盒测试:需要写代码的。关注程序具体的执行流程。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射:将类的各个组成部分封装为其他对象,这就是反射机制
反射在框架设计中见到
好处:可以在程序运行过程中,操作这些对象
可以解耦,提高程序的可扩展性。
3.获取 Class对象有几种方式?他们的用途都在哪?
三种
1)Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 多用于配置文件,将类名定义在配置文件中。读取文件,加载类
2)类名.class:通过类名的属性class获取 多用于参数的传递
3)对象.getClass():getClass()方法在Object类中定义着 多用于对象的获取字节码的方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
getDeclaredFields() 获取被私有的成员变量
Field[] getFields() 获取被私有的成员变量
5.注解在程序中都有哪些用途?
1)编写文档:通过代码里标识的注解生成文档【生成文档doc文档】
2)代码分析:通过代码里标识的注解对代码进行分析【使用反射】
3)编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】
6.什么是元注解?
元注解:用于描述注解的注解
7.文件从编译到运行可以分为哪三个时期?
Source源代码阶段 Class类对象阶段 Runtime运行时阶段
8.思考:想让一个类加载进内存,有几种方式?
创建类的对象
反射加载并创建实例
序列化操作获取类对象
作者:
苏华清
时间:
2018-7-9 21:56
1.黑盒测试和白盒测试的区别?
黑盒不需要代码,看结果 白盒需要代码,看过程
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射是将类的各个部分封装成对象,使用反射提高程序的可扩展性,需求改变只需要更改封装的对象
3.获取 Class对象有几种方式?他们的用途都在哪?
获取Class对象的方式有三种,Class.forName("全类名") 加载字节码文件,用于文件配置
类名.class 用于参数传递 对象.getClass 用于对象获取字节码
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
getDeclaredFields() getDeclaredMethods()
5.注解在程序中都有哪些用途?
编写文档 代码分析 编译检查
6.什么是元注解?
描述自定义注解的注解
7.文件从编译到运行可以分为哪三个时期?
文件从编译到运行可以分为源码 、类 、 运行
8.思考:想让一个类加载进内存,有几种方式?
类加载器
Class.forName(全类名)
作者:
厦门黑马王子
时间:
2018-7-9 21:56
郑雪平
今天学Junit单元测试,反射和注解;Junit单元测试的测试分类:1.黑盒测试,2.白盒测试。Junit的使用步骤:1.定义测试类,2.定义测试方法;3.给方法加@TEST,4.导入juni依赖环境。判定结果分两种:红色表示失败绿色表示成功;反射的内容很多,好处是1. 可以在程序运行过程中,操作这些对象。2.可以解耦,提高程序的可扩展性。获取对象的方式有三种:1. Class.forName("全类名"),2. 类名.class。3. 对象.getClass。反射:将类的各个组成部分封装为其他对象,这就是反射机制。同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。注解是也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。获取成员变量:Field[] getFields() ;Field getField(String name);Field[] getDeclaredFields();Field getDeclaredField(String name)2.获取成员方法们的方法:Method[] getMethods() ;Method getMethod;Method[] getDeclaredMethods() ;Method getDeclaredMethod
元注解:就是用于描述注解的注解。
作者:
阿二木
时间:
2018-7-9 21:58
1.黑盒测试和白盒测试的区别
黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
白盒测试:需要写代码的。关注程序具体的执行流程。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射:将类的各个组成部分封装为其他对象,这就是反射机制多用于框架
1. 可以在程序运行过程中,操作这些对象。
2. 可以解耦,提高程序的可扩展性。
3.获取 Class对象有几种方式?他们的用途都在哪
1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象
多用于配置文件,将类名定义在配置文件中。读取文件,加载类
2. 类名.class:通过类名的属性class获取
多用于参数的传递
3. 对象.getClass():getClass()方法在Object类中定义着。
多用于对象的获取字节码的方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
Class对象.getDeclaredFields( );
Class对象.getDeclaredField(变量名);
Class对象.getDeclaredMethods( );
Class对象.getDeclaredMethod(方法名,参数...);
5.注解在程序中都有哪些用途?
编写文档:通过代码里标识的注解生成文档【生成文档doc文档】
代码分析:通过代码里标识的注解对代码进行分析【使用反射】
编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】
6.什么是元注解?
元注解:用于描述注解的注解
@Target:描述注解能够作用的位置
@Retention:描述注解被保留的阶段
@Documented:描述注解是否被抽取到api文档中
@Inherited:描述注解是否被子类继承
7.文件从编译到运行可以分为哪三个时期?
源代码阶段(Source),类加载阶段(Class),运行时阶段(Runtime)
8.思考:想让一个类加载进内存,有几种方式?
注解,配置文件,直接创建类对象,
作者:
康春达
时间:
2018-7-9 21:58
1.黑盒测试和白盒测试的区别?
简单不需要写代码 白盒相反
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
框架设计的灵魂 可以简化代码
3.获取 Class对象有几种方式?他们的用途都在哪?
三种 forname .class getclass 加载配置文件
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
getDeclaredFields();getDeclaredMethods();
5.注解在程序中都有哪些用途?
检测 @override 生成文档api
6.什么是元注解?
元”“ 注解
7.文件从编译到运行可以分为哪三个时期?
Resource ClassRuntime
8.思考:想让一个类加载进内存,有几种方式?
.class
作者:
598170337
时间:
2018-7-9 21:58
1.黑盒测试和白盒测试的区别?
黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
白盒测试:需要写代码的。关注程序具体的执行流程。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
可以在框架的基础上进行软件开发,简化编码
将类的各个组成部分封装为其他对象,这就是反射机制
3.获取 Class对象有几种方式?他们的用途都在哪?
Class.forName("全类名"):将字节码文件加载进内存,返回Class对象
多用于配置文件,将类名定义在配置文件中。读取文件,加载类
类名.class:通过类名的属性class获取 多用于参数的传递
对象.getClass():getClass()方法在Object类中定义着。
多用于对象的获取字节码的方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
Field[] getDeclaredFields() 获取所有的成员变量,不考虑修饰符
Method[] getDeclaredMethods()
setAccessible(true) 暴力反射
5.注解在程序中都有哪些用途?
编写文档:通过代码里标识的注解生成文档【生成文档doc文档】
代码分析:通过代码里标识的注解对代码进行分析【使用反射】
编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】
6.什么是元注解?
用于描述注解的注解
自定义注解 注解本质上就是一个接口,该接口默认继承Annotation接口
7.文件从编译到运行可以分为哪三个时期?
Source 源代码阶段
Class类阶段
Runntime运行阶段
8.思考:想让一个类加载进内存,有几种方式?
Person person = new Person()
Class.forName()
反序列化ObjectInputStream.readObject()
作者:
夜太美
时间:
2018-7-9 21:59
贾宗虎
1.黑盒测试和白盒测试的区别?
黑盒测试: 不需要写代码,输入一个值,看得到的结果是不是期望值
白盒测试: 需要写代码,更关注代码运行的过程
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射是: 将类中的各个组成部分,封装为不同对象,就是反射机制
反射是框架的灵魂设计,使用反射可以使我们在运行过程中操作方法,变量等,更加灵活.可以解耦,提高程序扩展性
3.获取 Class对象有几种方式?他们的用途都在哪?
三种
1.Class.forName(类名) 多用于配置文件
2.类名.class 多用于当做参数
3.对象.getClass() 多用于对象的获取字节码的方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
获取成员变量对象: getDeclaredFiled方法,getDeclaredFileds方法
获取成员方法对象: getDeclaredMethod方法,getDeclaredMethods方法
以上方法只能获取,不能增删改.需要更改的话,需要暴力反射,对象.setAccessible()方法
5.注解在程序中都有哪些用途?
①编写文档,通过注解生成doc(api)文档
②编译检查,例如:Override,让编译器实现编译检查
③代码分析,通过注解标识,能够对代码进行分析
6.什么是元注解?
用来描述注解的注解
常用四个
①Target,描述注解适用的地方(类,方法,变量)
②Retention,描述注解保留的阶段
③Documented,描述注解是否被抽取到文档中
④Inherited描述是否被子类继承
7.文件从编译到运行可以分为哪三个时期?
source阶段,class字节码阶段,runtime运行阶段
8.思考:想让一个类加载进内存,有几种方式?
面向对象方式: new 类名();
反射: 字节码对象.newInstance;
反序列化: ObjectInputStream 调用readObject方法
作者:
王_叔叔
时间:
2018-7-9 22:00
王博
1.黑盒测试和白盒测试的区别?
黑盒: 不需要写代码, 只需要输入值, 看最后得到的结果是不是所希望的
白盒: 需要写代码来测试具体的执行流程
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
通过字节码文件获取类中的属性,方法等
可以在程序运行时修改这些属性,方法, 可以提高程序的可拓展性
3.获取 Class对象有几种方式?他们的用途都在哪?
1. Class.forName("全类名"): 多用于加载配置文件
2. 类名.class: 多用于参数的传递
3. 对象.getClass(): 这个用的比较少
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
通过暴力反射: setAccessible(true)
5.注解在程序中都有哪些用途?
编写文档
代码分析
编译检查
6.什么是元注解?
写在注解的上面,用来描述注解(元注解也是注解)
用来确定被描述注解使用的范围(是用在方法上还是类上......), 描述该注解保留的阶段,
是否生成到API文档
是否被子类继承
7.文件从编译到运行可以分为哪三个时期?
源码阶段, Class类对象阶段, 运行时阶段
8.思考:想让一个类加载进内存,有几种方式?
反射, 类加载器, 反序列化
作者:
a3939889
时间:
2018-7-9 22:01
吴佳更
1.黑盒测试只需无脑执行,而白盒测试是通过代码断言结果去判断程序是否正确。
2.将类的各个部分封装成为其他对象。他有两个好处,一个可以在程序执行时候操作这些对象。一个可以解耦,提高扩展性。
3.有三种方式。
1.Class.forName(全类名),用于配置文件。读取类,加载文件
2.类名.class 用于参数的传递
3.对象.getclass 用于获得对象的字节码。
4.getDeclaredFields
getDeclaredmethods
5.1.编写文档
2.代码分析
3.编译检查
6.用于描述注解的注解。
@Target 注解的作用地方
@Retention 注解作用的时候
@Documented 描述注解是否添加到API
@Inherited 描述注解是否被子类继承
7.Source源代码阶段
Class类对象阶段
Runtime运行阶段
8.两种,一种直接new对象
一种通过反射加载类型。
作者:
杨银龙
时间:
2018-7-9 22:01
1.黑盒测试和白盒测试的区别?
黑盒:不需写代码,给输入值查看结果是否是期望值;
白盒:需要写代码,靠代码执行测试
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
将类的各个组成部分封装成其他对象;
因为 可以解耦,提高程序可扩展性;可以在程序运行过程中操作这些对象
3.获取 Class对象有几种方式?他们的用途都在哪?
3种;Class.forName("全类名")多用于配置文件;
类名.Class 多用于参数的传递;
对象.getclass 对象获取字节码的方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
.getDeclaredFields()
.getDeclaredField(String name)
setAccessible(true):暴力反射
5.注解在程序中都有哪些用途?
编写代码;代码分析;编译检查
6.什么是元注解?
用于描述注解的注解
7.文件从编译到运行可以分为哪三个时期?
Source源代码阶段;Class类对象阶段;Runtime运行时阶段
8.思考:想让一个类加载进内存,有几种方式?
Class.forName(“全类名”);类.Class;反射
作者:
蔡超凡
时间:
2018-7-9 22:01
1.黑盒测试和白盒测试的区别?
黑盒测试:输入预期值进行反复测试
白盒测试:通过写代码来进行反复测试,关注的是代码的过程.
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
将类的各个组成部分封装成其他对象.反射的用途是可以在运行时间创建对象,可以解耦.
3.获取 Class对象有几种方式?他们的用途都在哪?
[1]通过Class.forName(类全称),在编译时期获取类的字节码对象.用于配置文件的加载或者注解接口加载
[2]通过类名.class,一般用于参数的传递
[3]通过对象.getclass,用于获取对象的字节码文件.
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
可以通过setAccessible(true)方法来暴力访问.
5.注解在程序中都有哪些用途?
对程序进行说明,注释
6.什么是元注解?
元注解用来注解自定义的注解.
@Target:限定该注解作用在类或者方法或者字段上
@Retention:注解后可以分别在三个时期被识别
@Documented:注解后可以把注解写进api文档
@Inherited:注解后可以被子类继承
7.文件从编译到运行可以分为哪三个时期?
resource编译时期,类对象时期,运行时期.
8.思考:想让一个类加载进内存,有几种方式?
[1]new 对象
[2]通过反射的方式加载,其中又分为小三种.
作者:
杨权
时间:
2018-7-9 22:04
1.黑盒测试和白盒测试的区别?
黑盒测试:直接输入值,看程序能否给出期望输出值。
白盒测试:需要写代码,关注程序执行的流程。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射指的是将各个组成部分分装为其他对象。
一般应用在框架的基础上进行开发,简化代码。
使用反射可以解耦,提高程序的可扩展性。
3.获取 Class对象有几种方式?他们的用途都在哪?
有以下三种方式。
Class.forName():多用于配置文件,读取文件,加载类。
类名.class:多用于参数的传递
对象名.getclass():多用于对象的获取字节码的方式。
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
获取被私有的成员变量:
Field[] getDeclaredFields(),field getDeclaredField(String name)
获取被私有的成员方法对象:
Method[] getDeclaredMethods(),Method getDeclaredMethod(String name,类<?>...parameterTypes)
5.注解在程序中都有哪些用途?
用于描述程序,方便程序员的理解,可以根据注解生成文档,通过代码注解进行分析。
6.什么是元注解?
用来描述注解的注解
7.文件从编译到运行可以分为哪三个时期?
源代码时期、类时期、运行时期
8.思考:想让一个类加载进内存,有几种方式?
反射、类加载器、反序列化
作者:
lin12345
时间:
2018-7-9 23:40
林焕
1.黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值;
白盒测试:需要写代码,关注的是程序的执行流程;
2.反射:将类的各部分封装成其他对象,这就是反射机制;
使用的好处:可以在程序运行的过程中,操作这些对象;
可以解耦,提高程序的可拓展性;
3.获取Class对象方式:
1.Class.forName("全类名")
2.类名.class
3.类对象.getClass()
4.Field[] getDeclaredFields() 获取所有的成员变量,不考虑修饰符
Field getDeclaredField(String name)
5.5.1编写文档:通过代码里标识的注解生成文档【生成文档doc文档】
5.2代码分析:通过代码里标识的注解对代码进行分析【使用反射】
5.3编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】
6.元注解:用于描述注解的注解
7.源代码阶段--Class类对象阶段--Runtime运行阶段
8.获取类加载进内存有3种方式:
new类的对象;
反序列化;
反射;
作者:
丶犯二
时间:
2018-7-10 00:11
1.黑盒测试和白盒测试的区别?黑盒测试不需要写代码,给定输入值,看程序能否输出期望的值
白盒测试需要写代码,关注程序的执行流程
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
将类的各个组成部分封装成其他对象,就是反射多与配合框架使用,简化代码
反射可以在编程过程中对类的各个部分进行操作,实现了解耦,提高了代码的可扩展性
3.获取 Class对象有几种方式?他们的用途都在哪?
三种方式:Class.forName("全类名") 将字节码文件加载进内存,返回对象.常用语配置文件
类名.class 多用于参数的传递
对象名.getclass(), 对象获取字节码的方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
Class对象.getDeclaredField("变量名")返回一个指定变量名的私有变量
Class对象.getDeclaredFields(),返回包含所有私有成员变量的数组
Class对象.getDeclaredMethod("方法名",参数) 返回指定私有方法的对象
Class对象.getDeclaredMethods() 返回包含所有私有成员方法的数组
5.注解在程序中都有哪些用途?
编写文档: 生成doc文档
代码分析: 通过反射分析被注解的代码
编译检查: 检测被注解的代码是否符合规范
6.什么是元注解?
用于解释注解的注解
7.文件从编译到运行可以分为哪三个时期?
源代码时期Source
类时期Class
运行时期Runtime
8.思考:想让一个类加载进内存,有几种方式?
反序列化 ObjectInputStream
Class.forName("全类名") 将类加载进内存
类加载器 new Class
作者:
想不出名字Snail
时间:
2018-7-10 09:17
洪文生
1.黑盒测试和白盒测试的区别?
黑盒测试只要写入输入值,不需要写代码,获取的输出结果与期望值进行对比。
白盒测试需要写相应的测试类进行测试,一般会用断言操作来处理结果,比较直观
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射就是讲一个类的各部分封装为对象,并且能够通过调用方法获取这个类的属性和方法。
应用场景:可以和配置文件一起构建简易的框架;还可以和注解结合进行代码分析
使用反射的原因:可以在程序运行时期操作对象;降低程序的耦合性,提高程序的可拓展性。
3.获取 Class对象有几种方式?他们的用途都在哪?
三种方式。第一种,通过Class.forName("全类名"),通常是和配置文件或者注解配合使用
第二种,类名.class 通常是用在参数的 传递上
第三种,对象.getClass, 通常是用在具体对象上,获得该对象的字节码对象,可以用在测试类上
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
通过调用getDeclaredFields和getDeclaredMeds就分别可以得到所用忽略修饰符的成员变量和成员方法对象
5.注解在程序中都有哪些用途?
1,编译检查如 @Override,
2,生成doc文档
3,结合反射进行代码分析
6.什么是元注解?
描述注解的注解。通常有Targed,描述注解作用的位置;Rentention,描述注解被保留的时间段;Documented描述注解是否抽取到api文档中;Inherited描述注解是否被子类继承
7.文件从编译到运行可以分为哪三个时期?
三个阶段:1,Source源代码阶段:.java文件经javac编译成.class文件 2,.class文件经类加载器按类的各个部分(成员变量Field,构造方法Constructor,成员方法Method)加载进内存称为对象 3,Runtime运行阶段:对象被创建的阶段
8.思考:想让一个类加载进内存,有几种方式?
1,通过new关键字将类加载进内存;
2,通过Class对象的三种方式将类加载进内存
作者:
1NightStand
时间:
2018-7-10 09:36
1.黑盒测试和白盒测试的区别?
黑盒测试比较简单粗暴,不需要写程序,只关心输入和输出的结果是否达到预期.
白盒测试通过代码完成,可以运算可以达到毫秒级别,关注具体的执行流程.
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射是将类的组成部分封装为其它对象.
反射运用到框架居多,因为通过反射我们在使用框架时可以不需要修改里面的代码只需要修改配置文件就可以创建任意对象和调用任意方法.并且在程序运行的时候去调用这些对象,提高程序的扩展性,实现代码解耦.
3.获取 Class对象有几种方式?他们的用途都在哪?
a)Class.forName("全类名"); 用于配置文件.
b)类名.class; 用于参数传递
c)对象名.getClass; 用于对象获取字节码方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
通过getDeclaredFields和getDeclaredMethods,不考虑修饰符都可以获取.
5.注解在程序中都有哪些用途?
a)可以变成文档,通过javadoc命令生成.
b)代码分析,通过代码里标注的注解对代码进行分析(使用反射).
c)编译检查,被标注的代码会自动检查,如果不符合注解的要求则报错,例如:@Override
6.什么是元注解?
元注解是用于注解注解的注解,例如用于给注意设定可以被注解的位置(类,方法,或变量).常用的有@Target和@Retention
7.文件从编译到运行可以分为哪三个时期?
从编译运行有源代码阶段(Source)->类对象阶段(Class) ->运行时阶段(Runtime)
8.思考:想让一个类加载进内存,有几种方式?
a)new 类名
b)反序列化,ObjectInputStream.readObject("反序列化文件名");
c)反射,Class.forName("全类名");
雷锋
作者:
xiguahx
时间:
2018-7-10 09:50
黄希
1.黑盒测试和白盒测试的区别?
黑盒测试:不需要写代码,给输入值,看程序能否输出期望值;
白盒测试:需要写代码,关注程序的执行过程。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
将类的各个组成部分封装为对象,可以在程序运行期间,动态的操作这些对象。
例如:
获取类的Class对象
获取Class对象的构造方法,进行调用,创建该类的实例
获取Class对象的成员变量,进行读写操作
获取Class对象的成员方法,进行调用
还可以结合多态实现解耦,提高程序的可扩展性。
通过反射创建类的对象,赋值给该类的父类对象或该类实现的接口对象。
3.获取 Class对象有几种方式?他们的用途都在哪?
1、Class.forName("类全名");
多用于从配置文件读取类全名,获取Class对象
2、类名.class
多用于参数传递
3、对象.getClass()
多用于获取对象的字节码
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
先调用Class对象的getDeclaredField()方法,获取指定的成员变量。如果想对该成员变量进行读写操作,需要先调用该成员变量的setAccessible(true)方法,忽略访问权限修饰符的检查。
私有的成员方法对象,通过调用Class对象的getDeclaredMethod()方法进行获取。如果想调用该成员方法,也是需要先调用该成员方法的setAccessible(true)方法,忽略访问权限修饰符的检查。
5.注解在程序中都有哪些用途?
可以标记在类、接口、方法、成员变量、方法参数等位置,给编译器使用。在程序运行期间,根据预先定义好的代码,通过反射机制,执行特殊操作。
6.什么是元注解?
元注解是描述注解的注解。
有4种:
@Target:描述该注解可以标记在什么位置
Element.TYPE 标记在类上
Element.METHOD 标记在方法上
Element.FIELD 标记在成员变量上
@Retention:描述该注解被保留的阶段
常使用RetentionPolicy.RUNTIME,表示该注解保留在.class文件中,可以被JVM读取
@Documented:描述该注解是否被抽取到API文档中
@Inherited:描述该注解是否能被子类继承
7.文件从编译到运行可以分为哪三个时期?
Source源代码阶段:将.java文件编译成.class字节码文件
Class类对象阶段:通过类加载器ClassLoader将.class字节码文件加载到内存中
Runtime运行时阶段:创建对象
8.思考:想让一个类加载进内存,有几种方式?
1、调用类的构造方法,创建该类的对象
new 类名(参数);
2、使用ObjectInputStream对象,调用readObject()方法,将文件内容反序列化为对象
3、先获取该类的Class对象,调用newInstance()方法,创建该类的对象
4、先获取该类的Class对象,调用getConstructor()方法,获取该类的构造方法,再调用newInstance(参数)方法,创建该类的对象
作者:
Travis_Lin
时间:
2018-7-10 10:55
===迷人的反派角色林传伟=====
1.黑盒测试和白盒测试的区别?黑盒测试不需要编写代码,
白盒测试需要编写代码,关注程序的执行过程
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射就是将类中的各个组成部分封装成对象,反射是框架设计的灵魂.有两点好处,一是可以在程序的运行中操作这些对象,二是可以解耦,提高程序的拓展性
3获取 Class对象有几种方式?他们的用途都在哪?
有三种
Class.forName() 通常用在获取配置文件
类名.class 用于参数的传递
对象.getClass() 对象获取字节码
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
Field getDeclaredField(String name)
Method getDeclaredMethod(方法名)
5.注解在程序中都有哪些用途?
生成文档,通过代码里标识的注解生成doc文档
代码分析,通过代码里的注解对代码进行分析
编译检查,如@Override
6.什么是元注解?
用于描述注解的注解
@Target 描述作用位置
@Retention 描述注解被保留阶段
@Documented 描述是否被抽取到文档中
@Inherited 描述注解是否被子类继承
7.文件从编译到运行可以分为哪三个时期?
源代码阶段
Class类对象阶段
Runtime运行时阶段
8.思考:想让一个类加载进内存,有几种方式?
通过注解
通过配置文件
直接加载
作者:
彭东亮
时间:
2018-7-10 11:34
彭东亮
1.黑盒测试和白盒测试的区别?
黑盒测试:通过手动点击输入等操作来运行程序,效率低下,不容易发现错误;
白盒测试:通过编写代码来实现所需要测试程序,效率高,能精确定位到错误。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射将类中的各个组成部分,有成员变量,成员方法,构造方法等封装称其他对象,
使用反射有利于降低代码的耦合性,提高代码的拓展性;可以在程序运行过程中,操作这些对象,而不改变类中的任何代码;
3.获取 Class对象有几种方式?他们的用途都在哪?
有三种:(1)类名.class;多用于参数传递;(2)Class.forName(),将字节码文件加载进内存,返回Class对象;多用于配置文件;(3)对象.getClass;多用于对象的获取字节码文件方式。
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
使用暴力反射,来忽略权限修饰符安全检查,或者使用Field[] getDeclaredFields()/Field getDeclaredField(String name) 来获取所有或者指定的成员变量,而不考虑修饰符;Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)/ Constructor<?>[] getDeclaredConstructors()来获取所有或者指定的成员方法,不考虑修饰符;
5.注解在程序中都有哪些用途?
注解可以声明在包,类,字段,方法,局部变量,方法参数等前面,用于对元素进行说明注释;
6.什么是元注解?
用于描述注解的注解
7.文件从编译到运行可以分为哪三个时期?
Source源代码阶段,Class类对象阶段,Runtime运行时阶段
8.思考:想让一个类加载进内存,有几种方式?
三种
通过Class.forName()方法将字节码文件加载进内存;
序列化操作
类加载器
作者:
陈绍飞.
时间:
2018-7-10 23:49
1.黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。白盒测试:需要些代码的,关注程序具体的执行流程。
2.将类的各个组成部分封装为其他对象,主要是应用框架上。因为可以在程序运行过程中操作这些对象,可以解耦提高程序的扩展性。
3.Class.forName("全类名"):多用于配置文件。类名.class多用于参数的传递。对象.getClass()多用于对象的获取字节码的方式。
4.获取私有的成员变量可以通过getDeclaredFields()获取私有的成员方法getDeclaredMethods()私有也可以通过暴力反射setAccessible(true)
5.编写文档生成文档doc文档,代码分析使用反射,编译检查Override。
6.元注解:用于描述注解的注解
7.Source源代码阶段,Class类对象阶段,Runtime运行阶段
4.反射,类加载器,反系列化
作者:
1982Monster
时间:
2018-7-11 21:41
刘慧梅
1.黑盒测试和白盒测试的区别?
输入值,看程序输出的值是否和预想的值一致
需要写代码,注重具体的执行流程
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
3.获取 Class对象有几种方式?他们的用途都在哪?
class.forName(),主要用于配置文件
类名.class(),主要用于参数的传递
对象.getClass(),用于对象获取字节码
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
Class字节码对象.getDeclaredConstructor()
Class字节码对象.getDeclaredConstructors()
Class字节码对象.getDeclaredMethod()
Class字节码对象.getDeclaredMethods()
5.注解在程序中都有哪些用途?
说明程序,代码分析
6.什么是元注解?
用来描述注解
7.文件从编译到运行可以分为哪三个时期?
Source源代码,Class类加载,Runtime运行
8.思考:想让一个类加载进内存,有几种方式?
反射,序列化,类加载器
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2