声明任何原始类型的数据(例如int或)时,double
它们会初始化为0
或0.0
。为什么我们不能将它们设置为null
?
基本类型就是数据。另一方面,我们称为对象的对象只是指向数据存储位置的指针。例如:
Integer object = new Integer(3);
int number = 3;
在这种情况下,object
它只是指向一个整数对象的指针,该对象的值恰好是3。也就是说,在存储变量对象的内存位置,你所拥有的只是对数据实际位置的引用。number另一方面,存储的存储位置直接包含值3。
因此,你可以将设置object
为null,但这仅表示该对象的数据为null(即未分配)。你不能将int设置为null,因为语言会将其解释为值0。
当声明任何基本类型数据(如< code>int或< code>double)时,它们被初始化为< code>0或< code>0.0。为什么我们不能将它们设置为< code>null?
问题内容: 如果有Wrapper类使Java成为纯面向对象的语言,那么为什么会有可在Java中使用的Primitive数据类型呢? 问题答案: 为了效率。基本类型的变量直接包含值。非基本类型的变量是引用,引用存储在内存中其他位置的对象。 每次您需要使用包装器类型的值时,JVM都需要在内存中查找对象以获取该值。对于原始类型,这不是必需的,因为变量本身包含值,而不是对包含该值的对象的引用。 但是,这不
问题内容: 在Java中,我们可以直接用于声明字符串变量名称并指定其值。即使String是非原始数据类型,也不必通过使用new关键字将字符串定义为数组。 有人可以解释为什么String是非原始数据类型吗? 问题答案: 这是字符串文字。像这样声明字符串时,实际上是在String上调用intern()方法。此方法引用内部字符串对象池。如果已经存在一个字符串值“ This is stringlitera
问题内容: ArrayList仅接受引用类型作为其元素,而不接受原始数据类型。尝试这样做时会产生编译时错误。 这背后的概念是什么?似乎是一个限制,不是吗? 问题答案: Java的所有收集类都存储它们收集的对象的内存位置。基本值不 适合 同一定义。 为避免此问题,JDK5及更高版本具有 自动装箱功能 -其中,将原语转换为适当的对象,然后在添加或从集合中读取原语时将其转换回原样。请参阅有关此主题的官方
这是对我上一个问题的延续,并同意这个问题的答案 包装类声明 Java将原始数据类型包装到包装类中,那是为什么呢 不允许,但 是允许的。
问题内容: Java将原始数据类型包装到包装器类,然后为什么 不允许,但 被允许。 问题答案: 因为原语表示 值, 而对象变量表示对复杂数据对象的 引用 (类似于指针)。 没有通用的null值,它是一个特殊的关键字,它“不引用任何内容”或为空引用 -这是非常不专业的答案,但我想它会是最合适的。 此外,您认为null的数值是多少?0?-1?但是,这些是有效的整数,那又是什么? 我强烈建议您开始熟悉以