在看书的时候看到两种方式,Sting s = "OK" 与String t = new String("OK")
直接赋值:JVM首先会去字符串池中查找是否存在"OK"这个对象,如果不存在,则在字符串池中创建"OK"这个对象,然后将该池中的“OK”地址赋给s。若已经存在,则直接把该地址给s。
new String:JVM肯定会在堆中创建一个“OK”字符串对象。然后,若字符串池没有"OK"对象,则在字符串池中也创建"OK"这个对象。最后是把堆中OK字符串的地址赋值给t。
在看书的时候看到两种方式,Sting s = "OK" 与String t = new String("OK")
直接赋值:JVM首先会去字符串池中查找是否存在"OK"这个对象,如果不存在,则在字符串池中创建"OK"这个对象,然后将该池中的“OK”地址赋给s。若已经存在,则直接把该地址给s。
new String:JVM肯定会在堆中创建一个“OK”字符串对象。然后,若字符串池没有"OK"对象,则在字符串池中也创建"OK"这个对象。最后是把堆中OK字符串的地址赋值给t。