int和Integer的==问题

Integera=newInteger(1);Integerb=newInteger(1);intc=1;为啥会出现a==c为true。b==c为true但是a==b为f... Integer a = new Integer(1);
Integer b = new Integer(1);
int c = 1;
为啥会出现a= = c为true。b= = c为true
但是a = =b为false
展开
 我来答
shen520110
推荐于2018-04-13 · TA获得超过431个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:132万
展开全部
Integer 是int的包装类a,b都是引用数据类型,他们分别指向不同的两个地址,里面存的值都是1。c是基本数据类型,a= = c为true。b= = c为true是比较a,b,里面的值和1是否相等,所以都是true,但是a = =b为false他们比较的是内存地址,所以是不相等的
清心又谦恭丶布丁9
2011-09-23 · TA获得超过6605个赞
知道小有建树答主
回答量:1247
采纳率:100%
帮助的人:1989万
展开全部
int 是基本数据类型
Integer是其包装类,注意是一个类。
为什么要提供包装类呢???
一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。
比如,现在int要转为String
int a=0;
String result=Integer.toString(a);
在java中包装类,比较多的用途是用在于各种数据类型的转化中。
我写几个demo

//通过包装类来实现转化的
int num=Integer.valueOf("12");
int num2=Integer.parseInt("12");

double num3=Double.valueOf("12.2");
double num4=Double.parseDouble("12.2");
//其他的类似。通过基本数据类型的包装来的valueOf和parseXX来实现String转为XX

String a=String.valueOf("1234");//这里括号中几乎可以是任何类型
String b=String.valueOf(true);
String c=new Integer(12).toString();//通过包装类的toString()也可以
String d=new Double(2.3).toString();

再举例下。比如我现在要用泛型
List nums;
这里>需要类。如果你用int。它会报错的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e314f73
2011-05-20 · 超过25用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:76.3万
展开全部
a,b是对象,c是整型变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-10-05
展开全部
基本类型和包装类比较自动拆箱
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式