문자열 인턴은 모든 고유 문자열 값의 단일 복사본이 저장되는 프로세스입니다. 또한 문자열도 변경할 수 없습니다. 이런 식으로 문자열은 동일한 데이터를 포함하고 동일한 메모리를 공유할 수 있습니다. 이렇게 하면 필요한 메모리가 크게 줄어듭니다.
'인턴' 함수가 호출될 때 -
-
두 문자열 간의 동등성을 검사합니다. 문자열 개체가 SCP(문자열 상수 풀)에 있는지 여부입니다.
-
사용 가능한 경우 풀에서 문자열을 가져와서 반환합니다. 그렇지 않으면 새 String 개체가 만들어지고 풀에 추가됩니다. 이 문자열 개체에 대한 참조도 반환됩니다.
-
2개의 문자열 'a'와 'b'에 대해 a.intern() ==b.intern()은 true이고 a.equals(b)는 true를 반환합니다.
예를 들어 보겠습니다 -
예
public class Demo{ public static void main(String[] args){ String s1 = new String("Its"); String s2 = s1.concat("sample"); String s3 = s2.intern(); System.out.println("Checking equality of object 2 and 3 :"); System.out.println(s2 == s3); String s4 = "Its a sample"; System.out.println("Checking equality of object 3 and 4 :"); System.out.println(s3 == s4); } }
출력
Checking equality of object 2 and 3 : true Checking equality of object 3 and 4 : false
Demo라는 클래스에는 주요 기능이 포함되어 있습니다. 여기에 String 개체의 세 가지 인스턴스가 정의되어 있습니다. 여기서 두 번째 문자열은 첫 번째 문자열과 다른 값을 연결한 것입니다. 세 번째 문자열은 두 번째 문자열에서 'intern'에 대한 함수 호출입니다. 이 문자열은 '==' 연산자를 사용하여 비교되고 결과가 콘솔에 표시됩니다.