A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

同学们,今天是我们基础阶段的最后一天,从后天开始,我们将进入WEB的新解决,做好总结,迎接新的挑战:
1.黑盒测试和白盒测试的区别?
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
3.获取 Class对象有几种方式?他们的用途都在哪?
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
5.注解在程序中都有哪些用途?
6.什么是元注解?
7.文件从编译到运行可以分为哪三个时期?
8.思考:想让一个类加载进内存,有几种方式?

26 个回复

倒序浏览
杨银万
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(全类名)
回复 使用道具 举报
同学们,今天是我们基础阶段的最后一天,从后天开始,我们将进入WEB的新解决,做好总结,迎接新的挑战:
1.黑盒测试和白盒测试的区别?
黑盒测试不关注过程和代码,只是关注输入给定值是否能得到预期结果。
白盒测试则是在已知代码的情况下去针对代码的特点去进行测试。

2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射将类中的组成部分封装为其他对象的形式,反射多被作为框架的底层实现。反射的优点:可以在运行时去操作对象。可以实现程序的解耦,提高代码的扩展性(符合高内聚,低耦合的开发要求)

3.获取 Class对象有几种方式?他们的用途都在哪?
Class.forName("全类名"):加载类文件并获取其对象,多配合自定义注解和配置文件使用。
类名.class:获取已经加载到内存中的类的字节码对象,多用于传参。
对象名.getClass():在已有该类对象的情况下去获取该类字节码对象。

4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
使用getDeclaredXxxx的几个方法,可以无视权限修饰符获取到所有的成员方法或者成员变量。如果要实际进行访问时候则需要先访问setAccessible方法设置为ture(暴力访问,但是非必要的话不建议进行该操作,会破坏程序的封装性。)

5.注解在程序中都有哪些用途?
注解,是用来说明程序,“给计算机看的”:
编译检查:告诉编译器对带有注解的部分进行针对性的检查(比如确认方法是不是正确的覆盖重写,该接口是否符合函数式接口等等。
编辑文档:编写文档注释,在生成JavaDoc文档(如JDK官方的API文档也是以该种形式)的时候用来标注一些相关信息:如作者,支持Java版本,类文件本身的版本等。
解析程序:在程序运行时的时候,根据标注的注解去解析程序内容。(可以像配置文件一样配合反射来提高程序扩展性)

6.什么是元注解?
用来描述注解的注解(比如该注解的适用位置以及保存情况和是否自动继承等)

7.文件从编译到运行可以分为哪三个时期?
源代码阶段:从.java源码编译成.class文件;
类加载器阶段:将字节码文件加载到内存中,此阶段会产生字节码对象
运行时阶段:程序开始实际运行执行其中的业务逻辑。

8.思考:想让一个类加载进内存,有几种方式?
调用该类的构造方法。
逆序列化之前序列化过的该类的对象。
反射获取构造器对象。使用该构造器对象来创建对象。
回复 使用道具 举报
梁端刚
1.黑盒测试和白盒测试的区别?
黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
白盒测试:需要写代码的。关注程序具体的执行流程。


2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
将类的各个组成部分封装为其他对象,这就是反射机制
反射在框架设计中比较常见
使用反射可以在程序运行过程中,操作这些对象。
              可以解耦,提高程序的可扩展性。

3.获取 Class对象有几种方式?他们的用途都在哪?
Class.forname(全类名) 配置文件
类名.class 参数的传递
对象名.getClass 对象的获取字节码的方式

4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
使用暴力反射setAccessible(true)

5.注解在程序中都有哪些用途?
说明程序的。给计算机看的

6.什么是元注解?
用于描述注解的注解

7.文件从编译到运行可以分为哪三个时期?
Source源代码阶段
Class类对象
Runtime运行时阶段
8.思考:想让一个类加载进内存,有几种方式?
创建类对象
字节码文件获取类对象
序列化操作获取类对象


回复 使用道具 举报
王宇晨
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.思考:想让一个类加载进内存,有几种方式?
反射、类加载器、反序列化
回复 使用道具 举报
谢精良

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.思考:想让一个类加载进内存,有几种方式?

创建类的对象
反射加载并创建实例
序列化操作获取类对象
回复 使用道具 举报
1.黑盒测试和白盒测试的区别?黑盒不需要代码,看结果 白盒需要代码,看过程

2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射是将类的各个部分封装成对象,使用反射提高程序的可扩展性,需求改变只需要更改封装的对象

3.获取 Class对象有几种方式?他们的用途都在哪?
获取Class对象的方式有三种,Class.forName("全类名") 加载字节码文件,用于文件配置
类名.class  用于参数传递   对象.getClass 用于对象获取字节码

4.如何获取Class对象中被私有的成员变量对象和成员方法对象?

getDeclaredFields()  getDeclaredMethods()   

5.注解在程序中都有哪些用途?
编写文档  代码分析  编译检查

6.什么是元注解?
描述自定义注解的注解

7.文件从编译到运行可以分为哪三个时期?
文件从编译到运行可以分为源码 、类 、 运行

8.思考:想让一个类加载进内存,有几种方式?
类加载器
Class.forName(全类名)
回复 使用道具 举报
郑雪平

今天学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
元注解:就是用于描述注解的注解。
回复 使用道具 举报
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.思考:想让一个类加载进内存,有几种方式?

注解,配置文件,直接创建类对象,
回复 使用道具 举报
1.黑盒测试和白盒测试的区别?
简单不需要写代码  白盒相反
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
框架设计的灵魂 可以简化代码
3.获取 Class对象有几种方式?他们的用途都在哪?
三种  forname .class getclass 加载配置文件

4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
getDeclaredFields();getDeclaredMethods();
5.注解在程序中都有哪些用途?
检测 @override 生成文档api
6.什么是元注解?
元”“ 注解
7.文件从编译到运行可以分为哪三个时期?
Resource ClassRuntime
8.思考:想让一个类加载进内存,有几种方式?
.class
回复 使用道具 举报
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()
回复 使用道具 举报
贾宗虎

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方法

回复 使用道具 举报

王博

1.黑盒测试和白盒测试的区别?
黑盒: 不需要写代码, 只需要输入值, 看最后得到的结果是不是所希望的
白盒: 需要写代码来测试具体的执行流程

2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
通过字节码文件获取类中的属性,方法等
可以在程序运行时修改这些属性,方法, 可以提高程序的可拓展性


3.获取 Class对象有几种方式?他们的用途都在哪?
1. Class.forName("全类名"): 多用于加载配置文件
2. 类名.class: 多用于参数的传递
3. 对象.getClass(): 这个用的比较少


4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
通过暴力反射: setAccessible(true)


5.注解在程序中都有哪些用途?
编写文档
代码分析
编译检查


6.什么是元注解?
写在注解的上面,用来描述注解(元注解也是注解)
用来确定被描述注解使用的范围(是用在方法上还是类上......), 描述该注解保留的阶段,
是否生成到API文档
是否被子类继承


7.文件从编译到运行可以分为哪三个时期?
源码阶段, Class类对象阶段, 运行时阶段


8.思考:想让一个类加载进内存,有几种方式?
反射, 类加载器, 反序列化




回复 使用道具 举报
吴佳更
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对象
一种通过反射加载类型。
回复 使用道具 举报
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;反射
回复 使用道具 举报
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]通过反射的方式加载,其中又分为小三种.
回复 使用道具 举报
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.思考:想让一个类加载进内存,有几种方式?
反射、类加载器、反序列化
回复 使用道具 举报
林焕
        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-11 20:50
回复 使用道具 举报
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

回复 使用道具 举报
洪文生
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对象的三种方式将类加载进内存
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马