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

整数a = 5和new Integer(5)有什么区别?

曾英睿
2023-03-14
问题内容

如果我写下面的代码(在java中):

Integer a =new Integer(5);
Integer b=new Integer(5);
if(a==b){
  System.out.println("In ==");
}
if(a.equals(b)){
 System.out.println("In equals");
}

我的输出是:“等于”,但是如果我将第一行和第二行更改为->

Integer a =5;
Integer b=5;

那么我的输出是:

In == 
In equals

那么创建Integer对象有什么区别?当我们这样做时如何创建它Integer a =5

如果我创建Integer a=5并创建另一个对象,是否意味着a和b对象引用相同的对象Integer b=5


问题答案:

Integer a = 5; 称为自动装箱,编译器将此表达式转换为实际

Integer a = Integer.valueOf(5);

对于较小的数字,默认情况下为-128到127,Integer.valueOf(int)不会创建Integer的新实例,而是从其缓存中返回一个值。所以在这里

Integer a = 5;
Integer b= 5;

ab指向相同的Object和a == bis true



 类似资料:
  • 问题内容: public void push(E element) { if (size == elements.length) { resize(); // doubel of size } elements[size++] = element; } Java中的a 和 a或a–和–a有什么区别 谢谢 问题答案: 或是后缀运算符,表示a的值将在对表达式求值后更改。 或是前缀运算,表示a的值将在对

  • 问题内容: 正如我在标题中提到的 a + = b和a = + b以及a 和 a有什么区别?我有点困惑 问题答案: 相当于 相当于 且两者都增加1。不同之处在于,返回的是增量之前的值,而返回的是增量之后的值。 那是:

  • lambda函数在C++11中的加入很是令人兴奋,因为lambda函数能够大大简化代码复杂度(语法糖:利于理解具体的功能),避免实现调用对象。C++11的lambda函数语法允许在需要使用的时候进行定义。能为等待函数,例如std::condition_variable(如同4.1.1节中的例子)提供很好谓词函数,其语义可以用来快速的表示可访问的变量,而非使用类中函数来对成员变量进行捕获。 最简单的

  • 我发现为了使用点积,我经常不得不将(5,)重塑为(5,1)。我不能使用形状向量(5,)的点积吗?

  • Java的(“A”)和“A”有什么区别? 为什么下面的两行给出的结果是一样的?它们之间有什么区别吗?

  • 例如: 上面提到的脚本用三角形给出答案,而没有双引号,它一个接一个地落在不同的线上。