在 Java 中複製字串

Rashmi Patidar 2021年7月1日
在 Java 中複製字串

在 Java 語言中,字串是一種儲存字元序列的資料型別。字串是一個包裝類,它提供了諸如 compare()replace()substring() 之類的方法。每當物件被例項化時,物件就會儲存在堆記憶體中。

在 Java 中複製字串

下面是向你展示如何在 Java 中複製字串的程式碼塊。

public class StringCopy {
    public static void main(String[] args) {
        String first = "First String";
        System.out.println("First initially = " + first);
        String second = first;
        System.out.println("String copy in second = " + second);
        first = "Updated string";
        System.out.println("First after update = " + first);

        String newCopy = String.copyValueOf(first.toCharArray());
        System.out.println("Copy using copyValueOf() = " + newCopy);

        String copyString = new String(first);
        System.out.println("Copy using new = " + copyString);
    }
}

在上面的程式中,在操作的第一部分初始化了一個字串。表示 String first = "First String" 在記憶體中建立了 First String 的例項;此外,這個新的字串地址首先被分配給變數。該值使用 println() 方法列印。

現在,String second = first 行將第一個引用儲存在第二個例項中,並在另一行中列印副本值。因此,second 變數包含 first 引用。然後,first = "Updated string" 會將第一個的引用從現有值更改為堆記憶體中的另一個字串。

Java 字串本質上是不可變的。這意味著當一個字串被建立時,它就在堆記憶體中。當另一個值被分配給第一個變數時,它不會被覆蓋。相反,該變數現在引用了堆記憶體中的另一個字串。除非垃圾收集器開始工作,否則堆記憶體中的引用會儲存到堆中。當沒有被任何變數引用時,該函式會從常量記憶體池中清除變數。

另一種複製字串的方法是使用 copyValueOf 方法。它是一個以字元陣列作為輸入的靜態工廠方法。該例項首先使用 toCharArray 函式轉換為字元陣列。最後的字串例項被 newCopy 變數引用並列印在另一行中。

複製字串的第三種方法是使用 new 關鍵字。該方法在記憶體中建立兩個例項:第一個儲存值,另一個 copyString 變數儲存 first 變數的引用。

下面是從上面的程式產生的程式碼塊。

輸出:

First initially = First String
String copy in second = First String
First after update = Updated string
Copy using copyValueOf() = Updated string
Copy using new = Updated string
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相關文章 - Java String