java defined/written 中的原始数据类型如何?
How are the primitive data types in java defined/written?
例如,是否有int.java或double.java?
由于原始数据类型是 Java 语言的基石,我假设它们会用某种低级语言编写。
Java中的原始数据类型是用什么语言写的?
能否访问这些文件并查看原始数据类型(如 int)是如何定义的?
所以,int, double 不是java中的class
。那些是 keyword
。以及用母语(我相信c,C++)编写的那些关键字的定义。
1) What language are primitive data types in java written in?
-> 我相信那些是写 n C/C++;
2) Can one access those files and see how primitive data types such as
int are defined?
-> 没有 .java
您可以找到的文件。
原始数据类型在 Java 语言规范中定义。这意味着任何满足规范的 JVM 都将以相同的方式处理它们,无论 JVM 是用哪种语言编写的。所以,
原始类型没写,JVM写了。
如果 JVM 是开源的,您可以访问实现指定行为的文件。
不,没有 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 classes 的另一个原因是他们不有自己的方法,你可以调用,例如用点符号。当您确实将原始类型用作对象时,会发生转换(称为自动装箱——https://en.wikipedia.org/wiki/Object_type_(object-oriented_programming)#Autoboxing),其中原始类型被转换为一种包装类型,这对程序员来说是透明的。值得一看这些 classes 的源代码,以获得一些有趣的内部功能。
此外,您不能使用 new
关键字创建它们的实例。编译器或 VM 根据需要在堆栈上为它们分配 space 作为对象或 class 字段,甚至直接在代码中。
例如,是否有int.java或double.java?
由于原始数据类型是 Java 语言的基石,我假设它们会用某种低级语言编写。
Java中的原始数据类型是用什么语言写的?
能否访问这些文件并查看原始数据类型(如 int)是如何定义的?
所以,int, double 不是java中的class
。那些是 keyword
。以及用母语(我相信c,C++)编写的那些关键字的定义。
1) What language are primitive data types in java written in?
-> 我相信那些是写 n C/C++;
2) Can one access those files and see how primitive data types such as int are defined?
-> 没有 .java
您可以找到的文件。
原始数据类型在 Java 语言规范中定义。这意味着任何满足规范的 JVM 都将以相同的方式处理它们,无论 JVM 是用哪种语言编写的。所以,
原始类型没写,JVM写了。
如果 JVM 是开源的,您可以访问实现指定行为的文件。
不,没有 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 classes 的另一个原因是他们不有自己的方法,你可以调用,例如用点符号。当您确实将原始类型用作对象时,会发生转换(称为自动装箱——https://en.wikipedia.org/wiki/Object_type_(object-oriented_programming)#Autoboxing),其中原始类型被转换为一种包装类型,这对程序员来说是透明的。值得一看这些 classes 的源代码,以获得一些有趣的内部功能。
此外,您不能使用 new
关键字创建它们的实例。编译器或 VM 根据需要在堆栈上为它们分配 space 作为对象或 class 字段,甚至直接在代码中。