当前位置: 首页 > 面试题库 >

为什么在Java中原始数据类型不能为“ null”?

利俊迈
2023-03-14
问题内容

声明任何原始类型的数据(例如int或)时,double它们会初始化为00.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集合仅存储对象,而不存储原始类型。但是,我们可以存储包装器类。 为什么会有这种约束? 问题答案: 这是一个Java设计决策,有人认为这是一个错误。容器需要对象,而基元不是从对象派生的。 这是.NET设计人员从JVM中学到的地方,并实现了值类型和泛型,因此在许多情况下都无需装箱。在CLR中,通用容器可以将值类型存储为基础容器结构的一部分。 Java选择在编译器中100%添加通用支