Java基礎-----String類的概述
阿新 • • 發佈:2018-11-29
前言
1、String類物件不可改變的含義:不能改變物件內的成員變數,包括基本資料型別的值不能改變、引用型別的變數不能指向其他物件、引用型別指向的物件的狀態也不能改變。
2、物件和物件引用的區別
(1)物件在記憶體中是一塊記憶體區域。
(2)引用存放的是指向物件的地址。
String類的概述
1、字串字面值“abc”也可以看成是一個字串物件。
2、字串是常量,一旦被賦值,就不能被改變。
String類的構造方法
1、public String():空構造。
2、public String(byte[] bytes,int index,int length):把位元組陣列的一部分轉成字串。
3、public String(byte[] bytes):把位元組陣列轉成字串。
4、public String(char[] value):把字元陣列轉成字串。
5、public String(char[] value,int index,int count):把字元陣列的一部分轉換成字串。
6、public String(String original):把字串常量值轉成字串。
package java基礎; public class Demo2_String { public static void main(String[] args){ byte[] arr1 = {97,98,99,100,101}; String str = new String(arr1); System.out.println(str); System.out.println("--------------"); String str1 = new String(arr1,2,3); System.out.println(str1); System.out.println("--------------"); char[] arr2 = {'a','b','c','d'}; String s1 = new String(arr2); System.out.println(s1); System.out.println("--------------"); String s2 = new String(arr2,1,2); System.out.println(s2); System.out.println("--------------"); String s3 = new String("kfg"); System.out.println(s3); } }
判斷String物件的“=”與equals
1、首先會檢視常量池中是否有這個字串,如果沒有建立該字串物件,如果有直接引用即可。
package java基礎;
public class Demo3_String {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
執行結果如下:
2、建立2個物件,一個在常量池中一個在堆記憶體中。
package java基礎;
public class Demo3_String {
public static void main(String[] args) {
String s1 = new String("qwe");
System.out.println(s1);
}
}
3、
package java基礎;
import java.util.Scanner;
public class Demo_Scanner {
public static void main(String[] args) {
String s1 = new String("abc");//記錄的是堆記憶體物件的地址值。
String s2 = "abc";//記錄的是常量池中的地址值。
System.out.println(s1 == s2);//false
System.out.println(s1.equals(s2));//ture
}
}
4、
package java基礎;
public class Demo4_String {
public static void main(String[] args) {
String s1 = "a" + "b" + "c";
String s2 = "abc";
System.out.println(s1 == s2);//true,java中有常量優化機制。
System.out.println(s1.equals(s2));//true。
}
}
5、
package java基礎;
public class Demo4_String {
public static void main(String[] args) {
String s1 = "ab";
String s2 = "abc";
String s3 = s1 + "c";
System.out.println(s3 == s2);//false
System.out.println(s3.equals(s2));//true
}
}
配圖: