inflearn logo
강의

Course

Instructor

Kim Younghan's Practical Java - Basics

Java memory structure

자바 메모리 구조와 CPU에 대해 질문이 있습니다.

Resolved

418

annjae4676

92 asked

1

  1. 보통 메모리 구조라고 하면 코드, 데이터, 힙, 스택 영역으로 알고 있습니다. 근데 실행 프로그램이 자바 코드로 이루어져 있다면 메모리 구조는 메서드, 스택, 힙 영역으로 이루어지는건가요?

  2. 메서드 영역에 클래스 즉 코드들이 올라간다 했는데 그러면 CPU가 메서드 영역에 있는 자바 코드들을 하나씩 레지스터로 fetch해서 decode, execution 하는건가요?

  3. CPU가 클래스 코드들을 해석하면서 메서드 호출일 경우 스택 영역에 스택 프레임을 생성하고 인스턴스 생성일 경우 힙 영역에 인스턴스를 생성하는 건가요?

  4. 힙 영역에 인스턴스가 생성된다고 했는데 그러면 필드 코드는 여전히 메서드 영역에 존재하지만 인스턴스가 가지고 있는 필드 값들은 힙 영역에 존재하는 건가요?


    감사합니다.

     

java 객체지향

Answer 1

3

codetrain999

안녕하세요. annjae4676님, 공식 서포터즈 코즈위버입니다.

  1. 자바도 동일한 구조를 갖습니다. 다만 자바는 JVM이라고 하는 가상 환경에서 동작한 다는 점을 유의해야 합니다. JVM은 일종의 가상 OS와 같은 역할을 합니다. JVM 위에서 자바 애플리케이션을 실행하면, 이 앱이 마치 Windows 위에서 앱을 실행한것처럼 JVM 내부의 가상 메모리 공간으로 로드되는거죠.

  2. 3. 1번에서와 같이 CPU가 직접 자바코드와 소통하지 않습니다. CPU는 JVM과 소통합니다. 자바 앱에 대한 제어는 JVM이 하게 됩니다.

     

  1. 네 클래스와 메서드 등의 코드는 데이터 영역에 존재하며 이를 기반으로 새로운 인스턴스를 힙 영역에 생성합니다. 이렇게 생성한 인스턴스는 다른 객체와 공유하지 않는 필드를 갖게 됩니다. (static 등이 아니라면)

감사합니다.

질문있습니다

0

27

1

1번 문제 질문입니다.

0

32

1

음악플레이어 문제 중 코드질문

0

26

1

9장 상속 문제와 풀이 질문

0

38

1

강의 자료에 사소한 오타가 있습니다.

0

49

2

매서드 참조값 반환??

0

66

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

70

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

85

1

공부방법

0

74

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

82

1

static method 질문

0

66

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

97

1

Method1에서 Student 객체

0

73

1

3강 18. null 질문

0

68

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

75

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

97

1

문의

0

104

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

90

1

상속과 그에 따른 메모리 구조 질문

0

62

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

74

1

수강기한

0

136

1

기본편 객체지향 프로그래밍에 대한 정의

0

86

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

87

1

추가 지식 학습

0

152

2