gpt4 book ai didi

Java字符串创建和字符串池

转载 作者:行者123 更新时间:2023-12-02 12:21:21 24 4
gpt4 key购买 nike

当使用关键字new创建字符串时,它会使用采用字符串文字的构造函数创建一个新的字符串对象。

在调用 String 构造函数之前,文字是否存储在常量池中?

String hello = new String("Hello");
String literal = "Hello"; //Does "Hello" already exist in the pool
//or is it inserted at this line?

编辑

在“OCA Java SE 7 程序员 I 认证指南”中,Mala Gupta 写道:

public static void main(String[] args)
{
String summer = new String("Summer"); // The code creates a new String object with the value "Summer". This object is not placed in the String constant pool.
String summer2 = "Summer" // The code creates a new String object with the value "Summer" and places it in the String constant pool.
}

她在第一行说,new创建的String对象没有存储在常量池中。这很好,但不清楚的是第一行构造函数中的文字“Summer”是否是。在第二行中,她说将“Summer”分配给 Summer2 将其存储在常量池中,这意味着第一行的文字没有被保留。

最佳答案

无论您在哪里使用,所有字符串文字都保存在字符串池中。所以答案是肯定的。

String hello = new String("Hello");
>--------< goes to pool.

但问题是 h2 不会从该 h 引用:)

关于Java字符串创建和字符串池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24779612/

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