读书人

判断相等的有关问题

发布时间: 2013-01-04 10:04:18 作者: rapoo

判断相等的问题

public class test {
public static void main(String[] args) {
String a=new String("123");
String b=new String("123");

String c="123";
String d="123";

System.out.println(a==b);//false
System.out.println(a.equals(b));//true

System.out.println(c==d);//true
System.out.println(c.equals(d));//true
}
}

这两种定义变量有什么区别呢?为什么第一个是false,后面的两个是true。
[解决办法]
String作为引用数据类型,会在栈生成一个对应的堆地址,实际数据保存在堆里面

地址肯定不能一样啊,所以是false

想int这种,数据直接保存在栈里面,一比较,就知道了

==是比较栈里面的东西的

新手,不对请指教

读书人网 >J2SE开发

热点推荐