은 다음 MSDN:CLR/JVM은 실행중인 모든 .net/java 앱에 대해 하나의 인턴 풀을 유지합니까?
에서 추출물 공용 언어 런타임 테이블을 유지함으로써 문자열 저장을 보존, 선언 또는 생성 된 각각의 고유 한 리터럴 문자열에 하나의 참조를 포함하는, 인턴 풀라고 프로그래밍 방식으로 프로그램에서. 결과적으로 리터럴 문자열의 특정 문자열 (예 : )이 시스템에 한 번만 존재합니다.
은 여러 변수에 동일한 리터럴 문자열을 할당 할 경우 예를 들어, 런타임 인턴 풀에서 리터럴 문자열에 동일한 참조를 검색하고 각 변수에 할당합니다.
Intern 메서드는 인턴 풀 을 사용하여 str 값과 동일한 문자열을 검색합니다. 이러한 문자열이 있으면 인턴 풀의 해당 참조는 입니다. 문자열에 이 없으면 str에 대한 참조가 인턴 풀에 추가되고 해당 참조 이 반환됩니다. 당신이 하려고하는 경우 .... 문자열을 인턴 것은 두 원치 않는 부작용이 있다는 점 유지, 메모리의 총량 당신의 애플리케이션 할당을 줄일 수 있습니다. 첫째, 공용 언어 런타임 (CLR)이 종료 될 때까지 메모리가 인계 된 문자열 개체에 할당되어 으로 릴리스 될 가능성이 없습니다.
CLR이 실행중인 모든 .net 앱에 대해 하나의 인턴 풀을 유지한다는 의미입니까? 예제 : 프로그램 A가 "Test"라는 문자열 리터럴을 만들고 다른 프로그램이 "Test"라는 다른 문자열 리터럴을 만들려고한다면 같은 복사본이 사용됩니까? 같은 질문이 JVM에도 적용됩니다.
링크가 있습니까? –