가상 컴퓨터 에 불 러 온 클래스 정보,상수,정적 변수,인 스 턴 트 컴 파일 러 컴 파일 후의 코드 등
메모리 회수 목 표 는 주로 상수 탱크 의 회수 와 유형 에 대한 마 운 트 해제(유형 마 운 트 해제 가 부하 보다 필요 하지만 필요)
운행 시 상수
컴 파일 기간 에 생 성 된 각종 글자 의 양 과 기호 인용
을 저장 합 니 다.
동적:운행 기간 에 새로운 변 수 를 넣 을 수 있 습 니 다
직접 메모리
NIO 클래스 는 Native 함수 라 이브 러 리 를 사용 하여 쌓 아 올 린 메모리 를 직접 할당 할 수 있 으 며,쌓 아 올 린 DirectByteBuffer 대상 을 이 메모리 의 인용 으로 조작 할 수 있 습 니 다
HotSpot 가상 컴퓨터 대상 비밀 탐지 대상 생 성
새 대상(new 명령)을 만 들 고 명령 의 매개 변수 가 상수 탱크 에서 클래스 의 기호 인용 을 찾 을 수 있 는 지 확인 하 며 불 러 올 지 확인 합 니 다.없 으 면 클래스 로드 과정
을 진행 해 야 합 니 다.
메모리 할당:
신입생 대상 에 게 메모리 할당:
메모리 규정:포인터 충돌
메모리 가 고 르 지 않 음:남 은 목록
동시 다발 상황 에서 의 스 레 드 안전:
메모리 공간 을 분배 하 는 동작 을 동기 화하 여 원자 성 을 확보한다
모든 스 레 드 는 자바 더미 에 작은 메모리,즉 로 컬 스 레 드 할당 버퍼(Thread Local Allocation Buffer,TLAB)를 미리 할당 합 니 다.스 레 드 마다 자신의 TLAB 에 메모 리 를 할당 하고 새로운 TLAB 를 할당 할 때 만 동기 화 잠 금
이 필요 합 니 다.
대상 의 초기 화 와 설정:
분 배 된 메모리 공간 을 0 값 으로 초기 화(TLAB 를 사용 하면 TLAB 를 할당 할 때 초기 화 가능)
설치 대상 헤드
방법 으로 대상 을 프로그래머 의 뜻 에 따라 초기 화
대상 의 메모리 레이아웃
대상 헤더:대상 자체 가 실 행 될 때의 데 이 터 를 저장 합 니 다.
Mark Word:HashCode,GC 세대 별 연령,잠 금 상태 표지,스 레 드 에 만 있 는 잠 금,편향 스 레 드 ID,편향 시간 스탬프 등
유형 포인터:클래스 메타 데 이 터 를 가리 키 는 포인터 로 대상 이 어떤 종류의 인 스 턴 스 인지 확인 하 는 데 사 용 됩 니 다(불필요)
정렬 충전(불필요):자리 표시 자,대상 이 8 바이트 의 정수 배
여야 하기 때 문 입 니 다.
대상 의 접근 위치 스 택 에 있 는 reference 데이터 작업 을 통 해 쌓 인 구체 적 인 대상 이 필요 합 니 다.
핸들 접근:
더미 에서 메모리 하 나 를 핸들 풀 로 나 누고 reference 에 저 장 된 대상 의 핸들 주소,핸들 에는 대상 인 스 턴 스 데이터 와 유형 데이터 각자 의 구체 적 인 주소 정보
가 포함 되 어 있 습 니 다.
장점:안정 적 인 핸들,대상 이동(예 를 들 어 gc 작업)시 reference
를 바 꿀 필요 가 없습니다.
직접 포인터 접근:
더미 대상 의 레이아웃 에서 유형 데 이 터 를 어떻게 배치 하 는 지 고려 해 야 합 니 다.reference 에 저 장 된 것 은 대상 인 스 턴 스 데이터 주소
입 니 다.
장점:속도 가 빠 르 고 포인터 포 지 셔 닝 시간 비용(HotSpot)
을 절약 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: