我无法弄清楚是否
String ab = "hello"; //straight initialization
String ab_1 = new String ("hello_1"); //initializing using new
Run Code Online (Sandbox Code Playgroud)
两者都有效,但是
StringBuffer bfr = new StringBuffer("hi"); //works only with new
Run Code Online (Sandbox Code Playgroud)
只有在使用new创建时才有效.
为什么String可以直接实例化,但StringBuffer需要new运算符.有人可以解释我的主要原因.
所有对象都需要实例化new.只能从文字(int i = 0;)中实例化基元.
唯一的例外是:
String s = "abc"; //can be instantiated from a literal, like primitives
Run Code Online (Sandbox Code Playgroud)
Object o = null;它在Java语言规范#3.10中定义:
文字是基本类型值,String类型或null类型的源代码表示.
注意:数组也有专门的初始化模式,但这不是文字:
int[][] a = { { 00, 01 }, { 10, 11 } };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |