sponsored links

对象

String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?

November 30
String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?
String s = new String("xyz"); 这个跟常量池没有关系,只要是new,都是重新分配堆空间,如果不区分栈和堆,这里创建了1个String Object.如果是从jvm角度来说的话,它是创建了两个对象,String s是在栈里创建了一个变量,new String("xyz")是在堆里创建了一个对象并被s引用到. 如果是String s = "xyz",那就要看常量池里有没有"xyz",如果有直接引用,如果