1.黑盒测试和白盒测试的区别?
(1) 黑盒测试:不用写代码,直接输入值,测试程序能否到达期望的值
(2) 白盒测试: 要写代码,关注程序的具体流程
2.什么是反射?我们为什么要会使用反射?
将各个类的组成部分封装成对象.
因为我们可以在运行时期来操作对象 改写代码,避免了创建对象反复改值浪费大量资源;
3.获取 Class对象有几种方式?他们的一般使用场景是什么?
获取Class对象有三种方式,第一种Class直接调用静态方法 forName(),多用于在配置文件,读取文件加载文件
第二种 通过类名直接调用Class返回 .Class字节码文件的对象 多用于参数的传递
第三种 通过类的对象名.getClass() 多用于对象的获取字节码方式
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
通过字节码文件对象调用.getDeclaredFields() 可以获取私有的成员变量
通过字节码文件对象调用.getDeclaredMethods() 可以获取私有的成员方法并返回一个数组;
5.注解在程序中都有哪些用途?
注解可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素进行说明,注释
6.什么是元注解?
用于描述注解的注解
7.文件从编译到运行可以分为哪三个时期?
三个时期, 源码期,字节文件时期,运行时期
8.思考:想让一个类加载进内存,有几种方式?
有三种方式
1、由new关键字创建一个类的实例
2、使用Class.forName() 通过反射加载类型,并创建对象实例
3、使用某个ClassLoader实例的loadClass()方法 |