首先要明白有两种方式来创建字符串,
第一种
String a = "hello" a本身就是一个对象,他放在字符创常量池中 当你再次以这种方式创建一个内容相同的字符串时候,会在常量池中查看时候存在
第二种
String b= new String("hello') 此时后两个对象,一个new在堆中的 ,一个是字符串本身在常量池中
而==是比较的地址 所以 a==b 是false
由于String重写了equal方法比较的是值内容 ,而不是地址 所以 a.equal(b) 结果是true
任何类都有equal()方法,因为那是属于object的一个方法,并且它是比较地址的,里面也是==符号,但是有的类重写了equal()方法,所以它比较的是内容