黑马java-JavaSE进阶-java高级技术

1.单元测试

就是针对最小的功能单元方法,编写测试代码对其进行正确性测试

2.Junit单元测试框架

可以用来对方法进行测试,它是第三方公司开源出来的

优点:

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

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

测试方法必须是public void声明,必须用@Test测试

3.断言机制:

程序员可以通过预测业务方法的结果

一键自动化单元测试

Junit4单元测试框架的常用注解

在测试方法执行的方法,常用于:初始化资源

在测试方法执行后在执行的方法,常用于:释放资源

4.反射

反射就是,加载类,并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等)。

反射第一步:加载类,获取类的字节码:CLass对象

反射的作用:适合做java的框架,基本上,主流的框架都会基于反射设计出一些通用的功能

5.反射获取class对象的三种方式:

Class c1=类名.class

调用Class提供方法:public static Class forName(String package)

Object提供的方法:public Class getClass(); Class c3=对象.getClass()

获取类构造器的作用:初始化一个对象返回

6.反射获取类的成员变量

7.获取类的成员方法

作用:依然是执行

8.注解:

就是java代码里的特殊标记,比如:@Override,@Test等

作用是:让其他程序根据注解信息来决定怎么执行该程序

注意:注解可以用在类上、构造器上、方法上、成员变量上、参数上、等位置

9.自定义注解:

就是自己定义注解

特殊属性名:value

如果注解中只有一个value属性,使用注解时,value名称可以不写

注解的本质是一个接口,java中所有注解都是继承了Annotation接口

@注解(....):其实就是一个实现类对象,实现类该注解以及Annotation接口

10.元注解

修饰注解的注释

11.注解的解析

就是判断类上、方法上、成员变量上是否存在注解,并把注解里的内容解析出来

如何解析注解:

指导思想:要解析谁上面的注解,就应该先拿到谁

比如要解析类上面的注解,则应该先获取类的class对象,再通过class对象解析其上面的注解

比如要解析成员方法上的注解,则应该获取到该成员方法的Method对象,再通过Method对象解析其上面的注解

Class、Method、Field、Constructor,都实现了AnnotatedElement接口,它们都有解析注解的能力

12.动态代理

对象的事情太多可以通过代理转移部分职责

对象有什么方法下被代理,代理就一定要有对应的方法

java.lang.reflect.Proxy类:提供了为对象产生代理的方法

相关推荐
白杨尚青1 小时前
C++进阶篇(二):多态——虚函数、重写、虚函数表与三个经典坑(附完整代码仓库)
开发语言·c++·多态·虚函数·重写·动态绑定
考虑考虑7 小时前
JDK26中的Map.ofLazy
java·后端·java ee
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 14 章 MCP 服务端(上):注解式实现与工具来源
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 15 章 MCP 服务端(下):三种协议形态、Streamable 传输与状态管理
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 16 章 向量存储(上):`VectorStore` 接口体系、`BatchingStrategy`
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 12 章 工具循环的流式形态、Usage 累加与扩展体系
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 23 章 模型供应商实现:从 `OpenAiSetup` 到 Bedrock
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 06 章 内置 Advisor 全景:13 个实现逐个剖到源码级
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 03 章 消息体系与 Prompt:不可变模型、`ChatOptions` 与模板渲染
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 24 章 生产实践与 2.x 迁移:陷阱清单、AOT 与调优
java·人工智能·开源