一道关于Integer的笔试题

这篇博客探讨了Java中的Integer与int两种数据类型的区别,重点解析了Integer的构造函数和valueOf方法的工作原理。通过分析Integer i01 = 59;、Integer i03 = Integer.valueOf(59);和Integer i04 = new Integer(59);这三种声明方式,阐述了Integer对象的缓存机制,并解释了为何i01 == i02、i01 == i03和i03 == i04的比较结果分别为true、true和false。
摘要由CSDN通过智能技术生成

面试题:

//有如下4条语句:

Integer i01 = 59;
int i02 = 59;
Integer i03 =Integer.valueOf(59);
Integer i04 = new Integer(59);

以下输出结果为false的是:

A.   System.out.println(i01== i02);
B.   System.out.println(i01== i03);
C.   System.out.println(i03== i04);
D.   System.out.println(i02== i04);

首先可以看到这有两个数据类型, int和Integer

int为基本类型

Integer为对象类型,它的声明是这样的

public final class Integer extends Number implements Comparable<Integer>{...}

//1.Integer类是final的, 不能被继承
//2.Integer类实现了Comparable接口, 所以可以用compareTo进行比较
//3.Integer继承了Number类, 所以该类可以调用longValue, floatValue, doubleValue等系列方法返回对应的类型的值

题目中声明了三个Integer变量, i01, i03, i04 这三种方式有什么区别呢

  • Integer i04 = new Integer(59); 

new Integer(59)这个操作是 调用了构造函数, 将59这个值, 赋给了Integer的局部变量value

  • Integer i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值