前言
Go跟Java一样都是自动垃圾回收、简称GC,即在后台运行一个守护线程,监控各个对象的状态,识别并且释放不在使用的对象的内存空间。
目前Go使用的垃圾回收策略是三色标记法+混合写屏障,下面就来学习一下GC的细节把。
在JDK6的时候引入了JSR269的标准,即 Pluggable Annotation Processing API (可插入注解处理API),简称APT。它提供了在编译时期改变一些行为的相关API,例如生成一些新的JAVA文件。
大致处理流程如下图,APT在编译成class文件时执行,在这个过程中可以自定义相关行为,例如生成新的源文件(MapStruct),修改AST语法树(Lombok),直到所有编译处理器都没有在对JAVA文件进行修改为止,才会走到后续的生成Class文件的流程。
