我对下面的代码有些困惑:
class BooksTestDrive {
public static void main(String [] args) {
String [] islands = new String[4];
islands[0] = "Bermuda";
islands[1] = "Fiji";
islands[2] = "Azores";
islands[3] = "Cozumel";
}
}
我假设这会返回一个 NullPointerException
错误,因为没有对象被初始化。
我以为我需要做
class BooksTestDrive {
public static void main(String [] args) {
String [] islands = new String[4];
islands[0] = new String();
// etc..
islands[0] = "Bermuda";
islands[1] = "Fiji";
islands[2] = "Azores";
islands[3] = "Cozumel";
}
}
这里怎么还行? 为什么没有抛出异常?
最佳答案
"Bermuda" 是一个字符串文字,String str = "Bermuda";
暗示 str
是一个新的字符串对象,其值为“百慕大”。
String str = "Bermuda";
String str = new String("Bermuda");
上面几行做同样的工作,但有一点不同,第一个字符串实例由 Java String constant pool
管理,而第二个不是。
关于java - 将字符串传递给字符串数组引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14292434/