public class HeapStackTest {
public static void main(String[] args){
String str1 = new String("abc");
String str2 = "abc";
String str3 = "abc";
System.out.println(str1 == str2);
System.out.println(str2 == str3);
int a = 5;
Integer b = new Integer(5);
Integer c = new Integer(5);
System.out.println(a == b);
System.out.println(b == c);
}
}新手上路,想请教各位,以上程序,输出的true或false在堆栈中是如何实现的?
以上出现的数据在堆栈中是如何保存的呢?
“==”比较的是什么?
若全换成equals呢?
对于简单类型,==两侧比较的是数值;
比如上面的:
int a = 5;
Integer b = new Integer(5);
System.out.println(a == b);又是个什么情况呢?
我也是这么想的呢!可是实际运行的时候打印出来的是true……
这是为什么?
呵呵,有道理哦!我用的是JDK1.6,基本类型包装类的自动装箱/拆箱,学习了!
对于简单类型, ==两侧比较的是数值
equals比较的是值1.简单类型比较,用==
2.对象与null比较一般用==
3.引用类型比较一般用equals
int 与 Integer比较
Integer 两类型不同,Integer自动解箱为int类型 因而两种类型比较为trueInteger 与 Integer 比较
Integer则不存在自动解箱,两者比较为false
int 与 Integer比较
Integer 两类型不同,Integer自动解箱为int类型 因而两种类型比较为true 学习了!