Java 10个字符的选择题

来源:百度知道 编辑:UC知道 时间:2024/06/30 08:29:53
Integer a = new Integer(3);
Integer b = new Integer(3);
System.out.println(a==b);
输出来等于false
为什么?

首先你声明一个对象,在内在中就给它分配的内存地址,INTEGER A=NEW INTEGER(3)是指在内存中声明了两个两块地址,一个是在内存的栈上分配了一个空间即A,而这个内存地址指向了在内存堆上的3,改天另一个内在地址
B同理,而你A==B是在比较A与B的内存地址,当然是不一样的,所以返回FALSE
你如果写上a.equels(b)。那则是比较a和b 所引用的值,那将返回TRUE,多看些JAVA基础的书,对你以后的学习会很有帮助的

应为是两个integer的对象虽然值是一样但是这是两个不同的对象

两个对象并不是同时创建的...内存分配地址空间是随机的..

所以虽然说两个对象的值是相同的..但是这两个对象的地址是不一样的..

所以两个对象并不是相等的...因为他们的内存地址不同...

楼主明白了吧??
如果还有什么不明白的百度HI我...帮你解决!!

祝楼主早日成功!

a==b是判断a和b存储的内存地址是否一样。
a 和b都是引用变量,存储的是指向堆区两个不同的Integer对象的地址。
如果是a.equals(b),那就是判读a和b所指向的对象的内容是否一致。