服务器之家

服务器之家 > 正文

浅谈java 中equals和==的区别

时间:2021-07-21 11:53     来源/作者:独特润许多人

本文实例为大家分享了java 中equals和==的区别的具体代码,供大家参考,具体内容如下

java9举例代码:

?
1
2
3
4
string str1 = "abc";
string str2 = "abc";
string str3 = new string("abc");
string str4 = new string("abc");

当:  str1 == str2    输出:true    当:str1.equals(str2); 输出:true
当:  str1 == str3 输出:false      当:str1.equals(str3); 输出:true
当:  str3 == str4 输出:false      当:str3.equals(str4); 输出:true

 涉及到的细节:
 - 可以通过string中intern方法,字符串对象在常量池中和它相等的字符串的引用

 str3.intern() == str4.intern()  输出:true
 str1.intern().equals(str2.intern())  输出:true
 str1.intern() == str1   输出:false
- string str = new string("abc");创建了几个对象?

 首先要看常量池里是否有“abc”这个字符串,如果有(string str = "abc";出现时则有),则创建一个,如果没有,则创建两个(一个在常量池,一个在堆中)。

== 和 equals 区别:

对于 == :

作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
作用于引用类型的变量,则比较的是所指向的对象的地址;

对于 equals:

equals方法不能作用于基本数据类型的变量;
如果没有对object中equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址,反之则比较的是内容;

以上所述是小编给大家介绍的java 中equals和==的区别详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://www.cnblogs.com/stamp/p/java_base_compare.html

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部