개체는 다른 개체에 대한 참조를 포함 할 수 있습니다. 이러한 참조를 클래스/필드 변수로 선언하면 개체 자체가 힙에 만들어 지므로 필드 참조가 나타내는 값은 힙에 저장됩니다.로컬 참조 및 필드 참조 메모리 할당
그래서, 난이있는 경우
public class A {
int size;
}
- 내가 크기가 다음
2
의 int 값을 얻는 경우에 그 힙에 객체의 일부로 저장되는 것을 알고 있지만, 어디 이름 즉 참조입니다 크기가 저장 되었습니까? - "크기"라는 이름은 힙의 개체 내부에도 저장되어 있습니까?
- JVM이 힙에
size == 2
을 어떻게 상호 참조합니까? - 클래스를로드 할 때 주 스레드에서 실행되며 각 스레드는 자체 스택을 갖습니다. 그래서 이러한 필드 참조가 메인 스택에 올바르게 생성되지 않았습니까?
보헤미안, 이름 크기가 permgen 메모리에 있지만 힙에있는 클래스 정의 파일 안에 저장되어 있다고 말하는 것입니까? – Phoenix
@Phoenix 필드의 이름이 클래스 정의에 있고 클래스 정의가 permgen이므로 필드 이름도 permgen입니다 (클래스 정의 내에 중첩 됨). – Bohemian
보헤미안, 필드 참조가 다른 객체에 대한 참조 인 경우 어떻게해야합니까? 원시적이 아닌가? A 급처럼 (B 이름;)? – Phoenix