中易网

java包装类Integer问题

答案:6  悬赏:10  
解决时间 2021-02-19 20:44
public class test
{
public static void main(String [] args)
{
int m=123;
Integer n=new Integer(123);
System.out.println(m==n);
}
}
执行输出结果为true,但书上写的结果为false,不知为什么?
最佳答案
Integer类将int类型的值包装到一个对象中。
  Integer通过下面这个构造方法构造相应的整型数的对象:
  public Integer(int value);
  public int intValue()方法则返回这个包装类所包装的整型值。
  
  自动装箱/拆箱(Autoboxing/unboxing)
  JDK5.0的一个新特性是自动装箱和自动拆箱。
  自动装箱/拆箱大大方便了基本类型数据和它们包装类的使用。
  自动装箱:基本类型自动转为包装类(int >> Integer)
  自动拆箱:包装类自动转为基本类型(Integer >> int)
  
  比如下面的例子:
import java.util.ArrayList;
import java.util.Collection;

public class BoxTest
{
    public static void main(String[] args)
    {
        Collection c = new ArrayList();

        c.add(3);//将int类型的3转换为Integer类型并放到集合当中        
    }
}
全部回答
书上不一定就完全是对的嘛!以你执行代码的结果为准啦!
问题1回答:返回的确实是包装类对象; 问题2回答:第二种的valueof(int i)返回结果里对象的值就是i的值,而valueof(string s)中的返回对象的值是把字符串s进行了integer.parseint(s)转化之后的值,也就是把s转化成int后的值; 问题3回答:可以直接打印是因为打印对象时会调用对象自身的tostring()方法,而integer的tostring()方法就是直接打印int值,所以你可以直接打印该对象。 回答完毕,望采纳
private final int value public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; 源码是比较的他们的值是否相同。。。。。。
你看的书是不是很老了,看看书上是基于什么版本的JDK讲解的,1.4及以下版本这段代码可能就为false的,这是因为1.4以上版本会自动封装int为Integer型
n是对象,m是基本类型,这里面涉及到一个自动打包解包的过程,如果jdk版本过低的话没有这个功能的,所有输出的是false,估计你的书本是针对老版本的jdk而编写的,现在新版本的jdk都有自动打包解包功能了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我是暗夜 帮我取个好听的名字 要符号的!谢谢
在三角形ABC中,已知tanA,tanB是方程x的平方+p
吴江市黎里越群织造厂地址在哪,我要去那里办
脸型决定你的发型,怎么判断自己是什么脸型
双股金钗建材市场我想知道这个在什么地方
临铺怎么坐车去杭州东火车站
两个45度弯头中间的那节管子长度怎么计算?
山东宏飞包装股份有限公司我想知道这个在什么
超威锂电池充电器48v多少钱一个
酶联免疫法17天阴,有意义吗
寻仙小恶魔外形能值多少钱
弘品商行地址有知道的么?有点事想过去
想买个车,平时上下班用来回有80公里路,过年
支付宝被冻结了,现在登陆不了了,打客服就给
40岁女人,肚子胀了7天,,还咕噜咕噜响,一吃饭
推荐资讯
pople who live in glass housee have on rig
钠离子、钾离子、神经递质等物质进入细胞都需
三才化生和七星拱瑞效果是一样的吗?
工艺花架款式
九十三乘九十二分之三
毒蝎现在多少钱一斤 有人要吗
英语四级到底怎么考啊?我都大三了还没过四级,
监控录像用户权限被锁怎么办
宋玉时尚宾馆在哪里啊,我有事要去这个地方
安阳顺意防水工程有限公司怎么去啊,有知道地
常见的风险防护措施有哪些
新手学车何为三点一
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?