String的不变性及避免创建不必要对象

至于String为什么设计为final的好处:多线程中不用考虑锁带来性能的影响,所以在创建String时,由于String的不可变性,应尽量避免创建不必要的对象,如下

for(int i = 0; i < Integer.MAX_VALUE; i++) {
            String s = "String";
        }

创建多个对象,(堆中内存几乎不动且未发生GC),这省略了很多内存。

 

 

 

然而,若通过下面方式(会造成堆内存多次创建对象并发生多次gc):

for(int i = 0; i < Integer.MAX_VALUE; i++) {
String s = new String ("String");
}

 

posted @ 2020-12-26 21:43  wonkju  阅读(80)  评论(0编辑  收藏  举报