inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 중급 1편

정적 중첩 클래스의 활용

자바 메모리 관련 질문입니다.

234

공희배

작성한 질문수 4

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
메서드 영역은

  1. 클래스 정보

  2. static 영역

  3. 런타임 상수 풀

이렇게 세가지로 구성되어 있는걸로 알고 있습니다.

 

static 중첩 클래스, static이 없는 내부 클래스는 메모리 구조상 어디에 저장 되나요?

java 객체지향

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

질문 주신 자바의 메모리 구조와 관련하여, 메서드 영역은 클래스 로더에 의해 클래스가 처음 메모리에 로딩될 때 초기화되는 영역으로, 클래스 정보, static 영역 (static 변수), 그리고 런타임 상수 풀을 포함합니다. 말씀해주신 부분에 대한 구체적인 정보는 제공한 정보 내에 명시되어 있지 않아서, 일반적인 자바 내용으로 답변드립니다.

  • static 중첩 클래스(Static Nested Class)는 외부 클래스의 static 멤버처럼 취급되기 때문에, 이도 메서드 영역에 저장됩니다. static 중첩 클래스는 외부 클래스의 인스턴스 없이도 생성될 수 있다는 특징이 있습니다.

  • static이 없는 내부 클래스(Inner Class)는 외부 클래스의 인스턴스와 연결되어 있으며, 외부 클래스의 인스턴스가 생성될 때 힙 영역(Heap)에 함께 저장됩니다. 내부 클래스는 외부 클래스의 인스턴스 멤버처럼 취급되며, 외부 클래스의 인스턴스 필드 및 메소드에 직접 접근할 수 있는 특성을 가지고 있습니다.

따라서, static 중첩 클래스는 메서드 영역에, static이 없는 내부 클래스는 힙 영역에 각각 저장됩니다. 자바의 메모리 관리는 매우 중요한 부분이므로, 각각의 구성요소와 작동 방식을 정확히 이해하는 것이 중요합니다. 추가적인 궁금증이 있으시면, 자바 관련 공식 문서나 인프런의 강의 자료를 참고하시는 것도 좋은 방법입니다.

문제와 풀이

0

25

1

섹션 2 퀴즈 9번

0

34

2

강의노트 내용이 이해가 되지 않아서 문의드립니다.

0

48

1

중급1편, 래퍼클래스 문제와풀이2 로또제너레이터 질문

0

68

1

setVlaue질문

0

95

3

안녕하세요 코딩테스트와 병행하고 싶어서 질문드립니다.

0

95

1

findValue의 파라메터까지 래퍼클래스 배열인 이유가 있을까요?

0

76

1

아래 글처럼 toString() 강의부터 화면이 안보여요

0

99

2

TemporalAdjusters의 lastDayOfNextMonth(), lastDayOfNextYear() 메서드 지원 안함

0

84

2

오타 제보도 되나요?

0

90

2

지역 클래스 예제3 지역변수 질문

0

69

2

래퍼클래스 박싱 출력

0

60

1

자바 equals() 메소드에 대한 물리적 동일성, 논리적 동등성 질문

0

107

3

강의록 오타 제보

0

69

2

자바의 기본 클래스들에 관하여

0

71

1

실무에서 중첩(내부) 클래스 사용하나요?

0

80

1

지역 클래스 - 지역 변수 캡처3

0

55

1

12:30 의 newClassGrade 질문이 있습니다.

0

57

1

날짜와 시간 문제풀이가 막히는데

0

100

2

내부 클래스의 바깥 클래스 참조

0

68

1

스트링 풀, new String()

0

105

3

정적 중첩 클래스 사용 이유

0

97

1

status.getCode() 대신 status.code 사용

1

81

1

메서드의 지역변수명과 내부클래스의 멤버메서드에서의 지역변수명의 중복관련

0

75

1