1.junit
@表示注解
Test表示要被测试的代码
Before表示测试前要执行的内容
After表示测试后要执行的内容
2.类的加载
类的加载(初始化)时机?
1、创建对象时
2、使用类中的静态成员
3、反射
4、如果创建了子类对象,父类也会加载
5、使用命令: java XXX 时,这个类也会进内存
3.反射
Class 类
Constructor 构造方法
Field 字段
Method 方法
3.1、字节码对象的三种获取方式:
1. Class的forName方法: Class.forName("类的全名");
2. 具体类的class属性: String.class
3. 具体类对象的getClass方法: String s = "abc"; s.getClass();
3.2、获取构造方法:
a.获取空参
b.获取有参
c.获取无参的快速写法
d.暴力反射获取私有构造
3.3、获取方法:
a. 1.用字节码对象clazz.getMethod(方法名,...方法参数列表);
2.执行方法 invoke(对象名,参数值);
b.执行main方法:
参数是一维数组:
a.直接把一维数组转成Object
b.把一维数组作为新数组的元素
3.4、获取字段:
a. 1.用字节码对象clazz.getField(字段名);
2.field.get(对象名) field.set(对象名,参数);
4、Class<T>
此处的T就是一个变量,在运行时,接受具体类型。例如:User变量必须先定义再使用
泛型变量的定义方式:修饰符<变量名>返回值
@表示注解
Test表示要被测试的代码
Before表示测试前要执行的内容
After表示测试后要执行的内容
2.类的加载
类的加载(初始化)时机?
1、创建对象时
2、使用类中的静态成员
3、反射
4、如果创建了子类对象,父类也会加载
5、使用命令: java XXX 时,这个类也会进内存
3.反射
Class 类
Constructor 构造方法
Field 字段
Method 方法
3.1、字节码对象的三种获取方式:
1. Class的forName方法: Class.forName("类的全名");
2. 具体类的class属性: String.class
3. 具体类对象的getClass方法: String s = "abc"; s.getClass();
3.2、获取构造方法:
a.获取空参
b.获取有参
c.获取无参的快速写法
d.暴力反射获取私有构造
3.3、获取方法:
a. 1.用字节码对象clazz.getMethod(方法名,...方法参数列表);
2.执行方法 invoke(对象名,参数值);
b.执行main方法:
参数是一维数组:
a.直接把一维数组转成Object
b.把一维数组作为新数组的元素
3.4、获取字段:
a. 1.用字节码对象clazz.getField(字段名);
2.field.get(对象名) field.set(对象名,参数);
4、Class<T>
此处的T就是一个变量,在运行时,接受具体类型。例如:User变量必须先定义再使用
泛型变量的定义方式:修饰符<变量名>返回值
本文详细介绍JUnit测试框架的使用,包括注解如@Test、@Before和@After的作用;同时深入探讨Java反射机制,涵盖Class类、Constructor构造方法、Field字段及Method方法等核心概念,并讲解如何通过不同方式获取字节码对象。
3601

被折叠的 条评论
为什么被折叠?



