public class test
{
public static void main(String [] args)
{
int m=123;
Integer n=new Integer(123);
System.out.println(m==n);
}
}
执行输出结果为true,但书上写的结果为false,不知为什么?
java包装类Integer问题
答案:6 悬赏:10
解决时间 2021-02-19 20:44
- 提问者网友:残阳碧曼
- 2021-02-18 21:20
最佳答案
- 二级知识专家网友:魅世女王
- 2021-02-18 21:46
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类型并放到集合当中
}
}
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.add(3);//将int类型的3转换为Integer类型并放到集合当中
}
}
全部回答
- 1楼网友:悲观垃圾
- 2021-02-19 03:32
书上不一定就完全是对的嘛!以你执行代码的结果为准啦!
- 2楼网友:伤口狠精致
- 2021-02-19 02:13
问题1回答:返回的确实是包装类对象;
问题2回答:第二种的valueof(int i)返回结果里对象的值就是i的值,而valueof(string s)中的返回对象的值是把字符串s进行了integer.parseint(s)转化之后的值,也就是把s转化成int后的值;
问题3回答:可以直接打印是因为打印对象时会调用对象自身的tostring()方法,而integer的tostring()方法就是直接打印int值,所以你可以直接打印该对象。
回答完毕,望采纳
- 3楼网友:哭不代表软弱
- 2021-02-19 01:08
private final int value
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
源码是比较的他们的值是否相同。。。。。。
- 4楼网友:初心未变
- 2021-02-19 00:16
你看的书是不是很老了,看看书上是基于什么版本的JDK讲解的,1.4及以下版本这段代码可能就为false的,这是因为1.4以上版本会自动封装int为Integer型
- 5楼网友:无字情书
- 2021-02-18 23:01
n是对象,m是基本类型,这里面涉及到一个自动打包解包的过程,如果jdk版本过低的话没有这个功能的,所有输出的是false,估计你的书本是针对老版本的jdk而编写的,现在新版本的jdk都有自动打包解包功能了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯