Java 进阶JVM · Java虚拟机原理 · JVM上语言·框架· 生态系统编程语言爱好者

JVM 数据类型

2020-12-01  本文已影响0人  我犟不过你

参考:https://blog.csdn.net/antony1776/article/details/89843145

在jvm中,数据分为原始类型引用类型(Reference)

原始类型

Java虚拟机支持的原始数据类型是数字类型boolean类型和returnAddress 类型。

数字类型:由整数类型浮点类型组成。

整数类型为:

浮点类型为:

boolean:该boolean 类型的值真实值true,默认值为false

returnAddress:该returnAddress类型的值是指向Java虚拟机指令的操作码的指针,returnAddress 数据只存在于字节码层面。与数字原始类型不同,该returnAddress类型不对应于任何Java编程语言类型,并且不能由正在运行的程序进行修改。

对于 JVM 来说,程序就是存储在方法区的字节码指令,而 returnAddress 类型的值就是指向特定指令内存地址的指针。

引用类型

让 JVM 能更好的支持于面向对象语言的设计,引用类型的值用来指向内存中分配的类实例(对象)或者数组。JVM 规范中并没有详细规定引用类型的实现细节,比如引用应该通过何种方式去定位、访问堆中的对象,具体的对象访问方式取决于虚拟机的具体实现。

目前主流引用类型的实现方案两种:句柄直接指针

句柄 直接引用

两种方式各有优劣:
句柄:访问的最大好处就是 reference 中存储的是稳定的句柄地址,在对象被移动(比如垃圾回收时,整理内存空间,会移动对象的存储位置)时只会改变句柄中示例数据的指针,而 reference 本身不需要修改。
直接指针:访问的最大好处就是速度更快,节省了一次内存寻址的时间开销。

上一篇 下一篇

猜你喜欢

热点阅读