java中的split()方法是否在String常量池中创建新的String?

时间:2016-09-06 07:15:05

标签: java arrays string

如果我使用空格作为分隔符拆分String,它是否为每个唯一的String在String常量池中创建新的String?

String s = "This is a simple Java Program";
for (String val: s.split(" ")){
     System.out.println(val);
}

是否会为&#34创建新的字符串;",""," a"," simple"," Java& #34;,"计划"?

2 个答案:

答案 0 :(得分:2)

不可以:s.split(" ") 编译时可评估常量表达式;返回的字符串数组是在运行时计算的。

即使分隔的字符串在池中,仍然会出现这种情况。

答案 1 :(得分:1)

感谢您提供这个知识渊博的问题。 split(limit)返回通过在运行时将此字符串拆分为给定正则表达式的匹配而计算的字符串数组。 所以它不会在常量池中创建新的字符串。