Sru*_*lla 0 java string initialization
可以将String对象数组创建为
//可接受的声明和初始化
line 1: String[]s = new String[2];
line 2: String[]s = new String[]{"a","b"};
Run Code Online (Sandbox Code Playgroud)
//在init下面对我来说看起来也不错,但编译错误了
line 3: String[] s = new String[2] { "a", "b" };
Run Code Online (Sandbox Code Playgroud)
1)为什么我不能在第3行指定数组的大小?
2)当我使用第3行创建数组时,是在堆或字符串池中创建的字符串"a"和"b"?
您不能同时初始化数组并指定其大小,这只是多余的.
所有字符串文字都存储在常量池中,并且在代码运行之前,在类加载时发生.
另请注意,new String[]初始化程序甚至是多余的:
String[] s = {"a","b"};
Run Code Online (Sandbox Code Playgroud)