随笔分类 -  JVM

摘要:​http://blog.csdn.net/renfufei/article/details/14669513翻译人员: 铁锚翻译日期: 2013年11月8日原文链接: What do Java objects look like in memory during run-time?我们知道,函数每... 阅读全文
posted @ 2015-08-11 23:39 Uncle_Nucky 阅读(3071) 评论(0) 推荐(0)
摘要:​http://www.importnew.com/1305.html原文于2008年11月13日 发表, 2008年12月18日更新:这里还有一篇关于Java的Sizeof运算符的实用库的文章。学C/C++出身的我,对Java有一点非常困惑,那就是缺乏计算对象占用内存大小的机制。而在C++中就可以... 阅读全文
posted @ 2015-08-11 23:38 Uncle_Nucky 阅读(154) 评论(0) 推荐(0)
摘要:​java对象创建过程/初始化顺序转自:http://blog.csdn.net/yakihappy/article/details/3979357Java虚拟机创建一个对象都包含以下步骤。(1)给对象分配内存。(2)将对象的实例变量自动初始化为其变量类型的默认值。(3)初始化对象,给实例变量赋予正... 阅读全文
posted @ 2015-08-11 23:37 Uncle_Nucky 阅读(1574) 评论(0) 推荐(0)
摘要:​请读者首先注意本篇的题目中的限定语“HotSpot虚拟机”,在虚拟机规范中明确写道:“所有在虚拟机规范之中没有明确描述的实现细节,都不应成为虚拟机设计者发挥创造性的牵绊,设计者可以完全自主决定所有规范中不曾描述的虚拟机内部细节,例如:运行时数据区的内存如何布局、选用哪种垃圾收集的算法等”。因此,本... 阅读全文
posted @ 2015-08-11 23:36 Uncle_Nucky 阅读(267) 评论(1) 推荐(0)
摘要:​CPU高负载的排查办法:http://www.linuxidc.com/Linux/2015-02/112975.htmlinux下JVM线程负载过高问题排查:http://blog.csdn.net/hawkdowen/article/details/38315931JVM CPU 使用率高问题... 阅读全文
posted @ 2015-08-11 23:34 Uncle_Nucky 阅读(142) 评论(0) 推荐(0)
摘要:​http://my.oschina.net/feichexia/blog/196575现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高 这些问题在日常开发中可能被很... 阅读全文
posted @ 2015-08-11 23:32 Uncle_Nucky 阅读(1230) 评论(0) 推荐(0)
摘要:方法区永久代,共享。类信息,常量,static变量,JIT编译后的代码。运行时常量池:字面量,符号引用。堆所有对象(新生代,老年代)虚拟机栈线程私有。表示方法执行的内存模型。【局部变量表】本地方法栈程序计数器字节码行号。线程私有。【Objectobj=newObject();】——Objectobj... 阅读全文
posted @ 2015-07-08 20:45 Uncle_Nucky 阅读(186) 评论(0) 推荐(0)
摘要:【虚拟机栈】一: java栈在java虚拟机结构中的位置java虚拟机体系结构中包括:类装载子系统、运行时数据区、执行引擎。其中类装载子系统负责查找并装载class文件。执行引擎处于JVM的核心位置,运行Java的每一个线程都是一个独立的虚拟机执行引擎的实例,从线程生命周期的开始到结束,他要么在执行... 阅读全文
posted @ 2015-07-08 20:44 Uncle_Nucky 阅读(193) 评论(0) 推荐(0)
摘要:Java堆存储对象实例,我们只要不断创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,就会在对象达到最大堆容量限制后产生内存溢出异常。java.lang.OutOfMemoryError:Java heap space.原因分析:确认内存中对象是否是必要的。也就是... 阅读全文
posted @ 2015-07-08 20:43 Uncle_Nucky 阅读(561) 评论(0) 推荐(0)
摘要:【收集算法的选择】 新生代,由于只有少量的对象能存活下来,所以选用“复制算法”,只需要付出少量存活对象的复制成本。 老年代,由于对象的存活率高,没有额外的空间分担,就必须使用“标记-清除”或“标记-整理”算法。 那么老年代也使用标记-复制策略吧?当然不行!老年代中的对象可不像新生代中的,每次回... 阅读全文
posted @ 2015-07-08 20:39 Uncle_Nucky 阅读(309) 评论(0) 推荐(0)
摘要:【根搜索算法】这个算法的基本思路是:对任何“活”的对象,一定能最终追溯到其存活在堆栈或静态存储区之中的引用。可以作为根的对象-虚拟机栈(栈桢中的本地变量表)中的引用的对象。-方法区中的类静态属性引用的对象。-方法区中的常量引用的对象。-本地方法栈中JNI的引用的对象。方法区是jvm的一块内存区域,用... 阅读全文
posted @ 2015-07-08 20:29 Uncle_Nucky 阅读(200) 评论(0) 推荐(0)
摘要:调用类方法,基于对象引用的类型(通常在编译时可知)来选择所调用的方法。调用实例方法,它会基于对象实际的类型(只能在运行时得知)来选择所调用的方法。【JAVA对象模型】 JAVA对象中包含的基本数据由它所属的类及其所有超类声明的实例变量组成。只要有一个对象引用,虚拟机就必须能够快速地定位对象实例的数... 阅读全文
posted @ 2015-07-08 20:15 Uncle_Nucky 阅读(250) 评论(0) 推荐(0)
摘要:【分析对象动态作用域】方法逃逸,线程逃逸。——栈上分配:对象可以随着方法的结束而自动销毁。——同步消除——标量替换:将对象中使用到的成员变量恢复原始类型来使用。======================================================================... 阅读全文
posted @ 2015-07-03 23:59 Uncle_Nucky 阅读(738) 评论(0) 推荐(0)
摘要:1.尽早释放无用对象的引用(XX = null;) 2.谨慎使用集合数据类型,如数组,树,图,链表等数据结构,这些数据结构对GC来说回收更复杂。3.避免显式申请数组空间,不得不显式申请时,尽量准确估计其合理值。4.尽量避免在类的默认构造器中创建、初始化大量的对象,防止在调用其自类的构造器时造成不必要... 阅读全文
posted @ 2015-07-03 23:58 Uncle_Nucky 阅读(165) 评论(0) 推荐(0)
摘要:性能参数-Xms初始堆大小,默认为物理内存的1/64(102624K(909312K)] 1094420K->320820K(1161216K), 0.2173131 secs] [Times: user=0.74 sys=0.00, real=0.22 secs] ...[GC (Allocati... 阅读全文
posted @ 2015-07-03 23:57 Uncle_Nucky 阅读(637) 评论(0) 推荐(0)
摘要:ClasspathJava路径import java.io.File;/*** @description java路径* @author swandragon* @date Nov 5, 2009*/public class FilePath{ /** *开发中不要使用System.getPro... 阅读全文
posted @ 2015-07-03 23:56 Uncle_Nucky 阅读(697) 评论(0) 推荐(0)
摘要:项目中遇到的JVM难点——启动OSGi容器时,出现永久代内存不够。内存泄露——OSGi找不到类路径问题。——线程死锁问题。问题一:OSGi类内存问题 其次,从内存用量来看,OSGi允许不同版本的Package同时存在,这是个优点,但是客观上会占用更多内存。例如,一个库可能需要 ASM 3.0,而同... 阅读全文
posted @ 2015-07-01 23:58 Uncle_Nucky 阅读(1627) 评论(0) 推荐(0)