gpt4 book ai didi

Java 最终字符串,C++ 等价物。我的理解正确吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:12 27 4
gpt4 key购买 nike

所以我偶然发现了以下 Java 代码:

final String osName = System.getProperty("os.name");

我在其他几个 StackOverFlow 问题中读到,String 类实际上是不可变的。所以我问自己以下问题,为什么 String 声明为 final?

我不是很擅长 C++,但为了了解幕后发生的事情(在 Java 中),我决定看看 C++ 中的等价物。

如果我的理解是正确的,那么在 Java 中使 String final 等同于在 C++ 中使指针成为 const,这就是指针变量指向的内容不能更改。 Java 中的限制是您只能更改指向该字符串的指针的常量性,但指针指向的内存块是不可变的。

所以我的问题是我是正确的还是遗漏了其他东西?

最佳答案

当我们说 Java String(s) 是不可变的时,这是因为 String 对象一旦创建就无法修改。相反,当您想要修改 String 引用时,您必须创建(并分配一个引用)一个新的 String。当您将 String 变量标记为 final 时,您还使引用不可变。

关于Java 最终字符串,C++ 等价物。我的理解正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25935008/

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