新生代与老年代详解

新生代与老年代 Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分...

引用计数法和根搜索算法详解

如何判断对象是否存活 引用计数法 概念 引用计数法就是如果一个对象没有被任何引用指向,则可视之为垃圾。这种方法的缺点就是不能检测到环的存在。 首先需要声明,至少主流的Java虚拟机里面都没有选用引用计数算法来管理内存。 ...

垃圾收集算法详解

标记清除算法 概念 该算法有两个阶段。 1. 标记阶段:找到所有可访问的对象,做个标记 2. 清除阶段:遍历堆,把未被标记的对象回收 应用场景 该算法一般应用于老年代,因为老年代的对象生命周期比较长。 优缺点 标记清除算法的...

JVM参数调优详解

JVM参数配置 JVM提供了诸多的参数进行JVM各个方面内存大小的设置,为Java应用进行优化提供了诸多的工具,本文将会详细分析各个参数的功能与使用。 常见参数配置 -XX:+PrintGC    &nb...

内存溢出问题解决详解

Java堆溢出 错误原因: java.lang.OutOfMemoryError: Java heap space 堆内存溢出 解决办法:设置堆内存大小 // -Xms1m -Xmx10m -XX:+PrintGCDetails -XX...

栈溢出解决详解

递归调用,栈深度。 错误原因: java.lang.StackOverflowError  栈内存溢出 栈溢出 产生于递归调用,循环遍历是不会的,但是循环方法里面产生递归调用, 也会发生栈溢出。 解决办法...

四种常用的垃圾收集器详解

串行与并行收集器 串行回收: JDK1.5前的默认算法 缺点是只有一个线程,执行垃圾回收时程序停止的时间比较长 并行回收: 多个线程执行垃圾回收适合于吞吐量的系统,回收时系统会停止运行   高并发项目适合 ...

Tomcat调优策略详解

Jmeter压力测试工具 JMeter是一款在国外非常流行和受欢迎的开源性能测试工具,像LoadRunner 一样,它也提供了一个利用本地Proxy Server(代理服务器)来录制生成测试脚本的功能,但是这个功能并不好用。所以在本文中介...

jconsole工具检测堆内存变化的使用详解

jconsole将Java写的程序检测。 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的...

字节码技术详解

使用字节码技术对类的基本信息进行操作,对属性和方法进行修改。 字节码技术应用场景 AOP技术、Lombok去除重复代码插件、动态修改class文件等   字节技术优势    Java字节码增强指的是在...