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("全类名");
雷锋
|