jvm在存储区域

简介:

当区域执行的数据

 JVM存储器的管理分为几个时间之后的数据区的实施:程序计数器、JavaVM栈、本地方法栈、Java堆、方法区(包括常量池的实现)。
 

程序计数器

较小的内存空间,能够看作是当前线程所运行的字节码的行号指示器

为了线程切换后能恢复到正确的运行位置,每天线程都须要有一个独立的程序计数器,所以我们称这类内存区域为“线程私有”的内存。

 

java虚拟机栈

这类内存区域也是线程私有的,它的生命周期与线程同样。相当于汇编里的堆栈,当线程运行到相应的方法。栈就会不断地将方法參数、局部变量(基本数据类型、对象引用、returnAddress类型)、操作数栈等信息进栈出栈。来达到函数调用。

 

本地方法栈

与虚拟机栈所发挥的作用是很相似的,差别为本地方法栈为虚拟机使用到的Native方法服务。

 

Java堆

java堆是全部线程共享的一块内存区域,唯一目的就是存放对象实例。实例化对象时,仅仅是存储对象里面的很量属性,对象里的方法并不用copy到堆中(相当于C语言的struct),方法是在运行时,在栈中分配參数变量、局部变量等内存。

分配内存,有两种方法:“指针碰撞”。java堆中的内存是绝对规整的,全部用过的内存放一边,空暇的内存放还有一边,中间放着一个指针作为分界点的指示器,分配内存时仅仅只是是移动指针。垃圾收集器带有压缩整理功能。使内存每时每刻都是规整的。

空暇列表”。java堆不是规整的,虚拟机维护一个列表。记录哪些内存块是可用的。

对象訪问的方式有两种:
使用句柄:
 
 
直接指针:
 

方法区:

方法区也是各个线程共享的内存区域。存储已被虚拟机载入的类信息、常量、静态变量、即时编译器编译后的代码等数据。尽管java虚拟机规范把方法区描写叙述为堆的一个逻辑部分,可是它却有一个别名叫Non-Heap(非堆),目的应该是与java堆区分开来。

执行时常量池:

执行时常量池是方法区的一部分。Class文件里除了有类的版本号、字段、方法、接口等描写叙述信息外,另一项信息是常量池。用于存放编译期生成的各种字面量和符号引用,这部分内容将在类载入后进入方法区的执行时常量池中存放。

执行时常量池。相对于Class文件常量池的另外一个重要特征是具备动态性,执行期间也能够将新的常量放入执行时常量池。如:String类的intern()方法。

 

本文引用:周志明的《深入理解java虚拟机》

 

转载请标明出处:http://blog.csdn.net/u012367513/article/details/38656909

版权声明:本文博客原创文章。博客,未经同意,不得转载。




本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4666210.html,如需转载请自行联系原作者


相关文章
|
4月前
|
存储 Java 编译器
JVM-不同jdk版本静态变量存储位置
JVM-不同jdk版本静态变量存储位置
|
2月前
|
存储 缓存 算法
JVM对象组成和存储
JVM对象组成和存储
|
存储 Java Scala
类和对象在JVM中是如何存储的,竟然有一半人回答不上来!
类和对象在JVM中是如何存储的,竟然有一半人回答不上来!
类和对象在JVM中是如何存储的,竟然有一半人回答不上来!
|
存储 安全 算法
深入剖析JVM内存管理与对象创建原理
JVM内存管理,JVM运行时区域,直接内存,对象创建原理。
40 2
|
1月前
|
存储 算法 安全
【JVM】深入理解JVM对象内存分配方式
【JVM】深入理解JVM对象内存分配方式
29 0
|
1月前
|
Java 程序员
探讨JVM垃圾回收机制与内存泄漏
探讨JVM垃圾回收机制与内存泄漏
|
2月前
|
存储 缓存 算法
深入剖析Java中JVM的内存模型!!!
对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。
49 1
|
28天前
|
存储 缓存 Java
金石原创 |【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系机制(1)
金石原创 |【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系机制(1)
37 1
|
27天前
|
缓存 Java C#
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(一)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
78 0
|
14天前
|
存储 前端开发 安全
JVM内部世界(内存划分,类加载,垃圾回收)(上)
JVM内部世界(内存划分,类加载,垃圾回收)
48 0