개체가 힙에 정확히 저장되는 방법. 예를 들어, 자전거 클래스는 다음과 같이 정의 할 수 있습니다 :개체는 힙에 어떻게 저장됩니까?
public class Bicycle {
public int gear;
public int speed;
public Bicycle(int startSpeed, int startGear) {
gear = startGear;
speed = startSpeed;
}
public void setGear(int newValue) {
gear = newValue;
}
public void applyBrake(int decrement) {
speed -= decrement;
}
public void speedUp(int increment) {
speed += increment;
}
}
그때 내가 자전거 개체를 만들 수 있습니다 :
Bicycle bicycle = new Bicycle(20,10)
다음이 자전거 객체가 힙에 보관해야합니다. 하지만 힙이 속도와 기어와 같은 인스턴스 변수와 메서드를 정확히 저장하는 방법을 이해하지 못합니다. 힙을 트리로 구현해야한다는 것을 알고 있습니다. 그래서 그 객체가 나무에 어떻게 저장되어 있습니까? 또한
bicycle.speed
을 사용하여 속도 값을 찾을 때 시간 복잡도는 어떻게됩니까? 대상물과 인스턴스 변수
heap
에 매장되고 힙의 주소가 너무 스택 힙을 링크 할 것이라고하는 의미 스택에 할당되는 반면
가능한 복제본 [스택 및 힙은 무엇이며 어디에 있습니까?] (http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap) – EkoostikMartin
@fge I 힙을 트리로 구현해야 함을 이해하십시오. 그래서 그 객체가 나무에 어떻게 저장되어 있습니까? – Jude
힙은 거대한 바이트 배열입니다. 객체는 구조체입니다. 단일 엔티티로 처리되고 함께 할당되는 일련의 필드입니다. 객체를 생성하려면 적절한 크기의 "자유"힙을 찾고 객체 헤더 (클래스 및 기타 "부기"정보에 대한 포인터)를 설정하고 클래스에 설명 된 초기화를 수행하십시오. –