什么TM的叫String不可变序列???

1、String是一个final类,代表不可变序列

2、我在想什么叫不可变

比如下列程序

看到输出不同结果我单纯的想这不是变了吗,那么String不可变指的是什么?

   直到了解到下列内容

    String一经初始化后,就不会再改变其内容了。

   对String字符串的操作实际上是对其副本(原始拷贝)的操作

     原来的字符串一点都没有改变。比如:

     String s ="a"; 创建了一个字符串

      s = s+"b"; 实际上原来的"a"字符串对象已经丢弃了,现在又产生了另一个字符串s+"b"(也就是"ab")。

      如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。

     如果这样的操作放到循环中,会极大影响程序的时间和空间性能,甚至会造成服务器的崩溃。

      我想如何用程序来证明这个呢?即原先创建的对象已经丢弃了,

     于是如上的程序我将   s改为 147  在新创建一个String对象为ll值也为 147,如果s原先的对象没有丢弃,那么根据java语法

     s==ll 返回值为false,如果返回值为true那么就证明原先的String对象已经丢弃了。如上。。。

发布了26 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41926640/article/details/103587952