基本数据类型:byte[1]、short[2]、int[4]、long[8]、float[4]、double[8]、char[2]、boolean[1]
引用类型:类(class)、接口(interface)、数组([])
"==" 运算符
"=="运算符是一个比较运算符,既可以判断基本数据类型,又可以判断引用类型
1) 当判断基本数据类型时,判断的是值是否相等
2) 当判断引用类型时,判断的是引用地址是否相等,即判断是否是同一个对象
equals()方法
1) 只适用于引用数据类型
2) Object类中equals()方法的源码
public boolean equals(object obj) {
return (this == obj); //this是指类的当前实例
}
2) 对于像String 、Data 、File 、包装类等都重写了 Object类中equals()方法,重写以后的方法比较的不是两个引用地址是否相同,而是比较的两个对象的“实体内容”是否相同
public class Test2 { public static void main(String[] args) { //创建新的String对象 String s1 = new String("1234"); String s2 = new String("1234"); //"=="运算符判断引用类型时,判断的是地址是否相等;equals方法判断的是内容是否相等 System.out.println(s1 == s2); //false,s1和s2创建的是两个新的对象 System.out.println(s1.equals(s2)); //true String s3 = s1; System.out.println(s3 == s1); //true,s3引用的是s1的地址 System.out.println(s3.equals(s1)); //true //将字符串"1234"放在常量池中 String s4 = "1234"; String s5 = "1234"; //在常量池中的字符串,地址是相同的 System.out.println(s4 == s5); //true System.out.println(s4.equals(s5)); //true } }
"==" 运算符和 equals()方法的区别
a) "==" 运算符判断基本类型时,就是比较值;判断引用类型时就是比较引用地址,即在内存中的位置是否相同(完全相同)
b) equals()方法,只能判断引用类型,比较两个对象的“实体内容”是否相同,即对象的内容是否相同(内容相同)
标签:判断,String,22,s1,equals,运算符,引用 From: https://www.cnblogs.com/REN-Murphy/p/17679026.html