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