java中需要用equals来判断两个字符串值是否相等

在C++中,两个字符串比较的代码可以为: 
(string1==string2) 
但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false 
Java中必须使用string1.equals(string2)来进行判断 
eg: 
string s1="Hello"; 
string s2="Hello"; 
则(s1==s2)=true; 
因为他们指向的同一个对象。
 eg:
String s1=new String("Hello"); 
String s2=new String("Hello"); 
则(s1==s2)=false
如果把其他变量的值赋给s1和s2,即使内容相同,由于不是指向同一个对象,也会返回false。所以建议使用equals(),因为equals比较的才是真正的内容 

例如: 
String string1=new String( "aaa" ); 
String string2=new String( "aaa" ); 
这两个字符串当然应该是相等的。 
如果用表达式string1==string2,则该表达式的值为false 
如果用表达式string1.equals(string2),则该表达式的值为true 
因此应该用string1.equals(string2),在if语句中就是 
if(string1.equals(string2)==true) //字符串相等,……

string1==string2,是值相等,而且内存地址也相等,是完全的相等 
string1.equals(string2)为true,只是值相等

posted @   Boblim  阅读(89747)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示