随笔分类 -  深入理解JVM

摘要:“Write Once,Run anywhere. ”这是Java刚诞生时的口号,于是Java通过虚拟机加+class文件实现了这个目标。另外,JVM设计者曾承诺过要让其它语言也能像Java一样在JVM运行。当Java发展到JDK1.7~1.8的时候,JVM设计者通过JSR-292基本兑现了这个承诺 阅读全文
posted @ 2022-03-23 17:27 方山客 阅读(61) 评论(0) 推荐(0) 编辑
摘要:定位问题,知识、经验是关键,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等 一、工具 1. JDK命令行工具(大多是jdk/lib/tols.jar的封 阅读全文
posted @ 2022-03-23 10:32 方山客 阅读(40) 评论(0) 推荐(0) 编辑
摘要:一、垃圾回收机制 Java判断对象是否存活使用了可达性分析算法,也就是以一系列“GC Roots”对象作为起始点,从这些节点向下搜索,如果从GC Roots到这个对象不可达,则证明此对象不可用。 1. 可以作为GC Roots的对象包括: 虚拟机栈(栈帧中的本地变量表)中引用的对象 方法区中类静态属 阅读全文
posted @ 2022-03-23 01:49 方山客 阅读(53) 评论(0) 推荐(0) 编辑
摘要:一、运行时数据区域 PS:jdk1.8中内存区域有所不同,方法区变成了元数据区。这里为了更好的理解jdk1.7到jdk1.8的变化,仍然先去学习书中所讲的版本。作图工具:Office Excel 1. 程序计数器 可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时 阅读全文
posted @ 2022-03-20 01:50 方山客 阅读(32) 评论(0) 推荐(0) 编辑
摘要:《深入理解JVM》想必在座的同学并不陌生,几乎所有java从业人员都看过这本书。书是好书,当得起“深入理解”四个字,但是事实上很多读者看完后却并没有真正“深入理解”。就拿我来说吧,最近参加了几场面试,为了显得我很厉害,简历上很不要脸地写着“深入理解JVM”。结果一次次被面试官暴捶,甚至有一次面试官直 阅读全文
posted @ 2022-03-19 21:57 方山客 阅读(50) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示