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为初始值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架