String类:引用类型
eg1:
public static void main(String[] args){
String str1 = "abcde"; //直接赋值
System.out.println(str1);
String str2 = new String("abcde");
System.out.println(str2);
char[] array = {
'a','b','c','d','e'};
String str3 = new String(array);
System.out.println(str3);
System.out.println(str1 == str2); //false
System.out.println(str1 == str3); //false
}
- 双引号中的内容都放在常量池;
eg2:
public static void main(String[] args){
String str = "abcde"; //直接赋值
String str2 = new String("abcde");
char[] array = {
'a','b','c','d','e'};
String str3 = new String(array);
String str4 = "ab"+"cde"; //编译期已经确定是"abcde"
String str5 = "ab"+ new String("cde");
System.out.println(str == str2); //false
System.out.println(str == str3); //false
System.out.println(str == str4); //true
System.out.println(str == str5); //false
System.out.println(str2 == str3); //false
}
- String使用比较并不是在比较字符串内容, 而是比较两个引用是否是指向同一个对象;
eg3:
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1.equals(str2)); //true
eg4:
<