이 글 은 JAVA 메모리 영역 효과 에 대한 간단 한 지식 을 소개 하 였 으 며,예시 코드 를 통 해 매우 상세 하 게 소개 하 였 으 며,여러분 의 학습 이나 업무 에 대해 어느 정도 참고 학습 가 치 를 가지 고 있 으 므 로 필요 하신 분 들 은 참고 하 시기 바 랍 니 다. JAVA 메모리 영역 소개
프로그램 카운터:
스 레 드 가 개인 적 이 고 작은 메모리 공간 으로 현재 스 레 드 가 실행 하고 있 는 바이트 코드 의 줄 표시 기 라 고 볼 수 있 습 니 다.
모든 스 레 드 는 독립 된 프로그램 카운터 가 있 고 각 스 레 드 간 의 카운터 가 서로 영향 을 주지 않 으 며 독립 적 으로 저장 된다.
스 레 드 가 자바 방법 을 실행 하면 이 계수 기 는 실행 중인 가상 컴퓨터 바이트 코드 명령 의 주 소 를 기록 합 니 다.Native 방법 이 라면 이 카운터 의 값 은 undefined 입 니 다.
이 메모리 영역 에 서 는 OutOfmory Error 가 발생 하지 않 습 니 다(JAVA 가상 컴퓨터 규범 에 규범 되 지 않 음).
goto 보존 글자(자바 현재 버 전 은 잠시 사용 하지 않 고 다른 사람 이 사용 하지 못 하 게 합 니 다).구체 적 으로 한 줄 로 이동 하 는 것 은 바로 조작 프로그램 카운터 입 니 다.
가상 컴퓨터 의 개념 모델 에서 바이트 디 스 플레이 의 작업 은 프로그램 카운터 의 값 을 바 꾸 어 다음 에 실행 해 야 할 바이트 코드 명령,분기,순환,도약,이상 처리,스 레 드 회복 등 을 모두 이 프로그램 카운터 에 의존 해 야 한다. 자바 가상 컴퓨터 스 택
스 레 드 는 사유 이 고 생명 주기 와 스 레 드 가 같다.
가상 컴퓨터 에 JAVA 방법 서 비 스 를 수행 합 니 다.
JAVA 방법 으로 실 행 된 동적 메모리 모델 설명 하기;
스 택 프레임:모든 방법 이 실 행 될 때 스 택 프레임 을 만 들 고 국부 변수 표,조작 스 택,동적 링크,방법 출구 등 정 보 를 저장 하 는 데 사 용 됩 니 다.모든 방법 은 호출 에서 완성 까지 의 과정 에 대응 합 니 다.
부분 변수 표:
컴 파일 기간 에 알 수 있 는 각종 기본 데이터 형식,참조 유형,returnAddress 형식
을 저장 합 니 다.
부분 변수 표 의 메모리 공간 은 컴 파일 기간 에 분 배 를 완성 합 니 다.한 방법 에 들 어 갈 때 이 방법 은 프레임 에 얼마나 많은 메모 리 를 분배 해 야 하 는 지 고정 적 이 고 방법 이 실행 되 는 동안 부분 변수 표 의 메모리 크기 를 바 꾸 지 않 습 니 다.
스 레 드 가 요청 한 스 택 깊이 가 가상 컴퓨터 가 허용 하 는 깊이 보다 크 면 StackOverflow Error 이상 을 던 집 니 다.
가상 컴퓨터 스 택 을 동적 으로 확장 할 수 있다 면(Jvm 은 동적 으로 도 동적 으로 길 이 를 가 진 가상 컴퓨터 스 택)충분 한 메모리 신청 이 불가능 할 때 OutOfmory Error 이상 을 던 집 니 다.
로 컬 방법 창고
스 레 드 사유
가상 컴퓨터 에 Native 방법 서 비 스 를 수행 합 니 다.
작용 은 JAVA 가상 창고 와 같 고 작용 역 의 차이 일 뿐이다.
로 컬 방법 으로 요청 한 스 택 깊이 가 가상 컴퓨터 가 허용 하 는 깊이 보다 크 면 StackOverflow Error 이상 을 던 집 니 다.
가상 컴퓨터 스 택 을 동적 으로 확장 할 수 있다 면(Jvm 은 동적 으로 도 동적 으로 길 이 를 가 진 가상 컴퓨터 스 택)충분 한 메모리 신청 이 불가능 할 때 OutOfmory Error 이상 을 던 집 니 다.
JAVA 더미
스 레 드 공유
JAVA 가상 컴퓨터 가 관리 하 는 메모리 중 가장 큰 것;
가상 컴퓨터 가 시 작 될 때 만 듭 니 다.
대상 인 스 턴 스(모든 대상 인 스 턴 스 와 배열)를 저장 합 니 다.
쓰레기 수집 기 관리의 주요 구역;
신세대,연대,Eden 공간;
물리 적 으로 연속 되 지 않 는 메모리 공간 에 있 을 수 있 고 논리 적 으로 연속 되 기만 하면 된다.
고정 크기 나 동적 확장 을 선택 할 수 있 습 니 다.
-Xms-Xmx 더미 초기 화 크기 와 확장 크기 조정 하기;
더미 에 인 스 턴 스 할당 이 완료 되 지 않 았 고 더 이상 확장 할 수 없 을 때 OutOfmory Error 이상 을 던 집 니 다.
방법 영역
스 레 드 공유;
가상 컴퓨터 에 불 러 온 클래스 정보,상수,정적 변수,인 스 턴 트 편집기 컴 파일 된 코드 등 데 이 터 를 저장 합 니 다.
클래스 정보:
클래스 버 전
필드
방법
인터페이스
고정 크기 나 동적 확장 을 선택 할 수 있 습 니 다.
쓰레기 수 거 를 실현 하지 않 는 것 을 선택 할 수 있다.
메모리 분 배 를 만족 시 킬 수 없 을 때 OutOf Memory Error 이상 을 던 집 니 다.
런 타임 상수 영역
방법 구역 의 일부분;
Class 파일 에는 버 전,필드,방법 등 설명 정 보 를 제외 하고 상수 탱크 도 있 습 니 다.이것 은 컴 파일 기간 에 생 성 된 각종 글자 의 양 과 기호 인용 을 저장 하고 클래스 로 딩 할 때 방법 구역 의 운행 시 상수 탱크 에 들 어 갑 니 다.
방법 구역 의 일부분 에 속 하기 때문에 메모리 분 배 를 만족 시 킬 수 없 을 때 OutOfmory Error 이상 을 던 집 니 다.
직접 메모리
실행 시 데이터 구역 의 일부분 에 속 하지 않 고 JAVA 가상 컴퓨터 규범 에서 정 의 된 메모리 구역 도 아니다.
JAVA 메모리 제한 을 받 지 않 지만 물리 적 메모리 의 제한 을 받 아 각 메모리 의 합 계 는 물리 적 메모리 제한 으로 동적 확장 시 OutOf Memory Error 이상 이 발생 합 니 다.
JDK 1.4 에 NIO(new Input/Output)클래스 를 새로 추가 하여 채널(Channel)과 캐 시 영역(Buffer)을 기반 으로 하 는 I/O 방식 을 도입 했다.그 는 Native 함수 라 이브 러 리 를 사용 하여 외부 메모 리 를 직접 분배 한 다음 에 JAVA 더미 에 저 장 된 DirectByteBuffer 대상 을 통 해 이 메모리 의 인용 으로 조작 하면 성능 을 현저히 향상 시 킬 수 있다.JAVA 더미 와 네 이 티 브 더 미 를 오 가 며 데 이 터 를 복사 하 는 것 을 피 했 기 때문이다. 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: