我认为一共创建了一个对象。首先看个实例
String s0="hello";
String s1="hello";
String s2="he" + "llo";
System.out.println( s0==s1 );
System.out.println( s0==s2 );
结果为:
true
true
首先,我们要知结果为道Java 会确保一个字符串常量只有一个拷贝。
因为例子中的 s0和s1中的"hello"都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而"he"和"llo"也都是字符串常量,当一个字 符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中"hello"的一个引用。所以我觉得就一个对象。
|