摘要: 一、基本使用 Introduction引入:可以为某个或某些bean 动态实现某个接口。 @Aspect class SingerIntroducer { @DeclareParents(value="com.mengxiang.concert.Performance+", defaultImpl 阅读全文
posted @ 2020-07-26 21:42 蓝天随笔 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 一、切入点和通知 切入点cutpoint : 用于匹配一个方法是否需要进行拦截的判断逻辑 常用9种切入点: execution:一般用于指定方法的执行,用的最多。within:指定某些类型的全部方法执行,也可用来指定一个包。this:Spring Aop是基于动态代理的,生成的bean也是一个代理对 阅读全文
posted @ 2020-07-26 21:21 蓝天随笔 阅读(204) 评论(0) 推荐(0) 编辑
摘要: BeanDefinitionRegistryPostProcessor.postProcessBeanDefinitionRegistry: 在所有Bean定义之后(实现此接口的Bean除外),创建之前调用,一般用于自定义bean BeanFactoryPostProcessor.postProce 阅读全文
posted @ 2020-07-19 18:46 蓝天随笔 阅读(1466) 评论(0) 推荐(0) 编辑
摘要: 1、Java内存模型(JMM) 原子性:synchronized 可见性:synchronized,volatile,final 有序性:synchronized,volatile synchronized加锁都可以保证 volatile可以保证可见性和有序性(禁止指令重排) 8大happens-b 阅读全文
posted @ 2020-07-12 20:36 蓝天随笔 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1、Java执行过程 Java文件通过javac静态编译为class文件 class文件有2种方式执行:解释执行、JIT即时编译后执行 通常情况下 默认解释器边解释边运行,但对于一些热点代码会首先编译为机器码,缓存起来,后续执行执行缓存的机器码即可,提升执行效率 2、热点代码 Java采用计数器方式 阅读全文
posted @ 2020-07-12 20:16 蓝天随笔 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 1、定义 逃逸分析的是一个对象的动态作用域,2种情况 方法逃逸:对象通过参数传递传给了另一个方法 线程逃逸:对象有另外的线程访问 逃逸分析的目的是确认一个对象是否只可能当前线程能访问 2、应用 如果对象分析后不能发生逃逸,如方法中创建的临时对象,则JVM可进行如下优化 1、栈上分配 在栈上分配对象, 阅读全文
posted @ 2020-07-12 19:30 蓝天随笔 阅读(508) 评论(0) 推荐(0) 编辑
摘要: class文件热加载,即不重启生效方法 1、自定义classLoader 独立线程监控class文件变化,一旦变化 重新new一个classLoader加载class ,老的class对象 老的classLoader需要去除引用,等待GC后自动卸载 2、JavaAgent 探针技术 ,重新定义已经加 阅读全文
posted @ 2020-06-28 22:04 蓝天随笔 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 一、场景 JavaAgent Java代理,又叫java探针,可以动态的改变加载的字节码文件 通常使用ASM Javasist字节码工具修改class文件 二、使用 2种方式 静态方式: 通过-javaagent 指定代理类 (在main方法执行前执行premain方法) 动态方法:通过额外的进程a 阅读全文
posted @ 2020-06-28 21:50 蓝天随笔 阅读(1186) 评论(0) 推荐(0) 编辑
摘要: 一、类的双亲委托 Bootstrap(启动)类加载器,它负责加载 <Java_Runtime_Home>/lib下面的类库加载到内存中,由于启动类加载器涉及到虚拟机底层实现细节,开发者无法直接拿到其引用,因此使用Class.getClassLoader() 的结果为 null,因此如果获取的Clas 阅读全文
posted @ 2020-06-28 21:14 蓝天随笔 阅读(930) 评论(0) 推荐(0) 编辑
摘要: 一、生命周期 加载 连接 初始化 只是启动顺序,启动后可能交叉执行。 二、加载 加载class文件,class文件是JVM的规范,跟java没有强依赖。 可能来源:class文件、网络传输等 加载后会在堆中生成Class对象。 三、验证 验证字节码的格式、规范等,如class文件必然4个字节的魔数0 阅读全文
posted @ 2020-06-28 20:46 蓝天随笔 阅读(292) 评论(0) 推荐(0) 编辑