String初始化的几种方式以及它们之间的不同
String s = “abc”;
String s1 = new String(“abc”);
对于第一种创建方式:
①首先在常量池中查找“abc”,如果没有则创建对象
②在栈中创建s的引用,
③将s直接指向对象abc
对于第二种创建方式:
它会创建2个对象,一个是常量池中的"abc",还会创建一个String对象,s1指向这个String对象。
所以这里如果对两个对象判断的话
System.out.println(s==s1);
会得到一个false结果