String a=new String("aa")String b=new String("aa")到底有几个对象?

在gc没回收前是四个对象,回收后就是三个对象了。所以说可以是四个对象也可以是三个对象,要看在哪个层面上描述这个问题。String a=new String("aa")这里会有两个对象,一个是new出来的内存空间,一个是放到了String池中,而String b=new String("aa")也会生成两个对象,只是new出来的这个内存空间没有被使用,jvm会将b指向之前a放到池中的"aa",所以bnew出来的内存空间没有被使用到,就会被gc回收

posted @ 2018-10-30 22:21  TroubleBoy丶  阅读(114)  评论(0编辑  收藏  举报