java9举例代码: (推荐学习:java课程)String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); String s
java9举例代码: (推荐学习:java课程)
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方法进行重写,则比较的是引用类型的变量所指向的对象的地址,反之则比较的是内容
--结束END--
本文标题: java equals和==的区别
本文链接: https://www.lsjlt.com/news/3325.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0