- String str =”hello world”; 这条语句会创建一个对象(在运行时常量池中)
- String str = new String (”hello world”); 这条语句会创建一个或者两个对象,先去运行时常量池中找有没有这个字符串,如果没有就创建一个,在去堆中创建一个;如果有直接去堆中创建一个。
- String str =”a”+”b”; 等价于 String str=”ab”; 由于常量折叠的原因,只会产生一个对象。
- String c=new String(“hello”+“world”);等价于 String c=new String(“hello”+“world”),由于常量折叠,只产生两个对象。