==(双等)与 equals的区别

发布时间:2024年01月19日

?

/*

* ==与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

?

?

?

?

文章来源:https://blog.csdn.net/m0_68041576/article/details/135705164
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。