>  기사  >  Java  >  Java Virtual Machine의 객체 액세스에 대한 자세한 소개(그림)

Java Virtual Machine의 객체 액세스에 대한 자세한 소개(그림)

黄舟
黄舟원래의
2017-03-25 10:36:201364검색

본 글에서는 Java Virtual Machine에서의 객체 접근에 대한 상세 설명을 중심으로 소개하고 있으니, 필요한 친구들은

객체 상세 설명을 참고하시기 바랍니다. Java 가상 머신에서의 액세스

객체 액세스에는 Java 스택, Java 힙 및 메소드 영역이라는 세 가지 메모리 영역이 포함됩니다.

예: 다음 코드:

Object objectRef = new Object();

이 코드가 메소드 본문에 나타난다고 가정하면 "Object objectRef" 부분은 다음과 같이 Java 스택의 로컬 변수에 반영됩니다. 참조 유형 데이터가 나타납니다. "new Object()" 부분은 Java 힙에 반영되어 특정 유형 및 객체 메모리 레이아웃에 따라 객체 클래스 유형의 모든 인스턴스 데이터 값을 저장하는 구조화된 메모리를 형성합니다. 가상 머신에 의해 구현되는 것과는 달리 이 메모리의 길이는 고정되어 있지 않습니다. 또한 Java 힙에는 이 객체 유형 데이터를 찾을 수 있는 주소 정보(예: 객체 유형, 상위 클래스, 구현된 인터페이스, 메소드 등)도 포함되어야 합니다. 영역.

Java 가상 머신 사양의 참조 유형은 객체를 가리키는 참조 주소만 규정하며, 이 참조가 Java 힙에서 객체 위치에 액세스하고 위치를 지정하는 방법을 정의하지 않습니다. 가상 머신 구현에는 핸들과 직접 포인터를 사용하는 두 가지 주요 방법이 있습니다.

핸들의 액세스 방법 : Java 파일은 핸들 풀에 따라 메모리 조각으로 분할되어 참조에 저장됩니다. 핸들에는 객체 인스턴스 데이터와 유형 데이터 각각의 특정 주소 정보가 포함되어 있습니다.

Java Virtual Machine의 객체 액세스에 대한 자세한 소개(그림)

포인터 접근 방식: 참조 변수는 객체의 주소를 직접 저장하는 반면, Java 힙 객체의 일부는 객체 인스턴스 데이터를 저장하며, 다른 부분은 객체 유형 데이터를 저장합니다.

객체에 액세스하는 이 두 가지 방법에는 고유한 장점이 있습니다. 핸들 액세스 방법을 사용하는 가장 큰 장점은 참조가 안정적인 핸들 주소를 저장한다는 것입니다. 객체가 이동되면 변경됩니다. 핸들의 인스턴스 데이터 포인터이며 참조는 변경할 필요가 없습니다. 포인터 접근 방법을 사용하는 가장 큰 장점은 포인터 위치 지정에 드는 시간 오버헤드를 절약한다는 점입니다. 가상 머신에서는 두 번째 방법(직접 포인터 접근)을 사용합니다.

위 내용은 Java Virtual Machine의 객체 액세스에 대한 자세한 소개(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.