已经有了统一的 Class 文件,以及可以在不同平台上将 Class 文件翻译成对应的二进制文件的 Java 虚拟机,Java 就可以彻底实现跨平台了吗?其实并不是的,Java 语言在跨平台方面也是做了一些努力的,这些努力被定义Java 语言规范中。
比如,Java 中基本数据类型的值域和行为都是由其自己定义的。而 C/C++中,基本数据类型是由它的占位宽度决定的,占位宽度则是由所在平台决定的。所以,在不同的平台 中,对于同一个 C++程序的编译结果会出现不同的行为。
举一个简单的例子,对于 int 类型,在 Java 中,int 占 4 个字节,这是固定的。 但是在 C++中却不是固定的了。在 16 位计算机上,int 类型的长度可能为两字节;在32 位计算机上,可能为 4 字节;当 64 位计算机流行起来后,int 类型的长度可能会达到 8字节。(这里说的都是可能哦!)
通过保证基本数据类型在所有平台的一致性,Java 语言为平台无关性提供强了有力的支持。
资料来源:《Java工程师成神之路(基础篇)》,链接:https://developer.aliyun.com/topic/download?id=923
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。