摘要:内存中堆,方法区,虚拟机栈,本地方法栈,程序计数器其中堆和方法区是线程共享,而栈和程序计数器是每个线程都会有自己的分配空间,即线程私有。堆为对象分配内存的方法碰撞指针和空闲列表。程序计数器该区域是内存中一块较小的区域。
JVM 内存 中 : 堆, 方法区, 虚拟机栈, 本地方法栈, 程序计数器
其中堆和方法区是线程共享,而栈和程序计数器是每个线程都会有自己的分配空间,即线程私有。
堆:存放实例对象以及数组对象,GC的主要区域。堆为对象分配内存的方法:碰撞指针和空闲列表。 访问对象:句柄和直接访问。
方法区:存储已被虚拟机加载的类信息、常量、静态变量、编译器编译后的代码等数据。
程序计数器:该区域是内存中 一块较小的区域。是当前线程在执行的字节码,行号指示器。归线程私有,互不干扰。是jvm中唯一一个没有规定
OutOfMemoryError 情况的区域。
虚拟机栈 (线程私有):每个方法执行时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。
本地方法栈和虚拟机栈基本一样,不过本地方法栈主要存储native的方法信息。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/74665.html
摘要:堆内存用于存放我们在程序中创建的对象,一旦没有足够的空间用于存放这些对象,即会抛出异常。当我们采用后一种方式时,我们需要了解一个对象是如何占据堆内存空间的,或者说是了解一个对象是由哪些部分组成的。 JVM将内存划分为程序计数器(Program Counter Register)、虚拟机栈(VM Stack)、本地方法栈(Native Method Stack)、堆(Heap)以及方法区...
摘要:笔者多次参与银行运营商等大型企业的性能优化工作总结了企业级应用最应重视的个性能指标,主要包括商业事务,外部服务,垃圾回收以及应用布局。应用布局最后要探讨的性能指标是应用布局。另一个需要监测的是容器性能。 虽然很多人都曾预言 Java 将一蹶不振,但是不可否认的是,很多重要项目中,尤其是银行和政府一些大型项目,Java 仍在其中扮演着极其重要的角色。笔者多次参与银行、运营商等大型企业的性...
摘要:上一篇文章讲解了虚拟机中的内存布局,这里就稍作拓展,聊聊对象在虚拟机中的一些存储细节吧。参考文档深入理解虚拟机高级特效与最佳实现,第章周志明著系列笔记内存区域和机制明舞深入理解结构团长联系作者 上一篇文章讲解了 java 虚拟机中的内存布局,这里就稍作拓展,聊聊 java 对象在虚拟机中的一些存储细节吧。 本文主要围绕虚拟机中对象如何创建?对象内存都放些什么?如何访问对象内存?这么三...
摘要:也就是说,一个实例变量,在的对象初始化过程中,最多可以被初始化次。当所有必要的类都已经装载结束,开始执行方法体,并用创建对象。对子类成员数据按照它们声明的顺序初始化,执行子类构造函数的其余部分。 类的拷贝和构造 C++是默认具有拷贝语义的,对于没有拷贝运算符和拷贝构造函数的类,可以直接进行二进制拷贝,但是Java并不天生支持深拷贝,它的拷贝只是拷贝在堆上的地址,不同的变量引用的是堆上的...
阅读 3488·2021-11-17 17:01
阅读 3899·2021-11-08 13:12
阅读 2451·2021-10-08 10:04
阅读 648·2021-09-29 09:35
阅读 1377·2021-09-26 10:12
阅读 1953·2021-09-07 09:58
阅读 1937·2019-08-30 15:55
阅读 2117·2019-08-30 13:14