首页 > 代码库 > 【特种兵系列】String中的==和equals()

【特种兵系列】String中的==和equals()

1. 小样示例

public static void main(String[] args) {        String a = "a" + "b" + 123;        String b = "ab123";        System.out.println(a == b);    }
 
true
public static void main(String[] args) {        String a = "a" + "b" + 123;        String b = "ab123";        System.out.println(a.equals(b));    }true

比较两段代码,不一样的地方在于 a==b 和a.equals(b) ,但是输出结果却都是true,(刚接触java时的印象是:两个对象的比较是用equals(),==是无法匹配字符串的,但是上述结果却说明了我的印象并非正确

2.基础分析

“==”分析:==是用来匹配内存单元上的内容,其实质就是一个数字,Java语言用==匹配时其实就是对比两个内存单元的内容是否一样。以下原始类型即为直接比较值:byte、boolen、short、char、int、long、float、double

【特种兵系列】String中的==和equals()