考慮下面的代碼:是否Java使用新的String(...)來創建動態字符串/命令行參數/文件IO
public static void main(String args[]) throws Exception{
String a = "sharmaji";
String b = args[0];
System.out.println(a==b);
}
現在,如果我通過了一個命令行參數爲「sharmaji」那麼a == b返回false。這表明Java使用新的String(...)參數來創建String。
是否因爲java必須以字節讀取用戶輸入然後將其轉換爲字符串?
'一個== b '在這裏永遠不會返回真,因爲它們明顯是不同的對象引用,因爲你只是將字符串賦值給'a'。這是如何演示的? –
「這表明Java使用新的String(...)」< - 是的,你會怎麼做呢?儘管如果你使用字符串連接('+'),它實際上是一個在內部使用的'StringBuilder'。 – fge