当前位置: 代码迷 >> J2SE >> 判断相等的有关问题
  详细解决方案

判断相等的有关问题

热度:3214   发布时间:2013-02-25 21:55:28.0
判断相等的问题

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这种,数据直接保存在栈里面,一比较,就知道了

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

新手,不对请指教
  相关解决方案