String s=new String('a')은 도대체 몇 개의 대상 을 생 성 합 니까?

1679 단어 String대상
늘 하 는 이야기 의 한 가지,2020 년 이 되 어도 논쟁 을 하고 있 습 니 다.당신들 은 하루 하루,아이고,나 는 당신 하 나 를 겨냥 한 것 이 아 닙 니 다.여기 계 신 여러분 은 모두 인재 라 고 말 하 는 것 입 니 다!

위의 그림 에서 빨간색 화살 표 는new을 통 해 문자열('의 춘')을 만 들 때 상수 탱크 에'의 춘'대상 이 있 는 지 찾 습 니 다.없 으 면 상수 탱크 에 이 문자열 대상 을 만 든 다음 상수 탱크 에'의 춘'대상 의 복사 대상 을 만 듭 니 다.
즉,정 답 은 하나 또는 두 개의 대상 이 생 겼 다 는 것 이다.상수 탱크 에 원래'의 춘'이 없 었 다 면 두 개 였 다.반대로 하나 야.
네!면접 관 이 물 어보 면 하나 또는 두 개 만 대답 하면 되 지만...어쨌든...
어쨌든 저 와 여러분 은 모두 인재 입 니 다.자바 지식의 저력 은 이렇게 짧 을 수 없습니다.이 문 제 는 아직 끝나 지 않 았 습 니 다.우 리 는 면접 관 에 게 몇 마디 더 할 수 있 습 니 다.문자열 상수 지 는 서로 다른 버 전의 jvm 에서 위치 가 다 를 수 있 습 니 다.
그러면 String s=new String("a"+"b");대상 을 몇 번 만 들 었 습 니까?
jvm 에서"a","b"를 보 았 을 때 각각 한 번 씩 대상 을 만 들 었 습 니 다."a"+"b"는 새로운 문자열 을 만 들 었 습 니 다.새로운 대상,new 는 하나의 대상 을 만 들 었 기 때문에 모두 네 번 의 대상 을 만 들 었 습 니 다.

String a="sss";
그동안 제 이해 가 맞 았 는 지 모 르 겠 지만 댓 글 2 조 를 보 세 요.또 다른 이해 입 니 다.만약 우리 가 면접 에 대처 하기 위해 서 라면 두 가 지 를 결합 해서 말 할 수 있 습 니 다.만약 에 자신 이 연구 하 든 손 을 써 서 많이 조작 하 든 보 세 요~서로 다른 jdk 버 전에 서 는 서로 다른 결과 가 있 을 수 있 습 니 다.
예:a="bb"; 
String 은 가 변 대상 이 아 닙 니까?어떻게 할당 되 었 습 니까?
String 은 가 변 적 이지 않 은 대상 입 니 다.jvm 에서"sss"를 보 았 을 때 인용 을 a 에 게 부 여 했 습 니 다.jvm 에서"bbb"를 보 았 을 때 새로운 대상 을 만 들 었 습 니 다.새로운 인용 을 a 에 게 되 돌려 주 었 습 니 다.원래 의"sss"는 변 하지 않 습 니 다.
String s=new String("a")에 대해 몇 개의 대상 이 생 겼 는 지 에 대한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 String s=new String("a")내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 관심 부탁드립니다!

좋은 웹페이지 즐겨찾기