![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java虚拟机
文章平均质量分 77
Simon Q.Zhu
这个作者很懒,什么都没留下…
展开
-
Java虚拟机——Java对象在JVM内存中的布局
众所周知,Java对象在Java虚拟机中大部分情况下会被分配到内存模型中的Java堆区(栈上分配除外),然而,Java对象在Java堆区是以什么样的格式存储的呢,即所谓的Java对象在内存中的布局是怎样的。本文就以上问题进行简单介绍说明Java对象在内存中的布局。原创 2023-11-16 18:07:52 · 108 阅读 · 0 评论 -
Java基础——在Java中创建一个Object对象会占用多少内存
一个看似非常简单的问题,在Java中用以上代码创建一个Object对象,这个Object对象会占用多少内存。如果不说答案,有多少小伙伴能答出来,并且有多少小伙伴能说明其中原因?原创 2023-11-11 13:49:55 · 250 阅读 · 0 评论 -
Java虚拟机——初探字节码class文件内部结构
之前介绍过Java编译器如何将Java源码编译成字节码class文件。Java虚拟机——从Java源码到字节码到底经历了什么那么最终的到的字节码文件是怎样的一个文件,内部结构又是如何?此文对字节码class文件的内部结构进行初步探索,介绍其各个重要组成部分,对之后的Java虚拟机学习做好基础。下面展示了一个class文件的构成,其中u2、u4等表示类型,分别表示占2、4个字节的数据,属...原创 2020-01-16 20:41:53 · 249 阅读 · 0 评论 -
Java虚拟机——从Java源码到字节码到底经历了什么
javac编译器将Java源码编译成字节码主要会经历4个步骤:词法解析➙语法解析➙语义分析➙生成字节码词法解析:词法解析要做的事情就是将Java源码中的关键字和标识符等内容转换为符合Java语法规范的Token序列,然后按照指定的顺序规则进行匹配校验。那什么是符合Java语法规范的Token序列?Token序列是一组枚举类型的常量,符合Java语法规范并与源码字符集...原创 2020-01-14 12:18:40 · 266 阅读 · 0 评论 -
Java虚拟机——栈帧
基本概念栈帧(Stack Frame)存储于Java栈中,栈帧中负责存储局部变量表、操作数栈、动态链接和方法返回值等信息。 栈帧是一种用于支持JVM调用/执行程序方法的数据结构,每一个方法从开始调用到执行结束返回的过程对应着Java栈中一个栈帧从入栈到出栈的过程。 在栈帧中,局部变量表和操作数栈所需的容量大小在编译期就可以完全被确定下来,并保存在方法的Code属性中。 只有当前在栈顶的栈...原创 2020-01-13 13:13:47 · 336 阅读 · 0 评论