深入理解java虚拟机
《深入理解java虚拟机》是有作者周志明自写的一篇关于jvm运作机制的高科技书籍,大有助于java开发人员深入理解Java虚拟机。这里我只是其中的一个读者,从中我学到了好的,更深的理解了java的运作机制,希望能给大家一些帮助。
chaofanwei
这个作者很懒,什么都没留下…
展开
-
class常量池陷阱-百看不如一战
今天在修改现场项目时,遇见一个特别值得深刻记住的问题,说大也不大,其实就是class常量池的问题。 场景是这样的,现场原来已经部署了一套软件,现在呢,软件有了一点问题,于是我在本地源代码里面添加了几行日志后,编译成class文件后,替换现场的class文件,重启现场的程序后,发现问题更严重了,直接报文件找不到异常,试了好多次都不行。 于是,我在多处添加日志,发原创 2014-04-24 19:54:03 · 2897 阅读 · 1 评论 -
深入理解java虚拟机(八):java内存分析工具-MAT和OQL
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 深入理解java虚拟机(三):String.intern()-字符串常量池深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法深入理解java虚拟机(五):hotspot垃圾收集算法实现 深入理解java虚拟机(六):java垃圾收集分析实翻译 2014-02-27 17:38:59 · 7332 阅读 · 1 评论 -
深入理解java虚拟机(七):java垃圾收集分析总结
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 深入理解java虚拟机(三):String.intern()-字符串常量池深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法深入理解java虚拟机(五):hotspot垃圾收集算法实现 深入理解java虚拟机(六):java垃圾收集分析原创 2014-02-26 15:56:47 · 6983 阅读 · 2 评论 -
深入理解java虚拟机(六):java垃圾收集分析实战(内存分配与回收策略)
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 深入理解java虚拟机(三):String.intern()-字符串常量池深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法深入理解java虚拟机(五):hotspot垃圾收集算法实现 试验环境jdk 1.6.0_37。原创 2014-02-24 18:20:55 · 7963 阅读 · 2 评论 -
深入理解java虚拟机(五):hotspot垃圾收集算法实现
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战深入理解java虚拟机(三):String.intern()-字符串常量池深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法 本文所讲的是sun hotspot虚拟机实现,主要讲解Serial,ParNew,Parallel Scavenge,Serial原创 2014-02-20 15:33:51 · 6613 阅读 · 2 评论 -
深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 深入理解java虚拟机(三):String.intern()-字符串常量池 程序计数器、虚拟机栈、本地方法栈3个区域随线程生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊的执行这出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类原创 2014-02-20 10:28:17 · 7009 阅读 · 5 评论 -
深入理解java虚拟机(三):String.intern()-字符串常量池
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 看源码: public native String intern(); Returns a canonical representation for the string object. A pool of strings, initially empty原创 2014-02-19 14:47:44 · 14739 阅读 · 3 评论 -
深入理解java虚拟机(二):java内存溢出实战
深入理解java虚拟机(一):java内存区域(内存结构划分)按照java内存的结构,发生内存溢出的地方常在于堆、栈、方法区、直接内存。1、堆溢出堆溢出原因莫过于对象太多导致,看代码。package baby.oom;import java.util.ArrayList;import java.util.List;/** * java 堆溢出 * VM原创 2014-02-19 13:13:07 · 9133 阅读 · 3 评论 -
深入理解java虚拟机(一):java内存区域(内存结构划分)
图一:java内存结构划分由上图可知,java内存主要分为6部分,分别是程序计数器,虚拟机栈,本地方法栈,堆,方法区和直接内存,下面将逐一详细描述。1、程序计数器线程私有,即每个线程都会有一个,线程之间互不影响,独立存储。代表着当前线程所执行字节码的行号指示器。2、虚拟机栈线程私有,它的生命周期和线程相同。描述的是java方法执行的内存模型:每个方法在执行的同时多会创建原创 2014-02-18 17:45:12 · 28272 阅读 · 7 评论