>Java >java지도 시간 >Java에서 `new String(...)`을 언제 사용해야 합니까?

Java에서 `new String(...)`을 언제 사용해야 합니까?

DDD
DDD원래의
2024-12-26 18:58:10535검색

When Should You Use `new String(...)` in Java?

Java에서 "new String(...)"의 수수께끼

Java 코드 샘플을 연구하는 동안 흥미로운 구문을 접할 수 있습니다. : "new" 연산자를 사용하여 String 객체에 String 상수를 할당합니다. 이 색다른 접근 방식은 아래와 같이 문자열 상수를 직접 할당하는 보다 일반적인 방법과 다릅니다.

String s = new String("Hello World");

s = "Hello World";

이 수수께끼 같은 구문에 흥미를 느끼고 그 목적을 탐구합니다. 및 잠재적인 영향.

'new'의 목적 String(...)"

"new String(...)" 생성자는 인수 문자열의 복사본을 사용하여 String 객체를 초기화합니다. 문자열은 불변이므로 내용이 절대 변경되지 않으므로 이는 일반적으로 필요하지 않습니다. 그러나 특정 시나리오에서는 다음과 같은 방법이 도움이 될 수 있습니다.

  • 고유한 복사본 강제 적용: 문자열의 기본 문자 배열이 나중에 수정될 수 있는 경우 별도의 복사본을 만듭니다. 원본에 대한 의도하지 않은 수정을 방지할 수 있습니다.

"new"의 함정 String(...)"

안타깝게도 "new String(String)"의 동작은 구현에 따라 다르며 문서화되지 않았습니다. 이는 문자열을 조작할 때 예상치 못한 결과와 잠재적인 위험을 초래할 수 있습니다.

권장사항

구현에 구애받지 않는 동작을 보장하려면 다음과 같은 경우 "toCharArray()"를 사용하는 것이 좋습니다. 문자열의 문자 배열 복사본 만들기:

String copy = new String(original.toCharArray());

이 대체 방법은 "new String(...)"과 관련된 예상치 못한 놀라움을 방지하기 위해 문자 배열의 고유한 복사본이 생성됩니다.

위 내용은 Java에서 `new String(...)`을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.