8.equals和==的区别
equals
判断两个对象是否相等
当类中没有equals()方法时,等价于通过==比较这两个对象
当类中有equals()方法时,这是来比较两个对象的内容是否相等
==
用来判断两个对象的地址是否相等,基本数据类型比较的是值,引用数据类型比较的是内存地址
对于String
若是通过构造创建对象,每一次new都会申请一个内存空间,内容相同,地址值不同
若是直接双引号的字符串,则是在字符串常量池中进行存储,则字符串常量池只有一个对象
如:
String s1=new String(“a”);
String s2=new String(“a”);
System.out.println(s1s2);//false
String s3=“a”;
String s4=“a”;
System.out.println(s3s4);//true
System.out.println(42==42.0) //true
System.out.println(s1.equals(s2))//true