"=="与"equals"两个都是以boolean形式返回。
"=="一般用于比较整形(byte、short、int、long)与字符形变量(char)。
"equals"常惯用与字符串与字符串之间的比较。
当用"=="对引用类型变量进行比较,是对变量地址之间的比较:
e.g. String str1="JQK",str2="JQK",str3="jqk".toUpperCase();
System.out.println(str1==str2);
System.out.println(str1==str3);
结果:true
false
观察变量我们可知str1、str2、str3变量的内容都相同,然而返回str1==str3的值却为false
原因是str1与str2所指向的都是同一空间,而str3虽然值与str1、str2相同,但由于"jqk"是一个新字符所以它将重新开辟一块新的空间储存地址,而"=="是进行地址之间的比较,所以str1==str3返回结果为false;
equals是用于字符串之间的比较:e.g. System.out.println(str1.equals(str3)); 返回结果为:true
原因为equals是比较两个变量之间的内容;
由此我们知道在比较变量是否相等时,我们应该先观察变量类型再决定使用equals还是"=="。
本文探讨了Java中==和equals方法的用途,解释了它们在不同类型变量(如基本类型和引用类型)比较时的区别,重点在于地址比较和内容比较,并提醒读者根据变量类型选择正确的比较方式。

8万+

被折叠的 条评论
为什么被折叠?



