Java 덤프와 스택의 차이점 상세 정보
구별
자바 중적과 창고의 차이는 당연히 면접에서 흔히 볼 수 있는 문제이다. 아래 몇 가지는 그 구체적인 차이이다
각자가 그 직무를 담당하다
가장 주요한 차이점은 창고 메모리가 국부 변수와 방법을 저장하는 데 사용된다는 것이다.
메모리는 Java의 객체를 저장하는 데 사용됩니다.구성원 변수, 국부 변수, 클래스 변수를 막론하고 그들이 가리키는 대상은 메모리에 저장된다.
고유 또는 공유
창고 메모리는 하나의 라인에 귀속되고 모든 라인에는 창고 메모리가 있습니다. 그 저장된 변수는 그 소속 라인에서만 볼 수 있습니다. 즉, 창고 메모리는 라인의 개인 메모리로 이해할 수 있습니다.
메모리에 쌓인 대상은 모든 라인에 표시됩니다.메모리 중의 대상은 모든 라인에 접근할 수 있습니다.
예외 오류
스택 메모리에 사용 가능한 공간 저장 방법 호출과 국부 변수가 없으면 JVM은 자바를 던집니다.lang.StackOverFlowError.
메모리 더미에 사용할 수 있는 공간 저장소가 없는 경우 JVM은 자바를 던집니다.lang.OutOfMemoryError.
공간 크기
창고의 메모리는 더미 메모리보다 훨씬 작다. 만약 당신이 귀속을 사용한다면, 창고는 곧 가득 찰 것이다.재귀화가 제대로 이루어지지 않으면 StackOverFlowError 문제가 발생할 수 있습니다.
- Xss 옵션을 통해 창고 메모리의 크기를 설정할 수 있습니다. -Xms 옵션은 더미의 시작 크기를 설정할 수 있습니다. - Xmx 옵션은 더미의 최대 값을 설정할 수 있습니다.
이것이 바로 자바의 무더기와 창고의 차이이다.이 문제를 잘 이해하면 개발 중인 문제를 해결하고 메모리와 창고 메모리 사용을 분석하며 심지어 성능 개선에도 도움이 된다.
기본값 보기(Updated)
더미의 기본값을 보고 다음 코드를 사용하십시오. 여기서 Initial HeapSize는 맨 처음에 쌓인 더미의 크기이고 Max HeapSize는 더미의 최대값입니다.
13:17 $ java -XX:+PrintFlagsFinal -version | grep HeapSize
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 134217728 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 2147483648 {product}
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
스택의 기본값을 봅니다. 여기서 ThreadStackSize는 스택 메모리 크기입니다.
13:21 $ java -XX:+PrintFlagsFinal -version | grep ThreadStackSize
intx CompilerThreadStackSize = 0 {pd product}
intx ThreadStackSize = 1024 {pd product}
intx VMThreadStackSize = 1024 {pd product}
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
번역문 정보원액 그대로의 영어 원문: http://javarevisited.blogspot.com.au/2013/01/difference-between-stack-and-heap-java.html.
번역문은 원문의 기초 위에서 수정, 정리, 삭제를 진행하였다.만약 흥미가 있으면 원문을 방문할 수 있다.P.S. 주소가 벽에 연결되었습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.