比如
String a=“123”
String b=new String (“123”)
首先,要知道
java虚拟机在启动的时候会实例化9个对象池,用来存放8种基本类型的包装类对象 和 String对象。
如果直接赋值,那么先看一下被赋予的值(例如这里的 “123”)在对象池中是否存在,如果存在,就指向该对象,如果不存在就在对象池中创建这个对象
然后,new创建对象是每次都创建一个新的对象
String b=new String (“123”) 和 String c=new String (“123”) 不是同一个对象