从源码角度看String底层是final修饰的字符数组,private final char value[];这就意味着value被赋值后就无法再被修改了。例如String s = 123;重新赋值s = 345;这个过程里面实际上是有两个字符串对象,一个是字符串123,一个是字符串345,这个过程只是将引用变量s指向了字符串345,而字符串对象123依然在内存中。
说说String为何是常量?
于 2021-07-26 17:24:49 首次发布
从源码角度看String底层是final修饰的字符数组,private final char value[];这就意味着value被赋值后就无法再被修改了。例如String s = 123;重新赋值s = 345;这个过程里面实际上是有两个字符串对象,一个是字符串123,一个是字符串345,这个过程只是将引用变量s指向了字符串345,而字符串对象123依然在内存中。