String对象的==和equals
== 比较是否同一引用,即比较地址
equals() 比较包含的内容是否一样
需要区分:
一、用new实例化
String a = new String("hello");
String b = new String("hello");
a==b false,因为是不同引用
二、用字符串常量赋值
String a = "hello";
String b = "hello";
a==b true,因为会在栈内存中查找是否已有存放着hello的单元,如有,直接使用;没有,在栈内存中新建一个。所以b和a是对同一对象的引用,地址相同。
对于字符数组,比较内容应该用Arrays.equals()
参考原文《浅析String类中“= =”和equals的应用》http://www.doc88.com/p-886680494425.html

浙公网安备 33010602011771号