English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java String intern() 메서드는 문자열 객체의 규범 표현을 반환합니다.
문자열 intern() 메서드의 문법은 다음과 같습니다:
string.intern()
여기서 string은 String 클래스의 하나의 객체입니다.
아무 매개변수도 없이
문자열의 규범 표현을 반환합니다
문자열 임베디드는 같은 내용을 가진 모든 문자열이 같은 메모리를 사용하도록 보장합니다.
우리가 두 개의 문자열을 가지고 있다고 가정해 보겠습니다:
String str1 = "xyz"; String str2 = "xyz";
두 가지 str1와 str2같은 내용을 가지고 있기 때문에, 이 두 문자열들은 같은 메모리를 공유합니다. Java는 문자열 레이터를 자동으로 삽입합니다.
하지만, new 키워드를 사용하여 문자열을 생성하면, 이 문자열들은 같은 메모리를 공유하지 않습니다. 예를 들어,
class Main { public static void main(String[] args) { String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false } }
이 예제에서 볼 수 있듯이, 두 가지 str1와 str2같은 내용을 가지고 있지만, 같은 메모리를 공유하지 않기 때문에 같지 않습니다.
이 경우, 같은 내용을 가진 문자열에 같은 메모리를 사용하기 위해 intern() 메서드를 수동으로 사용할 수 있습니다.
class Main { public static void main(String[] args) { String str1 = new String("xyz"); String str2 = new String("xyz"); //str1와 str2같은 메모리 풀을 공유하지 않습니다 System.out.println(str1 == str2); // false //intern() 메서드를 사용하여 //이제, str1와 str2는 같은 메모리 풀을 공유합니다 str1 = str1.intern(); str2 = str2.intern(); System.out.println(str1 == str2); // true } }
그래서 당신은 보고처럼, str1와 str2같은 내용을 가지고 있지만, 처음부터 같지 않습니다.
그런 다음, 우리는 intern() 메서드를 사용하여 str1와 str2같은 메모리 풀을 사용합니다. intern()를 사용한 후에, str1와 str2같다.