Java에서 문자열 복사

Rashmi Patidar 2023년10월12일
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
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