?
/*
* ==与equals()的区别
* 1.==是关系运算符,equals()是0bject类中定义的方法
* 2.基本数据类型:使用==比较值,无法使用equals()
* 3.引用数据类型:使用==比较内存地址;如果没有重写equals()
* 仍然调用的是Object父类的equals()方法,则比较的是内存地址;
* 如果重写equals()方法,则比较的是值
*
*/
1.String字符串的== 与equals()方法
//String字符串的== 与equals(()方法
public class test4 {
public static void main(String[] args) {
//创建方式:在"字符串池(字符串缓冲池)"中分配空间
String s1="让我在看你一看从南到北";
String s2="让我在看你一看从南到北";
//比较内存地址
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
//创建方式:通过new关键字再heap队中分配新的内存空间
String s3=new String("让我在看你一看从南到北");
String s4=new String("让我在看你一看从南到北");
System.out.println(s3==s4);
System.out.println(s3.equals(s4));
}
}
运行结果:
true
true
false
true
2.Integer的== 与equals()方法?
public class test5 {
public static void main(String[] args) {
// 创建方式1:在缓存池中创建,Integer的缓存池范围是-128-127
Integer a=125;
Integer b=125;
//创建方式1:在缓存池中创建.....同上
Integer a1=Integer.valueOf(125);
Integer b1=Integer.valueOf(125);
//创建方式2:通过new关键字再heap队中分配新的内存空间
Integer a2=new Integer(125);
Integer b2=new Integer(125);
//比较内存地址
System.out.println("==比较内存地址:"+(a==b));
System.out.println("equals比较内容:"+(a.equals(b)));
}
}
运行结果:?
==比较内存地址:true
equals比较内容:true
?
?
?
?