黑马程序员技术交流社区
标题:
两段代码的区别
[打印本页]
作者:
田向向
时间:
2012-7-4 14:28
标题:
两段代码的区别
本帖最后由 田向向 于 2012-7-4 15:00 编辑
第一段:
public static void main(final String[] args) {
Integer a=new Integer(100);
Integer b=100;
System.out.println(a==b);
}
运行结果是false;
第二段
public static void main(final String[] args) {
Integer a = 100;
Integer b = 100;
System.out.println(a==b);
}
运行结果是true,
当我把第一段代码改成
public static void main(final String[] args) {
int a=new Integer(100);
int b=100;
System.out.println(a==b);
}
运行结果也是true, int和Integer性质不是一样的吗?但是结果为什么不一样呢?谁能给我详细的说说,我也在网上查过int和Integer,但是大部分人都不屑于说,都只是浅浅的说了一下。我还是不大明白,每一个高手都是从像我们这样的菜鸟一步一步的走过来的。希望你们不要嘲笑我的无知,菜鸟变成雄鹰需要你们的帮助,谢谢。
作者:
李志广
时间:
2012-7-4 14:47
int 是基本类型,直接存数值
integer是对象,用一个引用指向这个对象
3.int和Integer都可以表示某一个数值;
4.int和Integer不能够互用,因为他们两种不同的数据类型;
所以说: Integer a=new Integer(100);
Integer b=100;
System.out.println(a==b);
输出是false的
作者:
张立江
时间:
2012-7-4 14:51
第一段:
public static void main(final String[] args) {
Integer a=new Integer(100);
Integer b=100;
/*
这个问题就和
String s1 = new String("abc");
String s2 = "abc";
是一样的
*/
System.out.println(a==b);
}
//而
public static void main(final String[] args) {
int a=new Integer(100);
/*
这里有一个自动装箱和自动拆箱的过程.
整句话被自动拆箱后就变成了
int a = 100;两句话是"equals"相等的。
*/
int b=100;
System.out.println(a==b);
}
复制代码
作者:
杨锦
时间:
2012-7-4 14:58
Integer是java为int提供的封装类。
int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,
比如int a= 5;
Integer b = 5;
对于a你只能用来做计算。。比如加减乘除,不能操作方法
b你可以用来做很多事情,因为他是一个对象,他有很多方法,你可以像使用String对象那样使用它。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2