谈谈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分为两种,一种是在主程序之前运行的...