java - Java String 方法存在概念错误

标签 java string ocpjp

在这里,我正在训练我的 OCP 并测试一些字符串行为。

当我得到这个时:

    System.out.println("a".substring(0) == "a".substring(0));  // true

    System.out.println("a".substring(0) == "aa".substring(1)); // false

我有些疑惑。我知道该方法返回的是:

    return (beginIndex == 0) ? this : new String(value, beginIndex, subLen);

但是,这个编译器规则存在概念性错误,还是没关系?

最佳答案

在第一种情况下,substring 返回 this,并且 this == this 按预期返回 true。
在第二种情况下,substring 返回一个新对象,因此 == 返回 false,因为您正在比较不同的对象。

关于java - Java String 方法存在概念错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525231/

相关文章:

java - 调试模块中的逻辑错误

java - 如何对方法的结果施加 decimalFormat?

python - 将列表与列进行匹配并从列中提取匹配值

java - 有没有一种简单的方法可以将整数字符串转换为单个整数

java - 为什么不能将两个字节加一个整数并可以将两个最后字节加一个字节?

java - 线程并发——同步和锁。

java - 在maven项目中有条件地从编译中排除文件

java - java中检查 "dutch"邮政编码的方法

python - 使用 ngram 范围进行标记化

java - 关于覆盖变量的地方有点困惑