English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 흐름 제어

Java 배열

Java 방향 대상(I)

Java 방향 대상(II)

Java 방향 대상(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java String intern() 사용 방법 및 예제

Java String(문자열) 메서드

Java String intern() 메서드는 문자열 객체의 규범 표현을 반환합니다.

문자열 intern() 메서드의 문법은 다음과 같습니다:

string.intern()

여기서 string은 String 클래스의 하나의 객체입니다.

intern() 매개변수

  • 아무 매개변수도 없이

intern() 반환 값

  • 문자열의 규범 표현을 반환합니다

Java 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() 메서드를 수동으로 사용할 수 있습니다.

예제: Java String 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같다.

Java String(문자열) 메서드