关于String的问题
请问String a= "abc ";
与String a=new String();
a= "abc ";
有什么区别
------解决方案--------------------Java运行环境有一个字符串池,由String类维护。执行语句String str= "abc "时,首先查看字符串池中是否存在字符串 "abc ",如果存在则直接将 "abc "赋给str,如果不存在则先在字符串池中新建一个字符串 "abc ",然后再将其赋给str。执行语句String str=new String( "abc ")时,不管字符串池中是否存在字符串 "abc ",直接新建一个字符串 "abc "(注意:新建的字符串 "abc "不是在字符串池中),然后将其付给str。前一语句的效率高,后一语句的效率低,因为新建字符串占用内存空间。String str = new String()创建了一个空字符串,与String str=new String( " ")相同