在java编程中,String 类型可以说是无处不用,现在将其中的部分知识点整理如下,如果能对哪位新手有帮助,将倍感欣慰:-)。
str1==str2,判断的是引用str1 ,str2是否指向同一对象,str1.equals(str2):判断引用str1,str2指向的对象内容是否相同。
exam: ...............
String str1="str1";
String str2="str1";
System.out.println("str1==str2"+(str1==str2));
System.out.println("str1.equals(str2)"+str1.equals(str2));..........
String str3 = new String("str1");
String str4 = new String ("str1");
str3==str4false
str3.equals(str4)true
得到的输出结果是:str1==str2true
str1.equals(str2)true
str3==str4false
str3.equals(str4)true,之所以得到str3==str4false,是因为每次new 的时候会重新创建一个对象,而不管先前是否存在的对象。对于 String str2="str1"语句;jvm首先
会去查看内部维护的滞留字符串对象的列表(
唯一字符串的池 ) ,看是否已经有“str1"对象存在,如果有,直接将引用str2指向它,没有的话再新建一个"str1"对象,并将它放入字符串对象列表。