java 和equles
导读:Java 是一种广泛使用的面向对象编程语言,被广泛应用于开发移动应用程序、桌面应用程序、Web 应用程序等。在 Java 中,我们经常会用到的 == 运算符,它用于比较两个变量的值是否相等。不过,由于 Java 中存在引用类型,因此对于引用...
Java 是一种广泛使用的面向对象编程语言,被广泛应用于开发移动应用程序、桌面应用程序、Web 应用程序等。在 Java 中,我们经常会用到的 == 运算符,它用于比较两个变量的值是否相等。不过,由于 Java 中存在引用类型,因此对于引用类型的变量,可能会出现我们不希望看到的结果。这时,我们就可以使用 equals 方法来进行比较。
public static void main(String[] args) {
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
System.out.println(str1 == str2);
// trueSystem.out.println(str1 == str3);
// falseSystem.out.println(str1.equals(str2));
// trueSystem.out.println(str1.equals(str3));
// true}
在上面的代码中,我们定义了三个字符串变量 str1、str2 和 str3,其中 str1 和 str2 的值相同,都等于 "hello",而 str3 则是通过 new 关键字重新创建了一个新的字符串对象,它的值也是 "hello"。
接下来,我们运用了 == 运算符进行比较,可以发现 str1 和 str2 的比较结果是 true,而 str1 和 str3 的比较结果是 false。这是因为 str1 和 str2 指向了同一块内存,即字符串池中的 "hello",而 str3 则指向了新创建的一块内存。
接下来,我们运用了 equals 方法进行比较,可以发现 str1 和 str2 的比较结果还是 true,而 str1 和 str3 的比较结果变成了 true。这时,我们就可以得出结论:使用 equals 方法比较字符串时,比较的是字符串的内容,而不是在内存中的地址。这种比较方式在 Java 中更为常见,所以我们一般会优先使用 equals 方法进行字符串的比较。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: java 和equles
本文地址: https://pptw.com/jishu/314586.html