在JAVA中,为什么两个字符串用==比较返回的是true
时间: 2023-06-04 15:05:30 浏览: 59
这是因为用==比较两个字符串时,比较的是它们在内存中的地址是否相同。如果两个字符串是用同一个引用创建的,那么它们在内存中的地址是相同的,所以用==比较会返回true。而如果是用不同的引用创建的两个字符串,它们在内存中的地址是不同的,用==比较会返回false。因此,当比较两个字符串的内容是否相等时,要使用equals()方法。
相关问题
java中如何比较两个字符串不想等后返回true值
可以使用equals方法来比较两个字符串是否相等,如果不相等则返回true值,示例代码如下:
```java
String str1 = "hello";
String str2 = "world";
if (!str1.equals(str2)) {
return true;
}
```
在上述代码中,如果str1和str2不相等,则会进入if语句块并返回true。
用运算符“==”比较字符串对象时,如果两个字符串的值相同,结果为true
这个问题的答案其实是有点复杂的。在Java中,使用运算符“==”比较两个对象时,会比较它们在内存中的地址。也就是说,如果两个字符串对象的地址相同,那么它们才会被认为是相等的,结果才会是true。但是,如果两个字符串对象的地址不同,即使它们的值相同,也不会被认为是相等的,结果会是false。
这种情况下,我们应该使用equals()方法来比较两个字符串对象是否相等。equals()方法比较的是两个字符串对象的值,而不是它们在内存中的地址。因此,如果两个字符串的值相同,equals()方法会返回true。例如:
```
String str1 = "hello";
String str2 = "hello";
if(str1 == str2) {
System.out.println("使用==比较结果为true");
}
if(str1.equals(str2)) {
System.out.println("使用equals()方法比较结果为true");
}
```
这段代码中,由于str1和str2的值都是"hello",因此equals()方法会返回true,而使用“==”比较的结果却为false。