摘要: JAVA堆内存管理是影响性能主要因素之一。堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的。 先看下JAVA堆内存是如何划分的,如图: JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation)、老年代(Old Genera 阅读全文
posted @ 2020-03-27 18:01 那些年的代码 阅读(2394) 评论(0) 推荐(0) 编辑
摘要: 复制算法的两块Survivor空间 概述 在《深入理解Java虚拟机》这本书中,对复制算法有一段这样的介绍:现在的商业虚拟机大多采用复制算法来收集新生代。复制算法将内存分为一块较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor空间,当回收时,将Eden和S 阅读全文
posted @ 2020-03-27 16:54 那些年的代码 阅读(519) 评论(0) 推荐(0) 编辑
摘要: JVM之GCRoots详解目录面试题引子什么是垃圾判断对象是否可以被回收之引用计数法判断对象是否可以被回收之枚举根节点可达性分析Java中可以作为GC Roots的对象1. 面试题引子一面:GC Roots如何确定?哪些对象可以作为GC Roots?2. 什么是垃圾1.简单说就是内存中已经不再被使用 阅读全文
posted @ 2020-03-27 09:28 那些年的代码 阅读(2058) 评论(0) 推荐(0) 编辑
摘要: Spring AOP主要有两种代理方式:1.JDK动态代理 2.cglib代理1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和C 阅读全文
posted @ 2020-03-27 08:47 那些年的代码 阅读(4643) 评论(0) 推荐(1) 编辑