gpt4 book ai didi

java - 方法创建的字符串对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:00:30 24 4
gpt4 key购买 nike

我正在为我的 Oracle Certified Java Programmer 认证做一些模拟测试。我在测试中发现的问题之一是:

public String makinStrings() { 
String s = “Fred”;
s = s + “47”;
s = s.substring(2, 5);
s = s.toUpperCase();
return s.toString();
}

问题是“调用此方法时将创建多少个 String 对象?”。我在数 5:“Fred”、“47”、“Fred47”、子字符串“ed4”和大写字符串“ED4”,但问题答案是 3 个对象(并且测试所在的文档没有解释部分)。你能指出我的错误在哪里吗?

最佳答案

听起来错误是在解释“调用此方法时将创建多少个字符串对象”

您说涉及五个字符串是正确的;然而,字符串是不可变的,其中两个是编译到包含 makinStrings() 方法的类中的常量。因此,五个中的两个预先存在方法的调用,并且只创建了三个"new"字符串。

这两个常量字符串存在于类的常量池中,并在类加载时构造。

关于java - 方法创建的字符串对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229705/

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