HOWTO · Java

Java에서 문자열 복사

이 기사는 Java에서 문자열을 복사하는 방법에 대한 방법을 소개합니다.

이 페이지의 내용

Java 언어에서String은 일련의 문자를 저장하는 데이터 유형입니다. 문자열은 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