V-xin:ruyuanhadeng获得600+页原创精品文章汇总PDF
目录
- String 字符串在内存里是如何存储的?
- String.intern() 方法
- String 字符串是如何引发内存泄漏呢?
- 总结
今天给大家聊聊咱们平时写代码的时候,最常见的 String 字符串代码,他的一些底层原理,以及使用不当可能引发的内存泄漏的问题,相信对于大家平时日常开发写代码会有一定的帮助。
String 字符串在内存里是如何存储的?
首先呢,当我们平时在代码中写下一行 String 类型的代码时,大家知道这个 String 字符串在内存里是如何存储的吗?
比如这样的一行代码:String username = “zhangsan”,这个"zhangsan"其实就是一串字符串,实际上他在底层是用一个数组来存放的,而且这个数组大小就严格等于这个字符串的长度,他是不可变的。
如下图:
接着呢,对于 Java 中的字符串来说,有一个常量池的概念,意思就是说,对于相同的字符串内容,他往往会在内存里用同一个数组来表示,而不会对相同的字符串内容创建出不同的数组来存放。
比如说下面两行代码,大家看看: