java - 将字符串传递给字符串数组引用

标签 java object nullpointerexception

我对下面的代码有些困惑:

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/

相关文章:

java - 如何在另一个类中使用 Queue.java

java - Spring 安全 : Cannot call sendRedirect() after the response has been committed

javascript - 如何使像 VSCode 或 WebStorm 这样的 JavaScript IDE 在代码完成方面像 Eclipse 一样智能?

使用 allocate 和 Object.create 进行 Javascript 对象组合

Java数组索引问题

java - Spring MVC 测试结果出现 415 错误

Javascript如何将参数转换为键?

javascript - 如何通过 Node 在另一个对象中的位置从对象获取值

java - String[] 中的空指针异常

java - 相等检查后使用 Long 的 NullPointerException