点是运算符,会把基本值转化为对象
说说equals吧,字符串的equals被重写了,会先比较内容是否一样,再比较地址。
很明显,"XYz"对象和x对象的内容一样
两个字符串的地址不同,但String的equals方法重写过,会比较值所以走第二个if返回true。
Object中默认的equals确实是比较两个对象的地址值。
String类的父类是Object类,String重写了Object的equals方法,使得String可以比较字符串。
你用"XYZ"==x
输出的就是false
了,因为==
比较的是地址值。
String的equals比较的是内容。他们两个写的都是XYZ,都一样,就返回true