第2章 Java内存区域与内存溢出异常运行数据区域 1、程序计数器(Program Counter Register) 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 2、Java虚拟机栈(Stack)线程私有,每一个方法调用时都会创建一个栈帧(Stack Frame)用.....
分类:
编程语言 时间:
2014-12-02 14:58:41
阅读次数:
177
Java的运行数据区域分为:程序计数器、方法区、本地方法栈、虚拟机栈、堆、运行时常量池。 程序计数器:从字面意思上很容易理解错误(第一眼看见我还以为仅仅是Count计数器),其实它的作用是保存字节码指令,即CPU需要哪种操作,便改变这个程序计数器的值来选取下一条字节码指令,分支、循环、跳转、异...
分类:
编程语言 时间:
2014-12-01 22:06:57
阅读次数:
160
作为一名java初学者,我发现网上对Java内存这部分知识讲解粗细不一、深浅不定,理解起来难度较大。于是,自己动手整理了一份资料,以供交流学习。Java的编程环境如图所示。从上图可以看出,Java虚拟机是程序运行的场所。那么什么是虚拟机呢?要理解Java虚拟机,你首先必须意识..
分类:
编程语言 时间:
2014-11-28 18:39:12
阅读次数:
416
最近闲着没事又拿起《深入理解JAVA虚拟机》拜读了一遍。对JVM的理解更深了,今天先总结一下JVM内存的结构。JVM 内存分为几个区域:程序计数器虚拟机栈本地方法栈方法区堆其中程序计数器,虚拟机栈,本地方法栈是线程私有的。 方法区和堆是线程共享的。程序计数器程序计数器是一小块内存空间,存储着当前线程...
分类:
其他好文 时间:
2014-11-27 18:12:07
阅读次数:
156
不管是YGC 还是 FGC 都会是程序停止,因为新生代区域里面的对象占用的内存比较小GC清理的数据较快,所以程序YGC较快结束程序很快就回复执行,而年老代占用的内存多,所以FGC会执行较长的一段时间,程序会停止较长的时间,应该尽量避免FGC执行的次数来提高程序的性能...
分类:
其他好文 时间:
2014-11-21 12:45:52
阅读次数:
206
Java虚拟机管理的内存包括以下几个运行时数据区域:1.程序计数器: 程序计数器是一块比较小的内存空间,是当前线程执行的字节码行号指示器。Java多线程是通过线程轮流切换来实现的,所以每个线程都有一个自己独立的程序计数器,各个线程的程序计数器互补干扰。2.Java虚拟机栈 Java虚拟机栈描述的.....
分类:
其他好文 时间:
2014-10-22 10:52:41
阅读次数:
161
java 虚拟机自动内存管理。java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同区域1 程序计数器每个线程都有一个独立的计数器,用来指示需要执行的字节码的位置。2 虚拟机栈虚拟机栈是用来描述java方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧用于储存局部变量表...
分类:
编程语言 时间:
2014-10-21 19:37:14
阅读次数:
197
内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Ja...
分类:
编程语言 时间:
2014-10-15 13:58:11
阅读次数:
217
JVM运行时数据区(JVM Runtime Area)
其实就是指JVM在运行期间,其对计算机内存空间的划分和分配。本文将通过以下几个话题来讨论JVM运行时数据区。
Topic 1. JVM运行时数据区
里有什么?Topic 2.
虚拟机栈 是什么?虚拟机栈
里有什么?Topic 3.
栈帧是什么?栈帧
里有什么?Topic 4. 方法区
是什么?方法区
里有什么?
...
分类:
编程语言 时间:
2014-10-13 17:08:20
阅读次数:
235
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的...
分类:
编程语言 时间:
2014-10-09 16:21:48
阅读次数:
304