《深入理解Java虚拟机》读后总结
基于Sun HotSpot JVM
直接上图:
从图中看到,JVM内存分为两个主要区域,一个是所有线程共享的数据区,一个是线程隔离数据区(线程私有)
线程隔离数据区
程序计数器(Program Counter Register):
一小块内存空间,单前线程所执行的字节码行号指示器。字节码解释器工作时,通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。
JVM虚拟机栈(Java Virtual Machine Stacks):
Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息。是线程私有的。
本地方法栈(Native Method Stacks):
为JVM用到的Native方法服务,Sun HotSpot 虚拟机把本地方法栈和JVM虚拟机栈合二为一。是线程私有的。
线程共享的数据区
方法区(Method Area):
用于存储JVM加载的类信息、常量、静态变量、即使编译器编译后的代码等数据。
运行时常量池(Runtime Constant Pool):
是方法区的一部分,用于存放编译器生成的各种字面量和符号引用,这部分内容将在类加载后存放到方法取得运行时常量池中。具备动态性,用的比较多的就是String类的intern()方法。
JVM堆( Java Virtual Machine Heap):
存放所有对象实例的地方。
新生代,由Eden Space 和大小相同的两块Survivor组成
旧生待,存放经过多次垃圾回收仍然存活的对象
如图:
直接内存(Direct Memory):
它并不是虚拟机运行时数据区的一部分,也不是JAVA虚拟机规范中定义的内存区域。在JDK1.4中加入了NIO类,引入了一种基于通道(Channel)于缓冲区(Buffer)的I/O方式,他可以使用Native函数库直接分配堆外内存,然后通过一个存储在JAVA堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。这样能在一些场景中显著提高性能,因为避免了在JAVA堆中和Native堆中来回复制数据。
原创文章,转载请指明出处:http://aub.iteye.com/blog/1872868
相关推荐
long果 深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)。讲解相当详细,值得一看。下载仅供参考学习,侵权联删。
30+个视频+深入理解Java虚拟机(jvm优化+内存模型+虚拟机原理)
深入理解Java虚拟机详细视频教程,包括jvm性能调优、Java内存模型及虚拟机原理。有详细的文档资料,配合深入理解Java虚拟机书籍学习效果更佳
深入理解java虚拟机视频教程,jvm原理,java虚拟机,jvm性能调优,内存模型,gc工作原理,内存分配,类的加载等等视频教程
作者以易于理解的方式深入揭示了java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益! 本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行...
Java 虚拟机JVM内存模型与垃圾收集策略,看完此资料,JVM将不再话下
第31节深入理解对象的访问定位00:08:01分钟 | 第32节垃圾回收-概述00:06:20分钟 | 第33节垃圾回收-判断对象是否存活算法-引用计数法详解00:14:08分钟 | 第34节垃圾回收-判断对象是否存活算法-可达性分析法详解00:...
【深入Java虚拟机】Java内存模型探讨一.pdf
包括jvm 的内存模型 对象的创建过程 垃圾回收算法 垃圾回收器 内存分配和回收策略
对于Java开发来说,《Java虚拟机规范》才是最为官方、准确的一个文档,了解这个规范可以让我们更深入地理解JVM。我们平常说的JVM其实更多说的是HotSpot(HotSpot是JVM规范的一种实现),但我们常常将HotSpot与JVM...
作者以易于理解的方式深入揭示了Java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益! 本书共分20章,第1-4章解释了Java虚拟机的体系结构,包括Java栈、堆、方法区、执行引擎...
Java虚拟机栈也是线程私有的,它的生命周期与线程相同(随线程而生,随线程而灭) 2. 如果线程请求的栈深度大于虚拟机所允许的...3. Java虚拟机栈描述的是Java方法执行的内存模型:每个方法执行的同时会创建一个栈帧。
查看《深入理解Java虚拟机》后,自己简单总结的jvm相关的简单模型图。
可以先看我的博客在下载,...增加高速缓存;为了使得处理器内部的运算单元能尽量被充分利用,处理器可能会对代码进行乱序执行优化,处理器会在计算机之后将乱序执行的结果重组,保证该结果与顺序执行结果是一致的
深入浅出jvm虚拟机视频大全(jvm性能调优+内存模型+虚拟机原理)
JVM内存模型以及垃圾收集策略解析 可以深入了解java虚拟机的原理
作者以易于理解的方式深入揭示了Java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益! 本书共分20章,第1-4章解释了Java虚拟机的体系结构,包括Java栈、堆、方法区、执行引擎...
Java内存模型精辟总结,只有深入JVM才能真正深入Java语言。强烈建议Java程序员深入学习Java虚拟机
第2章 Java内存区域与内存溢出异常 / 24 2.1 概述 / 24 2.2 运行时数据区域 / 25 2.2.1 程序计数器 / 25 2.2.2 Java虚拟机栈 / 26 2.2.3 本地方法栈 / 27 2.2.4 Java堆 / 27 2.2.5 方法区 / 28 2.2.6 运行...
著有《深入理解Java虚拟机:JVM高级特性与最佳实践》。关注各种Java应用,略懂OSGi、Java虚拟机和工作流。在本书翻译工作中负责全文统稿;前言和第1、2、6、7章的翻译;第3、4、5章的校审工作。 吴璞渊(wupuyuan....