nik*_*pen 2 java string optimization
说我有一个方法:
public String getString() {
char[] array = new char[]{'a', 'b', 'c'};
return new String(array);
}
Run Code Online (Sandbox Code Playgroud)
数组是否仍然在String构造函数中复制,或者Java编译器是否足够智能,以识别数组中的元素不能更改,因此它只能引用数组?
谢谢
由于java String类是不可变的,因此构造函数必须复制数组.
否则,有人可以持有对数组的引用并进行修改:
char[] array = new char[]{'a', 'b', 'c'};
String string = new String(array);
array[1] = 'd'; // array modification must NOT affect the string
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |