>Java >java지도 시간 >Java 문자열에 `intern()` 메서드를 언제 사용해야 합니까?

Java 문자열에 `intern()` 메서드를 언제 사용해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-06 10:37:11673검색

When Should You Use the `intern()` Method for Java Strings?

문자열 리터럴에 인턴 메서드를 사용하는 경우

리터럴 구문("String")을 사용하여 생성된 문자열은 자동으로 문자열 풀에 인턴됩니다. JVM으로. 결과적으로 == 연산자는 문자열 리터럴에 대해 일관되게 작동합니다.

그러나 new String()으로 생성된 문자열에 대해서는 인터닝이 자동으로 수행되지 않습니다. 여기서 intern() 메소드가 관련됩니다.

new String()으로 생성된 String에 intern() 메소드를 사용하면 해당 String을 풀에 추가하고 동일한 String이 이미 있는 경우 기존 객체 인스턴스를 반환합니다. 존재합니다.

예:

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
String s4 = new String("Rakesh");
String s5 = new String("Rakesh").intern();

if (s1 == s2) {
    System.out.println("s1 and s2 are same");
}

if (s1 == s3) {
    System.out.println("s1 and s3 are same");
}

if (s1 == s4) {
    System.out.println("s1 and s4 are same");
}

if (s1 == s5) {
    System.out.println("s1 and s5 are same");
}

출력은 be:

s1 and s2 are same
s1 and s3 are same
s1 and s5 are same

문자열이 인턴되지 않고 new를 사용하여 명시적으로 생성된 s4를 제외한 모든 경우에 JVM의 문자열 상수 풀은 동일한 불변 인스턴스를 반환합니다.

JavaTechniques를 참조하세요. 자세한 내용은 "문자열 평등과 인턴"을 참조하세요.

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

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