public
class
Demo {
java
public
static
void
main(String args[])
{
String str=
new
String(
"hello"
);
if
(str==
"hello"
)
{
System.out.println(
"true"
);
}
else
{
System.out.println(
"false"
);
}
}
}
答案:false
连接:https://www.nowcoder.com/questionTerminal/aab7300da6d1455caffcbda21c10fca5
来源:牛客网
jvm
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
class
Demo {
public
static
void
main(String args[]) {
String str1 =
new
String(
"hello"
);
String str2 =
new
String(
"hello"
);
String str3 =
"hello"
;
String str4 =
"hello"
;
String str5 =
"he"
+
"llo"
;
String str6 =
"he"
;
String str7 =
"llo"
;
System.out.println(str1==str2);
System.out.println(str1==str3);
System.out.println(str3==str4);
System.out.println(str3==
"hello"
);
System.out.println(str4==(str6+str7));
}
}
|
1
|
String str1 =
new
String(
"hello"
);
|
1
|
String str3 =
"hello"
;
|
‘==’操做符专门用来比较两个变量的值是否相等,也就是用来比较两个变量对应的内存所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操做。 spa
若是一个变量指向的数据是对象类型的,那么这时候涉及了两块内存,对象自己占用一块(堆内存),变量也占用一块。对于指向类型的变量,若是要比较两个变量是否指向同一对象,即要看两个变量所对应的内存的数值是否相等,这时就须要用==操做符进行比较。 code
equals方法用于比较两个独立对象的内容是否相同。 对象
在实际开发中,咱们常常要比较传递过来的字符串是否相等,通常都是使用equals方法。 内存
例如: ci
String a = new String(“foo”); 开发
String b = new String(“foo”); 字符串
两条语句建立了两个对象,他们的首地址是不一样的,即a和b中存储的数值是不相同的。因此,表达式a==b将返回false,而这两个对象的内容是相同的,因此表达式a.equals(b)将返回true。get