两个,string s; newstring("xyz")
当使用new String("hello")时,JVM会先使用常量池来管理“hello”直接量,
在调用String类的构造器来创建一个新的String对象,新创建的String对象被保存在堆内存中。
换句话说,new String("hello")一共产生了两个字符串对象;
这是通过字面量“xyz”去创建一个新的对象,首先要看常量池中有没有“xyz”,
如果没有,则会先创建一个“xyz”对象放到常量池中,再根据常量池中的“xzy”new一个新的对象,
此时创建了两个对象。如果常量池中以已经有“xyz”,则只是new了一个对象
new String(xxx)有参数的话,就会先加载参数,所以要看xyz存不存在,不存在就加载,就在就直接引用,然后在执行new 操作,创建几个对象要看xyz存不存在,存在就是创建一个对象,不存在就创建两个