Java中最重要的两个规范,90%的人都不知道!
↑↑ 点击上方蓝色字关注我↑↑
说到 Java 领域的规范,就不得不提:Java 语言规范和 Java 虚拟机规范了。他们一个描述了 Java 语言,一个描述了 Java 虚拟机。
Java 语言规范
简单点来说,Java语言规范就是要告诉开发人员「Java代码应该如何写」。例如 Java 语言有多少种数据类型,Java 语言的 if else 选择语句怎么写,Java 语言的变量怎么定义等等。
用官方点的话来说,Java 语言规范是这样一个东西:
Java 语言规范定义了 Java 语言的特性,例如 Java 的语法、数据类型、数组等内容。
其中关于数据类型的定义也在 Java 语言规范中定义的。在 Java 语言中,数据类型分为原始数据类型和引用数据类型。
原始数据类型又分为数字型和布尔型。数字型有 byte、short、int、long、char、float、double,布尔型有 boolean。其中 byte、short、int、long 分别是 8 位、16 位、32 位、64 位有符号整数,而 char 为 16 位无符号整数,表示 UTF-16 的字符。而对于 float 和 double,规范中规定,它们是满足 IEEE754 的 32 位浮点数和 64 位浮点数。
引用数据类型则分为三种:类或接口、泛型类型以及数组类型。
如果你对 Java 语言规范感兴趣,你可以到下面的地址下载官方的Java语言规范文档了解更多信息。
下载地址:https://docs.oracle.com/javase/specs/
Java 虚拟机规范
虽然 Java 语言和 Java 虚拟机有着密切的关系,但他们俩还是完全不一样的东西。Java 虚拟机是一台执行 Java 字节码的虚拟计算机,它运行的字节码文件并不一定要由 Java 语言编写,也可以由其他语言编写。这也是 Java 语言能够实现跨平台的一个原因。
而决定一台 Java 虚拟机有什么样的结构,怎么运行,就是 Java 虚拟机规范所描述的事情了。在 Java 虚拟机规范中,它包括但不限于下面这些东西:
虚拟机内部结构
虚拟机执行的字节码类型和功能
Class文件的结构
类加载、连接和初始化的细节
等等
所以如果你想要自己实现一台 Java 虚拟机,那么 Java 虚拟机规范是你必须要细细研究的一份文档。
与 Java 语言规范一样,官方也提供了一份详细的文档供我们下载,下载地址与上面的一致:
下载地址:https://docs.oracle.com/javase/specs/
总结
这篇文章内容比较简单,简单介绍了 Java 语言规范和 Java 虚拟机规范这两个 Java 领域里最重要的规范。理论上来说,有了这两个东西,我们就可以了解所有 Java 语言的代码,还可以写出一个虚拟机了!
但很多时候因为官方文档过于枯燥,所以我们还是会借助其他文档来解读。但如果你是一个有志于技术方向的工程师,那么上面这两份规范是你不得不读的哦。
推荐阅读
公众号@Java技术精选,关注 Java 程序员的个人成长,分享最新技术资讯与技术干货。与你成长有关的,我们这里都有。
↑↑创作不易,如果喜欢请转发↑↑