摘要: java堆是用来存储对象实例的;只要不断创建对象,GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,当对象数量达到最大堆的容量限制的时候就会产生内存溢出异常。异常对战信息为OutOfMemoryError,进一步提示:java heap space。 如何解决?内存映射工具,ecl 阅读全文
posted @ 2017-02-12 19:04 西北野狼 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 虚拟机内存中数据细节 如何创建? 如何布局? 如何访问? 如何创建? 语言层面:创建对象仅仅是一个new关键字而已。 虚拟机中: 1 检查指令的参数是否在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,解析,初始化; 2 虚拟机为新生对象分配内存. 如何布局? 分为3个区域: 阅读全文
posted @ 2017-02-12 18:39 西北野狼 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 运行时数据划分为两部分: 线程私有:虚拟机栈、本地方法栈、程序计数器。 线程共享:方法区,堆。 运行时数据区域: 1 程序计数器: 当前线程所执行的字节码的行号指示器。每条线程都需要有一个独立的程序计数器,各条线程之间互不影响,独立存储,我们称之为线程似有的内存。 如果线程执行的事java方法,计数 阅读全文
posted @ 2017-02-12 15:32 西北野狼 阅读(205) 评论(0) 推荐(0) 编辑