随笔分类 - 虚拟机
摘要:类加载相关 静态代码块 定义在类中方法外, 静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。 该类不 管创建多少对象,静态代码块只执行一次. 一个类中的静态代码块可以有多个,位置可以随便放, 它不在任何的方法体内, JVM加载类时会执行这些静态的代码块, 如果静态代码块有
阅读全文
摘要:1-jvm调参案例 java -Xmx3072 -Xms3072M -Xmn2048M -Xss1M -Xmx3072M:设置JVM最大可用内存为3072M。 -Xms3072M:设置JVM初始内存为3072M。此值可以设置与-Xmx相同,以避免 每次垃圾回收完成后JVM重新分配内存。 -Xmn20
阅读全文
摘要:1 垃圾回收 2 GCRoot 2-1 JVM是如何判断垃圾对象的。 简单地来说,就是从gc roots的根出发(即局部变 量表中的引用对象), 一路沿着引用关系找,凡是能够被找到的对象都是非垃圾对象, 并且会被移动到下一个它应该去的区域 中。 剩下的对象,会在区域清空时,一同被清理掉而无须关心。
阅读全文
摘要:类的生命周期 加载-验证-准备-解析-初始化-使用-卸载 1 加载阶段 把.class二进制数据读到内存中,并放到方法区,然后在堆中创建一个Java.lang.Class对象,这个对象就是用来封装类在方法区的数据结构的。 所以,类加载机制的最终产物是:在堆中创建了java.lang.Class对象,
阅读全文