首页 > 开发 > JAVA > 正文

java string pool 会溢出么

2017-09-07 09:24:23  来源:网友分享

我看到代码中有很多的new String();我想把他们改成“”,这种方式做初始化。 但我查了一些资料,是说会string pool是垃圾不回收的。比如: String a = "abc"; String b = "def"; a = b; // "abc"就是没有引用的字符串了被留在string pool中,就是内存泄露了。

那我的问题是,如果这种情况多了,是不是string pool也会溢出,对与程序会怎么样。我们是安卓程序。

解决方案

内存泄漏是一段代码运行的时候产生了一块没有指针指向的内存,这段代码在重复执行的时候导致内存占用不断增加的情况。这种字符串常量不释放不算是内存泄漏,这个不是运行时动态申请的空间,也不需要释放,即使不释放也不会导致内存占用地持续增加。

退一万步说,你很大量地使用这种字符串,那又能使用多少?你写100M的源代码已经很牛逼了吧?这样最多也不就是占用100M的内存?