Java 字符串内存优化:理解“String s = new String("silly")”
有人对以下建议提出了担忧避免编写像“String s = new String("silly")”这样的 Java 代码。虽然此建议对于优化 String 对象的内存使用有效,但可能不适用于其他类。
为什么“CaseInsensitiveString cis = new CaseInsensitiveString("Polish")”可以接受?
对象“cis”是 CaseInsensitiveString 类的实例。与 String 不同,CaseInsensitiveString 是一个用户定义的类,需要构造函数来创建对象。因此,需要使用语法“CaseInsensitiveString cis = new CaseInsensitiveString("Polish")”来用指定的字符串值初始化对象。
如何使 CaseInsensitiveString 的行为像 String 一样进行文字初始化?
要像 String 一样启用 CaseInsensitiveString 的文字初始化,可以实现以下:
为什么可以直接将文字传递给 String?
String是Java中的一个特殊类。它有一个预定义的内部字符串池,其中重复的字符串文字存储为对同一对象的引用。这消除了对同一字符串值使用多个 String 对象的需要,从而减少了内存消耗。
以上是为什么'CaseInsensitiveString cis = new CaseInsensitiveString('Polish')”可以接受,而'String s = new String('silly')”则不鼓励内存优化的详细内容。更多信息请关注PHP中文网其他相关文章!