intern () 방법
2124 단어 학습 노트
이것 은 다음 과 같은 규칙 을 따 릅 니 다. 임의의 두 문자열 s 와 t 에 대해 s. equals (t) 가 true 일 때 만 s. intern () = t. intern () 이 true 입 니 다.
구체 적 으로 소 개 를 하지 않 고 인용 을 보십시오.http://www.runoob.com/java/java-string-intern.html
재 미 있 는 것 한 토막 주세요.
//1:
String s1 = new StringBuilder("go").append("od").toString();
System.out.println(s1.intern() == s1);
//2:
String s0 = "good";
String s2 = new StringBuilder("go").append("od").toString();
System.out.println(s2.intern() == s2);
//3:
String s3 = new StringBuilder("ja").append("va").toString();
System.out.println(s3.intern() == s3);
결과 1: true; 결과 2: false; 결과 3: false;
이 걸 처음 본 동료 가 그 렇 죠? 순간 세 글자 'WTF' 를 봤 어 요. 코드 가 똑 같 아 요. 값 만 다 르 죠?
결과 1: s1. intern () 에서 'good' 이 상수 탱크 에 존재 하지 않 는 것 을 발견 하면 s1 을 가리킨다.이 때 끝 에 'good' 이 상수 탱크 에서 만 들 면 s1 을 직접 가리 키 는 것 을 설명 합 니 다.
결과 2: s0 은 상수 탱크 에 'good' 을 만 들 었 기 때문에 s2. intern () 은 s0 을 직접 가리 키 고 쌓 인 s2 와 s0 은 자연 false 를 비교 합 니 다.
결과 3: 결과 1 로 보이 지만 사실은 결과 2 입 니 다. 일부 키 워드 는 JDK 에서 상수 탱크 에 만 들 어 졌 기 때 문 입 니 다.
주: 프로그램 이 시 작 될 때 이미 많이 불 러 왔 습 니 다
class
. 이 안에 도 문자 상수 의 생 성 이 있 습 니 다. 단지 당신 이 만 든 것 이 아 닙 니 다. 당신 은 모 를 뿐 입 니 다.실례 화 된 String 대상 에서 intern () 방법 을 호출 한 후, 가상 기 회 는 String 버퍼 에서 이 Stirng 대상 이 봉 인 된 문자열 의 내용 과 같은 값 의 String 대상 을 찾 은 다음, 인용 할당 값 을 원래 의 String 대상 을 인용 한 String 형식 변 량 에 줍 니 다.String 버퍼 에 이 String 대상 이 봉 인 된 문자열 의 내용 과 같은 값 의 String 대상 이 존재 하지 않 는 다 면 가상 기 회 는 이 를 위해 새로운 String 대상 을 만 들 고 이 를 인용 하여 원래 의 String 대상 을 인용 하 는 String 형식 변 수 를 할당 합 니 다.
new 로 만 든 문자열 대상 은 문자열 풀 에 들 어가 지 않 습 니 다.
문자열 을 추가 할 때 정적 문자열 의 결 과 는 문자열 풀 에 추 가 됩 니 다. 변 수 를 포함 하면 문자열 풀 에 들 어가 지 않 습 니 다.
intern () 은 두 가지 역할 을 합 니 다. 첫 번 째 는 문자열 의 글자 수 를 상수 탱크 에 넣 는 것 입 니 다. 두 번 째 는 이 상수 의 인용 을 되 돌려 주 는 것 입 니 다.
이해 할 수 없다 면 박문 을 추천 합 니 다.https://blog.csdn.net/SEU_Calvin/article/details/52291082 갑자기 밝 아 지게 해 줄 게.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 학습노트(6) 함수 객체모방 함수는 모두pass-by-value이다 함수 대상은 값에 따라 전달되고 값에 따라 되돌아오기 때문에 함수 대상은 가능한 한 작아야 한다(대상 복사 비용이 크다) 함수 f와 대상 x, x 대상에서 f를 호출하면:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.