JVM官方文档笔记

JVM空间分布

1)要正确实现 Java 虚拟机,您只需要能够读取class文件格式并正确执行其中指定的操作即可。不属于 Java 虚拟机规范的实现细节会不必要地限制实现者的创造力。例如,运行时数据区域的内存布局、使用的垃圾收集算法以及 Java 虚拟机指令的任何内部优化(例如,将它们转换为机器代码)都由实现者自行决定。

2)  由 Java 虚拟机执行的编译代码使用独立于硬件和操作系统的二进制格式表示,通常(但不一定)存储在文件中,称为class文件格式

3)  与 Java 编程语言一样,Java 虚拟机对两种类型进行操作:原始类型 和引用类型相应地,有两种值可以存储在变量中,作为参数传递,由方法返回和操作:原始值引用值

4)  Java 虚拟机包含对对象的显式支持。一个对象要么是一个动态分配的类实例,要么是一个数组。一个对象可能存在多个引用。对象始终通过类型引用的值进行操作、传递和测试

5)  浮点类型为浮点型和双精度型,概念上与32位单精度和64位双精度格式IEEE 754值和操作相关,如IEEE二进制浮点算法标准(ANSI/IEEE标准754-1985,纽约)中所规定。存在NAN(无效值,如0/0.0)和Infinity(无穷,如1/0.0)、正负零等

6)尽管 Java 虚拟机定义了一个 boolean类型,但它只提供了非常有限的支持。没有专门用于对boolean 值进行操作的 Java 虚拟机指令。相反,Java 编程语言中对 boolean值进行操作的表达式被编译为使用 Java 虚拟机int数据类型的值;如果使用boolean声明一个基本类型的变量时,那么该变量占4个字节,如果使用boolean声明一个数组类型的时候,那么每个数组的元素占一个字节。

7)有三种引用类型:类类型、数组类型和接口类型。它们的值分别是对动态创建的类实例、数组或实现接口的类实例或数组的引用。引用类型以null为初始值

posted on 2022-03-29 13:45  .11  阅读(75)  评论(0编辑  收藏  举报