java5、java6、java7、java8、java9新特性

1. 介绍

JAVA作为使用的主力语言,掌握下其历史发展也是有必要的。看看从JAVA5开始到现在的JAVA9有哪些变化。借此机会,也可以看看哪些特性我们是已经用到的,哪些是还没有用到的。

我们在IDEA里面也可以看到language level里面的信息,这里也大致写了下各个版本JDK的新特性。

简单概括下就是:

JAVA1.3:普通的原始的......

JAVA中的注解

1. 介绍

Java注解是附加在代码中的一些元信息,用于编译和运行时进行解析和使用,起到说明、配置的功能。注解不会影响代码的实际逻辑,仅仅起到辅助性的作用。注解作为一种重要的技术已经在主流的库中广泛使用。XML和注解都可以用来描述元数据。假如你想为应用设置很多的常量或参数,这种情况下,XML是一个很好的选择,因为它不会同特定的代码相连。如果你想把某个方法声明为服务,那么使用Annotation会更好一些,因为这种情况下需要注解和方法紧密耦合起来,开发人员也必须认识到这点。可见,XML和注解各有自己的用武之地。

一般来说注解的主要作用就是:

描述元数据

完成重复性工作: 注......

JAVA中的动态代理

1. 动态代理介绍

动态代理是一项重要的技术。在以下场景中被广泛应用:

数据库连接

事务管理

单元测试中动态mock对象

AOP编程中动态织入横切逻辑

等等

常见的动态代理实现方式主要是使用JDK和cglib

1.1 jdk

JDK动态代理主要涉及到java.lang.reflect包中的两个类:

Proxy: Proxy利用InvocationHandler动态创建一个符合某一接口的实例,生成目标类的代理对象。

InvocationHandler: InvocationHandler是一个接口,通过实现该接口定义横切逻辑,并通过反射机制调用目标......