
Java虚拟机学习
abb_sqq
我有我要求!
展开
-
Java运行时内存区域-学习笔记
今天开始看了些Java虚拟机的资料,做了一下小结笔记,希望大家多提宝贵意见,谢谢。 一、Java虚拟机运行时数据区域 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 运行时常量池 二、各数据区域情况 1、程序计数器 (1)当前线程所执行字节码的行号指示器。 (2)各线程计数器互不影响,独立存储。 (3)是线程私有内...原创 2018-08-12 22:22:47 · 176 阅读 · 0 评论 -
Java虚拟机创建普通对象步骤
今天小结下Java虚拟机创建普通Java对象的一般步骤,不包括class对象和数组。 S1. 检查new指令参数能否在常量池中定位到一个类的符号引用。 S2. 检查这个符号引用代表的类是否已经被加载、解析和初始化过。 如果该类没有被加载和初始化过,则必须先执行类的加载过程。 S3. 为新生对象分配内存 方法: if (java堆是规整的) then ...原创 2018-08-13 22:52:59 · 194 阅读 · 0 评论 -
对象的内存布局和对象的访问定位
一、对象的内存布局 主要包含对象头、实例数据和对象填充3个部分。 1. 对象头(Header) 存储对象自身运行数据,比如哈希码、GC分代年龄和锁状态标志、线程持有的锁等等。 类型指针,即对象所指向的类元数据的指针,虚拟机通过这个类型指针来确定这个对象是那个类的实例。 2. 实例数据(Instance Data) 对象真正存储的有效信息,即代码中各种类型字段内容。 3. ...原创 2018-09-04 22:44:40 · 218 阅读 · 0 评论