贾宗虎
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方法
|