gpt4 book ai didi

java - java中的原始数据类型是如何定义/编写的?

转载 作者:搜寻专家 更新时间:2023-11-01 02:36:05 26 4
gpt4 key购买 nike

例如,是否有int.javadouble.java 之类的东西?

由于原始数据类型是 Java 语言的构建 block ,我假设它们会用某种低级语言编写。

  1. Java中的原始数据类型是用什么语言写的?

  2. 能否访问这些文件并查看原始数据类型(如 int)是如何定义的?

最佳答案

不,没有 int.java 或 double.java 这样的东西这些低级别类型在 JVM 级别进行硬编码。即使在字节码级别,它们也是原始类型(例如,不同的字节码适用于 4 字节而不是 8 字节的操作数,或者适用于整数类型而不是浮点类型)。您可能想要研究一个或多个开源 Java VM 的实现,以了解它们是如何被处理的 (https://en.wikipedia.org/wiki/List_of_Java_virtual_machines#Free_and_open_source_implementations)。此外,甚至编译器也会对它们进行特殊对待并对它们做出某些假设,例如用于优化目的。

他们没有等价的 Java 类(不像大写的 java.lang.Integer、java.lang.Double 等)的另一个原因是他们没有自己的方法,您可以调用,例如点符号。当您将基本类型用作对象时,会发生转换(称为自动装箱 -- https://en.wikipedia.org/wiki/Object_type_(object-oriented_programming)#Autoboxing ),其中基本类型被转换为一种包装类型,对程序员来说是透明的。值得一看这些类的源代码,以获得一些有趣的内部功能。

您也不能使用 new 关键字创建它们的实例。编译器或 VM 根据需要在堆栈上为它们分配空间,作为对象或类字段,甚至直接在代码中。

关于java - java中的原始数据类型是如何定义/编写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51594425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com