字符串及垃圾回收机制

来源:互联网 发布:貂蝉离间数据 编辑:程序博客网 时间:2024/05/18 03:12

字符串有两个特性:字符串常量的暂存池特性和不可变性

字符串常量的暂存池:对于相同的字符串常量,每次使用时并不会重新创建一个内存来储存,而是在第一次创建的时候将字符串作为键,将字符串的地址作为值,下次用的时候先去键值对中查找,如果有则直接返回上次创建字符串的地址。这个特性依赖于字符串的不可变性

不可变性:每次字符串发生变化,都会创建一个新的内存。所以,当多个字符串进行拼接的时候,造成了内存的浪费和时间的消耗(因为每次创建对象都要消耗时间,创建对象也是有成本的),所以当大量字符串拼接的时候,应该使用StringBuilder。

StringBuilder在大量字符串拼接的时候,不会重复创建对象,所以也不会产生垃圾内存。


栈变量使用完之后,就会自动释放内存。

而堆里面的内存资源,一般会在程序结束之后才会进行垃圾回收。

0 0
原创粉丝点击