그 전에 다른 사람의 박문,그리고 일부 책 에서 상수 가 상수 탱크 에 놓 여 있다 는 것 을 알 게 되 었 습 니 다.세부 적 인 내용 은 알 수 없 었 습 니 다.앞 에 있 는 것 이 거의 완전한 블랙박스 라 고 생각 하고 불편 함 을 느 꼈 습 니 다.그래서 을 읽 었 습 니 다.이 책 에서 상수 에 대한 소 개 는 바이트 파일 의 구조 에 중심 을 두 었 습 니 다.그리고 자동 메모리 관리 체제 에서 도 운행 상 당량 탱크 를 소 개 했 고 자 료 를 찾 아 본 후에 머 릿 속 에 어느 정도 인식 이 생 겼 다.
출력 결과 또 다른 것 보기:
결과: 단 하나 깜짝 놀 랐 죠? 우 리 는 두 번 째 프 리 젠 테 이 션 의 코드 블록 을 역 컴 파일 했다.
여기 메 인(Main)이 있어 요.구조 방법 이 고 다음은 메 인 방법 이에 요.
결과: 성명 자체 의 str 는 모두 상수 이다.관건 적 인 것 은 이 상수 의 값 이 컴 파일 시기 에 확 정 될 수 있 는 지 하 는 것 이다.분명히 이곳 의 예 는 컴 파일 기간 에 확실히 확정 되 지 않 는 다.운행 기간 에 만 확정 할 수 있 습 니 다.이 는 목표 류 를 초기 화 해 야 합 니 다. 상수 의 값 이 컴 파일 기간 에 확정 되 지 않 으 면 호출 클래스 의 상수 탱크 에 들 어가 지 않 습 니 다. 이 때 프로그램 이 실 행 될 때 이 상수 가 있 는 종 류 를 주동 적 으로 사용 하 게 되 고 이 종 류 를 초기 화 할 수 있 습 니 다. (이것 은 클래스 의 로드 메커니즘 과 관련 되 어 있 으 며,뒤에 여기에 표 시 를 할 것 입 니 다) 역 컴 파일 탐구:
TestValue 류 가 초기 화 될 것 이 분명 합 니 다.
bipush 는 단일 바이트(-128-127)의 상수 치 를 스 택 꼭대기 로 미 루 는 것 을 표시 합 니 다.
역 컴 파일 을 진행 하 다
sipush 는 짧 은 정형 상수 치(-32768~32767)를 창고 꼭대기 로 밀어 넣 는 것 을 표시 합 니 다.
이곳 은 iconst 로 변 했다.1 |