// Strings are constant; their values cannot be changed after they are created.
String a = "123";
a = "456";
此处当a被初始化为“123”的时候,系统会创建一个对象,存放这“123”,然后a指向这个对象。
当a被赋值为“456”的时候,首先会创建一个对象来存放“456”,然后将a指向新生成的对象
此时“123”的对象还存在,在内存回收前,内存泄漏了。
在String比较长的时候,重新给String赋值后,主动进行gc的调用
Runtime.getRuntime().gc();
System.runFinalization();
StringBuilder: 单线程中建议使用,
StringBuffer:线程安全,类似String,但它是可以修改内容的
StringBuffer:A thread-safe, mutable sequence of characters.A string buffer is like a {@link String},but can be modified.
2021-01-10 String & StringBuffer & Stringbuilder
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 目录 一、是什么?[https://blog.csdn.net/CHITTY1993/article/detail...
- 对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象。 Java为了避免在一个...
- Java提供了三种字符串类型:String、StringBuilder、StringBuffer 运行性能,或者说...