![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入理解java虚拟机读书笔记
xiafei87
这个作者很懒,什么都没留下…
展开
-
理解Java虚拟机内存分区
一、jvm内存分区 jvm内存一般分为程序计数器PC、虚拟机栈、本地方法栈、堆、方法区、运行时常量池、直接内存7大部分,统称为Java虚拟机运行时数据区。1.1、程序计数器PC 是一块较小的内存空间、可以看作当前线程所执行的字节码的行指示器指向当前所执行的字节码指令的地址,每执行完一条指令PC将自增,然后指像下一条字节码指令,如此循环可实现字节码指令的连续执行处理。每条线程...原创 2018-03-15 20:10:01 · 564 阅读 · 0 评论 -
理解Java对象访问
前面学习了Java虚拟机的内存分区,今天来学学Java语言中对象访问是如何进行的。Java语言中对象访问会涉及Java栈、Java堆、方法区这三个重要内存区域之间的关联关系,如以下代码: Object obj=new Object(); 如果这句代码出现在方法体中,那“Object obj”中的obj将存储在Java栈上,以一个reference类型数据存在,“new...原创 2018-03-16 16:52:35 · 279 阅读 · 0 评论 -
java内存溢出试验
在实验之前先温习一下java虚拟机内存分区和对象访问方式。首先java虚拟机的内存分为程序计数器PC、虚拟机栈、本地方法栈、堆、方法区、运行时常量池、直接内存七大部分,其中运行时常量池属于方法区的一部分,直接内存不属于虚拟机运行时数据区,是本机真实内存的一部分。各个部分的内存超出最大允许范围并且无法扩展时就会抛出内存溢出错误。通过学习对象的访问方式我们知道,声明并实例化一个对象时,会在虚...原创 2018-03-19 23:21:35 · 284 阅读 · 0 评论