String a="asd";
System.out.println(a.equals("asd"));
System.out.println(a=="asd");
String b=new String("asd");
System.out.println(b.equals("asd"));
System.out.println(b=="asd");
String c=“asd”;
System.out.println(b.equals(c));
System.out.println(b==c);
运行结果是
true
true
true
false
true
false
在书上对于==的解释:如果两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同)只要两个变量的值相等,就将返回true 那为什么b=="asd"返回的是false呢?
而按道理 a应该是保存在常量池中,b应该堆内存中,他们怎么又相等呢?
|