
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 展开
Integer b = new Integer(1);
int c = 1;
为啥会出现a= = c为true。b= = c为true
但是a = =b为false 展开
4个回答
展开全部
Integer 是int的包装类a,b都是引用数据类型,他们分别指向不同的两个地址,里面存的值都是1。c是基本数据类型,a= = c为true。b= = c为true是比较a,b,里面的值和1是否相等,所以都是true,但是a = =b为false他们比较的是内存地址,所以是不相等的
展开全部
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。它会报错的
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。它会报错的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a,b是对象,c是整型变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-10-05
展开全部
基本类型和包装类比较自动拆箱
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询