加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

了解JVM的结构

发布时间:2021-03-07 13:19:40 所属栏目:动态 来源:互联网
导读:类型包括三种,类类型,数组类型,和接口类型。 它们的值是动态创建的类实例,数组,或实现接口的类实例。 数组有component类型和element类型,component类型就是数组去掉最外层维度后剩下的类型,可能还是一个数组类型(对于多维数组)。 element类型就是数组



类型包括三种,类类型,数组类型,和接口类型。

它们的值是动态创建的类实例,数组,或实现接口的类实例。

数组有component类型和element类型,component类型就是数组去掉最外层维度后剩下的类型,可能还是一个数组类型(对于多维数组)。

element类型就是数组里面存储的最小数据的类型,它必须是一个基本类型,类类型,或接口类型。

对于一维数组的话,component类型和element类型是相同的。

引用类型还有一个特殊值,就是null,表示没有引用任何对象。

运行时公有数据区

jvm有一个堆,在所有jvm线程间共享,堆是一个运行时数据区域,所有为类实例和数组分配的内存都来自于它。

堆在jvm启动时创建,堆中对象不用显式释放,gc会帮我们释放并回收内存。

方法区

jvm有一个方法区,在所有jvm线程间共享,它存储每一个类的结构。

像运行时常量池,字段和方法数据,方法和构造函数的代码,还有特殊的方法用于类和实例的初始化,以及接口的初始化。

方法区在jvm启动时创建,虽然方法区在逻辑上是堆的一部分。

但简单实现时可以选择不进行gc和压缩,本规范没有强制要求方法区的位置,也没有要求管理已编译代码的策略。

运行时常量池

运行时常量池就是类或接口的字节码文件里的常量池的运行时表示形式,它包含几种常量。

如在编译时就已经知道的数字字面量值,和必须在运行时解析的方法和字段的引用,运行时常量池的功能类似于传统语言的符号表,不过它包含的数据会更加宽泛。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读