Java final String,C++等价物.我的理解是否正确?

Evd*_*afa 4 c++ java string

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

final String osName = System.getProperty("os.name");
Run Code Online (Sandbox Code Playgroud)

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

我对C++不是很了解,但是为了理解幕后发生的事情(在Java中),我决定看看C++中的等价物是什么.

如果我的理解是正确的,那么使Java中的String final与使C++中的指针成为const是等价的,那就是指针变量所指向的是无法改变的.Java中的限制是你只能改变指向该String的指针的常量,但指针指向的内存量是不可变的.

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

Ell*_*sch 6

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