Integer 및 Integer Array가 Java의 스택/힙에 저장되는 방법을 알고 싶습니다. 누군가가 나를 가리킬 수있는 링크가 있습니까? 아니면 누군가 나에게 설명해 주시겠습니까?스택/힙의 정수 및 정수 배열 스토리지
업데이트 1 : 그리고 이것은 정수 및 정수 배열이 Java의 메서드에 인수로 전달되는 방식에 어떤 영향을 미칩니 까?
당신Integer 및 Integer Array가 Java의 스택/힙에 저장되는 방법을 알고 싶습니다. 누군가가 나를 가리킬 수있는 링크가 있습니까? 아니면 누군가 나에게 설명해 주시겠습니까?스택/힙의 정수 및 정수 배열 스토리지
업데이트 1 : 그리고 이것은 정수 및 정수 배열이 Java의 메서드에 인수로 전달되는 방식에 어떤 영향을 미칩니 까?
당신변수는이 객체에 대한 참조와 지역 변수의 경우에는 스택에 저장이 참조하지만, 오브젝트의 데이터 힙에 저장 할 수있는 점을 포함 감사드립니다.
현재, 예를 들어, 자세한 내용을보실 수 있습니다 : link
방법 변수는 스택에 저장됩니다. 한편, 객체는 아래 이미지와 같이 힙에 저장됩니다. 그런 이유로 StackOverFlowException을 얻는다면 이는 메서드에서 너무 많은 변수를 선언했거나 재귀 호출에서 너무 많은 메서드를 호출하고 있다는 것을 의미합니다. Java 힙 공간 오류가 발생하는 경우, 사용자가 수행하는 것보다 많은 오브젝트를 작성한다는 의미입니다. 로컬 범위 내에서 변수 (방법)이 스택에 넣어 도착를 선언 할 때마다 스택 및 힙 설명은 , 나는 this link
좋습니다.
즉 : Type myVariable
은 새 변수 공간을 해당 메소드 스택 프레임으로 푸시하지만 아직 초기화되지 않았으므로 사용할 수 없습니다.
변수에 값을 할당하면 해당 값이 스택의 예약 된 공간에 저장됩니다.
이제 까다로운 부분이 있습니다. 유형이 기본 유형 인 경우, 값은 사용자가 지정한 값을 포함합니다. 예를 들어, int a = 55
은 말 그대로 55로 값을 넣습니다.
그러나 형식이 Object가 아닌 프리미티브가 아닌 경우, 스택에 넣은 값은 실제로 메모리 주소입니다. 이 메모리 주소는 실제 Object가 저장되는 힙의 위치를 가리 킵니다.
개체가 생성시 힙에 배치됩니다.
예는
private void myMethod()
{
Object myObject = new Object();
}
우리는 변수를 선언하고, 그래서 우리는 스택 프레임에 공간을 얻을. 형식은 Object이므로이 값은 개체가 만들어 질 때 할당 된 힙의 공간을 가리키는 포인터가됩니다.