1. 程式人生 > >Java基礎-----String類的概述

Java基礎-----String類的概述

前言

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
	}
}

配圖:
在這裡插入圖片描述