【发布时间】:2014-09-19 13:22:48
【问题描述】:
所以我偶然发现了以下一段 Java 代码:
final String osName = System.getProperty("os.name");
我在其他几个 StackOverFlow 问题中读到 String 类实际上是不可变的。于是我问自己下面的问题,为什么String声明为final?
我不太擅长 C++,但为了了解幕后发生的事情(在 Java 中),我决定看看 C++ 中的等价物。
如果我的理解是正确的,使 Java 中的 String final 等同于使 C++ 中的指针成为 const,那就是指针变量指向的内容无法更改。 Java 的限制是您只能更改指向该字符串的指针的常量,但指针指向的内存卡盘是不可变的。
所以我的问题是我是正确的还是我遗漏了其他东西?
【问题讨论】:
-
初始化后无法赋值。所以不可修改的常量可以使用
public static final。