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

int []和Integer []数组-有什么区别?

安坚诚
2023-03-14
问题内容

考虑以下基础:

  1. 任何Object人只能活在堆里
  2. 阵列IS-A Object
  3. Integer IS-A Object

我发现自己很难回答这样一个简单的问题: JVMint[]Integer[] JVM内部 有什么区别吗?还是仅在“编译时”才有意义?


问题答案:

运行时有所不同。

int[]是原始int值的数组。Integer[]是一个“对象”数组,其中包含对Integer对象的引用。

最重要的实际差异:int[]无法持有null价值观。

但是我仍然很困惑:是否int[]仅存储原始值?如果是这样,这是否意味着原始类型可以不封装就可以存在于堆中?

int[]确实存储原始类型。数组本身位于堆中。但是,这些原语被分配为数组的一部分。它们不会单独存储在堆中的其他位置。这与原始字段是对象实例的一部分的方式非常相似:该对象在堆上,并且其字段是该对象的组成部分(而对于非原始字段,只有引用存储在该对象内部引用所指向的目标实例分别存储在堆中)。

您可以说int数组中的“包裹”了。



 类似资料:
  • 本文向大家介绍int和Integer有什么区别?相关面试题,主要包含被问及int和Integer有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 考察点:数据类型 Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是I

  • 问题内容: 例如,为什么可以这样做: 但不是: 你可以执行以下操作: 但不是: 问题答案: 是原始类型。类型的变量int存储要表示的整数的实际二进制值。没有意义,因为int它不是类,因此没有任何方法。 是一个类,与Java语言中的其他类没有什么不同。类型变量存储对对象的引用,就像存储任何其他引用(对象)类型一样。是对类的静态方法的调用(请注意,此方法实际上返回而不是)。 更具体地说,是一个具有单个

  • 问题内容: 当我遇到Joel Spolsky的时候,我正在阅读《更多关于软件的 Joel》,他说了一种有关特定类型的程序员的一些知识,他们知道Java / C#(面向对象编程语言)中an int和an 之间的区别Integer。 那么区别是什么呢? 问题答案: 在Java中, “ int”类型是原始类型,而“ Integer”类型是对象。 在C#中, 类型与值类型相同,并且是值类型(即更像Java

  • 本文向大家介绍请你说明一下int 和 Integer 有什么区别相关面试题,主要包含被问及请你说明一下int 和 Integer 有什么区别时的应答技巧和注意事项,需要的朋友参考一下 考察点:数据类型 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。 Java为每个原始类型提供了封装类。 原始类型封装类

  • 本文向大家介绍在 hibernate 中使用 Integer 和 int 做映射有什么区别?相关面试题,主要包含被问及在 hibernate 中使用 Integer 和 int 做映射有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 Integer 类型为对象,它的值允许为 null,而 int 属于基础数据类型,值不能为 null。

  • 问题内容: 如果我写下面的代码(在java中): 我的输出是:“等于”,但是如果我将第一行和第二行更改为-> 那么我的输出是: 那么创建Integer对象有什么区别?当我们这样做时如何创建它? 如果我创建并创建另一个对象,是否意味着a和b对象引用相同的对象? 问题答案: ; 称为自动装箱,编译器将此表达式转换为实际 对于较小的数字,默认情况下为-128到127,Integer.valueOf(in