String s =new String("xyz")创建了几个String Object

如题所示 String s =new String("xyz")创建了几个String Object

String s=new String("xyz")究竟对象个数分为两种情况:
1.如果String常理池中,已经创建"xyz",则不会继续创建,此时只创建了一个对象new String("xyz");
2.如果String常理池中,没有创建"xyz",则会创建两个对象,一个对象的值是"xyz",一个对象new String("xyz")。

一个! 就是一个 s字符串,内容是“xyz”

就一个,堆里面一个字符串变量指向栈里面一个字符串对象!

会先用"xyz"生成一个匿名对象,然后再把该匿名对象的地址赋给s

1个 String S:只是1个声明,类似C里面的指针 指向”xyz“的地址空间

一个String,因为你只new了一次