随笔分类 -  jvm

摘要:内存管理和垃圾回收是JVM非常关键的点,对Java性能的剖析而言,了解内存管理和垃圾回收的基本策略非常重要。本篇对Sun JVM 6.0的内存管理和垃圾回收做大概的描述。 1.内存管理 在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的对象,对于短周期的对象,需要... 阅读全文
posted @ 2015-04-18 12:13 青书 阅读(180) 评论(0) 推荐(0)
摘要:Java虚拟机规范中试图定义一种java内存模型(java Memory Model,jmm)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能达到一致的内存访问效果。Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量... 阅读全文
posted @ 2015-04-11 16:42 青书 阅读(131) 评论(0) 推荐(0)
摘要:类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载7个阶段。其中验证、准备、解析3个统称为连接。加载、验证、准备、初始化、和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在... 阅读全文
posted @ 2015-04-11 16:41 青书 阅读(137) 评论(0) 推荐(0)
摘要:最前面的数字“33.125”和“100.667”代表了GC发生的时间。GC日志开头的[GC和[Full GC说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是老年代GC的。[DefNew、[Tenured、[Permz表示GC发生的区域后面方括号内部的3324K->152K(3712K)含义... 阅读全文
posted @ 2015-03-29 23:30 青书 阅读(225) 评论(0) 推荐(0)
摘要:3.1判断对象是否已死引用-计数算法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器为0的对象就是不可能再被使用的。3.2判断对象是否已死引用-可达性分析算法在主流的程序语言中,都是通过可达性分析来判断对象是否存活的。这个算法的基本思路就... 阅读全文
posted @ 2015-03-29 23:29 青书 阅读(220) 评论(0) 推荐(0)
摘要:Java虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生对象分配内存。内存是规整的使用“指针碰撞”,内存是散乱的使用... 阅读全文
posted @ 2015-03-29 21:12 青书 阅读(155) 评论(0) 推荐(0)
摘要:1. Java运行时数据区域Java虚拟机在执行java程序的过程中会把它管理的内存划分为若干个不同的数据区域。1.1程序计数器程序计数器是一块较小的内存空间,它可看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式实现),字节码解释器工... 阅读全文
posted @ 2015-03-29 14:48 青书 阅读(158) 评论(0) 推荐(0)

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