随笔分类 - JVM
摘要:Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。 1 强引用 特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,
阅读全文
摘要:系统中的类加载器 1.BootStrap ClassLoader a.启动ClassLoader b.加载rt.jar 2.Extension ClassLoader a.扩展ClassLoader b.加载JAVA_HOME/lib/ext/*.jar 3.App ClassLoader a.应用
阅读全文
摘要:1.加载 a.装载类的第一个阶段 b.取得类的二进制流 c.转为方法区数据结构 d.在Java堆中生成对应的java.lang.Class对象 2.链接 a.验证(保证Class流的格式是正确的) 文件格式的验证 是否以0xCAFEBABE开头 版本号是否合理 元数据验证 是否有父类 继承了fina
阅读全文
摘要:串行收集器 1.最古老的收集器 2.当进行垃圾回收的时候,回收线程是串行执行的,时间久,可能会产生较长停顿 3.-XX:+UseSerialGC 新生代、老年代使用串行回收 新生代复制算法 老年代标记-压缩 并行收集器 a.ParNew 1.新生代并行,老年代串行 2.是串行收集器新生代的并行版本
阅读全文
摘要:可触及的 1.从根节点可以触及到这个对象可复活的 1.一旦所有引用被释放,就是可复活状态 2.因为在finalize()中可能复活该对象不可触及的 1.在finalize()后,可能会进入不可触及状态 2.不可触及的对象不可能复活 3.可以回收 CanReliveObj finalize calle
阅读全文
摘要:引用计数法(java未使用) 1.很老的一个垃圾回收算法 2.通过引用计数来回收垃圾 3.引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能再被使用。 4.弊端: 引用和去引用伴
阅读全文
摘要:追踪参数: 打印GC简要信息 -XX:+PrintGC 打印GC详细信息 -XX:+PrintGCDetails 打印CG发生的时间戳 -XX:+PrintGCTimeStamps 指定GC log的位置 -Xloggc:log/gc.log 打印类的加载情况 -XX:+TraceClassLoad
阅读全文
摘要:PC寄存器 每个线程拥有一个PC寄存器 在线程创建时 创建 指向下一条指令的地址 执行本地方法时,PC的值为undefined 方法区 保存装载的类信息 类型的常量池 字段,方法信息 方法字节码Java堆 和程序开发密切相关 应用系统对象都保存在Java堆中 所有线程共享Java堆 对分代GC来说,
阅读全文
摘要:指令重排的基本原则: a.程序顺序原则:一个线程内保证语义的串行性 b.volatile规则:volatile变量的写,先发生于读 c.锁规则:解锁(unlock)必然发生在随后的加锁(lock)前 d.传递性:A先于B,B先于C 那么A必然先于C e.线程的start方法先于它的每一个动作 f.线
阅读全文
摘要:1.虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统 2.常见的虚拟机有VMWare,Visual Box,JVM等 VMWare或者Visual Box模拟的是真实存在的计算机部件,比如CPU、硬盘等 JVM是Java Virtual Machine的简称,
阅读全文

浙公网安备 33010602011771号