gpt4 book ai didi

java - 为什么 String() 构造函数不是私有(private)的?

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:11 25 4
gpt4 key购买 nike

在任何情况下使用 String() 构造函数与字符串文字相比是否有益?使用字符串文字可以重用现有对象,那么为什么我们需要公共(public)构造函数呢?有实际用途吗?例如,两个文字都指向同一个对象。

String name1 = "name";//new String("name") creates a new object.
String name2 = "name";

最佳答案

构造函数具有有用用途的一个示例:由 String.substring() 创建的字符串共享 String 的底层 char[] > 它们是由...创建的。因此,如果您有一个长度为 10.000.000 的 String(占用 20MB 内存)并将其前 5 个字符作为子字符串,然后丢弃原始 String,该子字符串仍将使 20MB 的对象不符合垃圾收集的条件。在其上使用 String 构造函数可以避免这种情况,因为它只复制 String 实例实际使用的底层 char 数组的一部分。

当然,如果您创建和使用相同 String 的许多子字符串,尤其是当它们重叠时,那么您会非常希望它们共享底层 char[] ,并且使用构造函数会适得其反。

关于java - 为什么 String() 构造函数不是私有(private)的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4198769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com