引言
Java 虚拟机(Virtual Machine)在执行 Java 程序时, 会将它所管理的内存划分为不同的数据区,这些分块有不同的功能,理解它们各自的特点,对于深入理解java程序运行机制和调优Java代码,具有重要意义。其实个人觉得,理解 Java 虚拟机的原理,也没想象中的复杂(也许我的想法有点天真啊^_^),它的运行机制,就像一个小型操作系统,这也许就是虚拟机的来源吧。
...
分类:
编程语言 时间:
2015-03-08 17:20:58
阅读次数:
230
在介绍GC之前有必要先了解一下JVM的内存划分,这样在后面介绍GC和各种不同的GC collector的时候更容易理解。
下面这张图是“偷”的别人的,很经典的描述了jvm的体系结构,我们只需要关注最大的那一块——运行时数据区域。
1.方法区
方法区为各个线程共享的一块内存区域,当虚拟机装载一个class文件时,它会从二进制数据中解析类型的信息,包括类的静态变量也会存储到该区域。虚拟机...
分类:
其他好文 时间:
2015-03-07 01:00:39
阅读次数:
276
Java虚拟机所管理的内存将会包括以下几个运行时数据区域 程序计数器(Program Counter Register) 它是一块较小的内存空间,它的作用可以看做是当先线程所执行的字节码的信号指示器。 每一条JVM线程都有自己的PC寄...
分类:
编程语言 时间:
2015-02-26 15:04:23
阅读次数:
242
java运行时数据区域总结线程私有:程序计数器:它是一块较小的内存区域,可以把它看作当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是native方法,这个计数器值则为空。注意:..
分类:
编程语言 时间:
2015-02-14 01:25:22
阅读次数:
294
1、堆内存(HeapMemory)和非堆内存(Non-heapMemory) Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配,堆内存(HeapMemory)是在Java虚拟机启动时创建,是Java代码可及的内存,留给开发人员使用的;默认空余堆内存小于40%时,JV....
分类:
编程语言 时间:
2015-02-03 21:00:13
阅读次数:
180
Java虚拟机所管理的内存会包括以下几个运行时数据区域: 程序计数器:是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的事Native方法,这个计数器值则为空。 Java虚.....
分类:
其他好文 时间:
2015-02-01 19:02:16
阅读次数:
258
一、背景知识
1、JVM体系结构
2、JVM运行时数据区
3、JVM内存模型
JVM运行时内存 = 共享内存区 + 线程内存区
3-1、共享内存区
共享内存区 = 持久带 + 堆
持久带 = 方法区 + 其他
堆 = Old Space + Young Space
Young Space = Eden +...
分类:
编程语言 时间:
2015-01-23 11:14:02
阅读次数:
306
一:概念
Java编程语言把内存分成两种,一种叫做栈内存,一种叫做堆内存。
Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动...
分类:
编程语言 时间:
2015-01-23 09:36:46
阅读次数:
218
链接地址:http://my.oschina.net/sunchp/blog/3694121.背景知识1).JVM体系结构2).JVM运行时数据区JVM内存结构的相关可以参考:http://my.oschina.net/sunchp/blog/3697072.堆溢出(OutOfMemoryError...
分类:
编程语言 时间:
2015-01-22 13:07:11
阅读次数:
321
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆...
分类:
编程语言 时间:
2015-01-08 11:05:56
阅读次数:
234