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 중국어 웹사이트의 기타 관련 기사를 참조하세요!