Java 字符串构造函数优化

标签 java string optimization

假设我有一个方法:

public String getString() {
    char[] array = new char[]{'a', 'b', 'c'};
    return new String(array);
}

数组是否仍在 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

关于Java 字符串构造函数优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18765831/

相关文章:

c# - 如何连接字符?

c++ - `std::string` 分配是我当前的瓶颈 - 如何使用自定义分配器进行优化?

elasticsearch - Elasticsearch-过滤条件顺序

mysql - 如果数据按排序顺序存储,sql 搜索是否会更快

java - 如何使用 LocalDate 值查询 JPA LocalDateTime 字段?

Java Swing TrayIcon 气球消息 - 实现与主图标不同的 Action 监听器?

java - 在 Intellij idea 上使用 Scenebuilder 生成 FXML

java - 如何让JAXB正确生成XML?

python - 将一个字符串分成一定长度的较小字符串列表

ruby - 在 Ruby 中将整数格式化为固定长度的字符串