2016-07-27 1 views
1

JVM이 OS에서 제공하는 사용 가능한 원시 힙에서 Java 힙을 만드는 방법을 알고 있습니다.네이티브 메모리가있는 Java 스택 매핑이란 무엇입니까?

JVM (java.exe)과 같은 기본 프로세스의 경우 OS는 힙, 스택, 데이터 등의 여러 영역으로 분할 된 주소 공간을 할당합니다.

JVM이 실행되는 자바 프로그램 자바 힙을 포함 (byecode) 일부 어드레스 공간을 할당 다소 마찬가지로

(등

I 해당 자바 힙 JVM에 OS가 제공하는 네이티브 힙 (부분이다 이해 스택 java.exe))

그러나 "스택"부분은 어디에서 왔는지 이해할 수 없습니다.

원시 힙 부분입니까? 자바 힙이 네이티브 힙의 일부인 것처럼 네이티브 스택의 일부입니까?

Java 힙과 원시 힙과 마찬가지로 Java 스택과 기본 스택을 비교하지 않습니까?

도와주세요. 정말 자바에서 스택 메모리를 이해하기 위해 노력하고 있습니다.

+0

가능한 [이 질문] (http://stackoverflow.com/questions/38605147/how-does-jvm-uses-native-stack-manually-for-java-function-call) 및 [this one ] (https://stackoverflow.com/questions/16264118/how-jvm-stack-heap-and-threads-are-mapped-to-physical-memory-or-operation-syste?rq=1) – the8472

+0

가능한 중복 [스택과 힙은 어디서 무엇입니까?] (http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap) – Rupsingh

답변

3

개념적으로 java.exe가 시작되면 프로그램은 OS에 의해 메모리 블록을받습니다. 메모리 블록의 일부는 java.exe 자체에서 사용됩니다. 또 다른 부분은 문자열 상수입니다. 나머지는 힙을위한 것입니다. 새 스레드가 시작되면 해당 스레드는 해당 스택에 사용할 힙에서 메모리를 가져옵니다. 그런 식으로 (스레드) 스택은 힙에 다른 객체를 만드는 것과 개념적으로 다르지 않습니다.

이 내용이 귀하에게 적용되기를 바랍니다.