java中equals与==区别分析

一.
equals()方法是String方法之一: public boolean equals(Object obj)
函数功能:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false
由此理解:equals被用来检测两个对象是否相等,即两个对象的内容是否相等。
二.
==用于比较引用和比较基本数据类型:

1)比较基本数据类型,如果两个值相同,则结果为true
2)比较引用时,如果引用指向内存中的同一对象,结果为true
例如:
String s1=new String(“aaa”);//创建字符串对象
System.out.println(s1.equals(“aaa”));//返回true
System.out.println(s1==”aaa”);//返回false
若String s2=”aaa”;
System.out.println(s2==”aaa”);//返回true

三.举例说明
a.equals(b)是判断字符串常量a是不是和b在内容上一样
比如:
String a=”123”;
a.equals(“123”)就是对的,因为两者字符串内容一样。

a==b是判断字符串常量a在物理内存地址上是不是和b一样

比如:
String a=”123”,b=”123”;// a,b都指向了”123”的内存区域,所以a,b所指向的物理地址一样,因而a==b是对的
String a=new String(“123”),b=new String(“123”);// a创建了自己的”123”,b也是;a,b所指向各自的区域,所以a==b是错误的

一般对于两个字符串a,b来说,a==b没什么意义的,一般都用a.equals(b)来判断字符串是否匹配

发布了13 篇原创文章 · 获赞 1 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章