java高级

单元测试

Junit测试框架

可以灵活的编写测试代码,可以针对某个方法执行测试,也支持一键完成对全部方法的自动化测试,且各自独立。


不需要程序员去分析测试的结果,会自动生成测试报告出来。

断言

意思是程序员可以预测程序的运行结果,检查程序的运行结果是否与预期一致。

//断言机制:预测index2的结果
        Assert.assertEquals("方法内部有Bug",4,index2);

//如果不一样就会输出:方法内部有Bug

 

反射

指的是加载类的字节码到内存,并以编程的方法解刨出类中的各个成分(成员变量、方法、构造器等)。

每一个成员变量用Field类的对象来表示每一个成员方法用Method类的对象来表示每一个构造器用Constructor类的对象来表示

获取类的字节码

反射的第一步:是将字节码加载到内存,我们需要获取到的字节码对象。

 Class c1 = Student.class;

获取类的构造器

get:获取
Declared: 有这个单词表示可以获取任意一个,没有这个单词表示只能获取一个public修饰的
Constructor: 构造方法的意思
后缀s: 表示可以获取多个,没有后缀s只能获取一个

        //1、反射第一步:必须先得到这个类的Class对象
        Class c = Cat.class;
        
        //2、获取类的全部构造器
        Constructor[] constructors = c.getDeclaredConstructors();

        //3、获取一个构造器
            //获取类public修饰的空参数构造器
         Constructor constructor1 = c.getConstructor();
            //获取private修饰的有两个参数的构造器,第一个参数String类型,第二个参数int类型      
         Constructor constructor = c.getDeclaredConstructor(String.class,int.class);

反射获取成员变量

get:获取
Declared: 有这个单词表示可以获取任意一个,没有这个单词表示只能获取一个public修饰的
Field: 成员变量的意思
后缀s: 表示可以获取多个,没有后缀s只能获取一个

 

反射获取成员方法

         //1、反射第一步:先获取到Class对象
        Class c = Cat.class;
        
        //2、获取类中的全部成员方法
        Method[] methods = c.getDecalaredMethods();

获取到成员方法之后

run.invoke();用invoke调用它;

 

注解

Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。

自定义注解

public @interface 注解名称{
    String aaa();
    boolean bbb() default true;	//default true 表示默认值为true,使用时可以不赋值。
}

元注解

元注解是修饰注解的注解

比如修饰自定义注解时,要加上的元注解

@Target是用来声明注解只能用在那些位置,比如:类上、方法上、成员变量上等
@Retetion是用来声明注解保留周期,比如:源代码时期、字节码时期、运行时期

解析注解

我们可以通过反射技术把类上、方法上、变量上的注解对象获取出来,然后通过调用方法就可以获取注解上的属性值了

我们把获取类上、方法上、变量上等位置注解及注解属性值的过程称为解析注解。

注解在谁身上,就先获取谁,再用谁获取谁身上的注解

//获取类上的MyTest4注解
    MyTest4 myTest4 = (MyTest4)c.getDeclaredAnnotation(MyTest4.class);

 

动态代理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值