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