Java에서 문자열 생성: "String s = new String("silly")의 경우"
Java에서 문자열을 생성할 때, String 클래스의 동작을 이해하는 것이 중요합니다. Java의 다른 많은 클래스와 달리 String 리터럴은 new 키워드 없이 자동으로 String 객체를 생성합니다. 그러나 new 연산자를 사용하여 새 String 객체를 생성하는 것은 불필요한 메모리 소비로 이어질 수 있으므로 명시적으로 권장되지 않습니다.
이를 설명하려면 다음 코드를 고려하세요.
String s = "No longer silly";
여기서 이 경우에는 "No more 어리석은" 리터럴이 s 변수에 직접 할당되어 단일 String 객체가 생성됩니다. 그러나 다음 코드 조각:
String s = new String("silly");
은 불필요한 추가 String 객체를 생성합니다. 이를 방지하려면 첫 번째 예에서 볼 수 있듯이 가능할 때마다 리터럴 할당을 사용하는 것이 좋습니다.
그러나 String 개체를 동적으로 생성해야 하는 상황이 있을 수 있습니다. 예를 들어, 다음 클래스를 고려해보세요.
public final class CaseInsensitiveString { private String s; public CaseInsensitiveString(String s) { if (s == null) { throw new NullPointerException(); } this.s = s; } }
이 시나리오에서:
위 내용은 `CaseInsensitiveString` 객체를 생성할 때 `String` 객체가 아닌 `new`를 사용해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!