
JVM
MikanMu
码农
展开
-
java虚拟机的内存区域划分
java虚拟机在执行java程序的过程中会把它所管理的内存划分成很多个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。Java虚拟机规范中把java虚拟机所管理的内存划分为以下几个区域。一、程序计数器(Program Counter Register) 程序计数器是一块较小的原创 2012-07-23 13:28:18 · 3467 阅读 · 0 评论 -
java语言对象访问的背后
对象访问在java语言中无处不在,是最普遍的程序行为,但即使是最简单的访问,也会涉及到java堆、java栈、方法区这三个最重要的内存区域之前的关联关系。下面我们就来看一下java中对象访问是怎么回事。如果在方法中出现如下这句代码:Object obj = newObject(); 那Object obj这个引用变量会存放在java栈的本地变量表中,作为一个refere原创 2012-07-23 17:38:43 · 1478 阅读 · 0 评论 -
一次内存溢出的填坑经历
在项目运行过程中,可能会出现内存溢出,内存溢出的原因多种多样,而在内存溢出后,我们如何查找和分析内存溢出的原因呢?这里来说一说我遇到的次遇到的内存溢出经历。大致情况是这样的:应用在启动后,过一段时间(这个时间不确定),内存忽然爆满,然后频繁的YGC,一会过后,老年代爆满,然后是频繁的FGC,最终撑爆内存,抛出OOM。重启应用后,还是这个过程。1、查看java进程的内存使用情况和GC情况原创 2015-08-28 16:51:22 · 8723 阅读 · 0 评论