本帖最后由 金鑫 于 2012-6-4 10:58 编辑
第一句String s = "Welcome to Java";创建的对象在常量池中,内容是Welcome to Java
第二句String s = new String("Welcome to Java");new是在内存中开辟了一个独立的内存空间,用来存储对象,对象的内容也是Welcome to Java
equals()方法比较的是对象的内容,所以记过是true; 而==比较的是对象在内存中的地址,所以结果是false,因为他们虽然内容相同,但是在内存中的地址是不同的。
同上:
String s1= new String("Welcome to Java");
String s2 = new String("Welcome to Java");
这2个对象s1==s2也是false,因为每一次new都是开辟一个独立的空间
|