谈谈java中的synchronized关键字
1.synchronized的3种用法 public class Client { public static void main(String[] args) { testSynchroniz...
java反编译器cfr
介绍 cfr是一个非常强大的java反编译器,支持java5,java8的新特性,如枚举,lambda表达式等。 下载 地址 下载下来是一个jar包,可以使用java命令来运行。 使用 public enum Us...
java中枚举实现原理
介绍 枚举是java5新增的特性,我们可以用来替代以前用常量完成的功能。java对枚举的支持还有EnumSet,EnumMap等工具类。 使用 public enum UserGenderEnum { MALE("0"...
java注解的实现原理
使用 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Log { String value(); }...
Lombok原理分析及简单实现
使用 maven引入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombo...
java5新特性简单介绍
新特性介绍 java5是2004年9月份发布的,主要特性有泛型,枚举,可变参数,注解等。 泛型 先看一下泛型的简单使用 public class Client { public static void main(S...
java中的SPI机制
介绍 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 使用 定义一个接口,可以飞的 public interfac...
java注解处理器之Google Auto Service
介绍 SPI是java提供的一种服务发现的标准,具体请看SPI介绍,但每次我们都需要自己创建services目录,以及配置文件,google的autoservice就可以帮我们省去这一步。 使用 maven的依赖 <...
JavaPoet入门
介绍 JavaPoet 是一个用来生成 .java源文件的Java API。 使用 maven依赖 <dependency> <groupId>com.squareup</grou...
Java Agent入门
介绍 在JDK1.5以后,我们可以使用agent技术构建一个独立于应用程序的代理程序(即为Agent),用来协助监测、运行甚至替换其他JVM上的程序。使用它可以实现虚拟机级别的AOP功能。Agent分为两种,一种是在主程序之前运行的...