inflearn logo
강의

Course

Instructor

The Basics of CS Knowledge | Design Patterns Network Operating System Database Data Structure

Q. Why is the static keyword used, and what are its disadvantages? ★☆☆

Static 키워드가 메모리에 올라가는 시점

Resolved

74

Golden

7 asked

0

안녕하세요 선생님! 강의를 듣던 중 static 키워드가 메모리에 올라가는 시점을 확실히 알고 싶어 질문드리게 되었습니다.

 

강의에서 static은 선언하자마자 메모리에 올라간다고 하셨는데요,

그게 클래스 내부에서 static 변수나 함수를 선언했을 때 메모리에 올라간다는 의미가 맞나요?

그러면 100개의 클래스를 작성하고, 거기에 static으로 함수나 변수를 써놓으면 그게 다 사용되지 않아도 메모리에 올라가는 건가요??

 

 

면접 운영체제 기술면접

Answer 2

0

kundol

안녕하세요 ㅎㅎ

제 설명이 부족했던 거 같습니다. 선언 -> 객체 x 해당 클래스 호출

이라는 의미이며 해당 부분은 다음과 같이 보완될 예정입니다.

image.png

 

 

그러면 100개의 클래스를 작성하고, 거기에 static으로 함수나 변수를 써놓으면 그게 다 사용되지 않아도 메모리에 올라가는 건가요??

-> 해당 클래스 기반 객체 생성 하지 않더라도 클래스 참조되면 메모리에 다 올라가게 됩니다.

 


 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


0

communityai8509

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

질문해주신 static 키워드에 관련된 내용에 대해 답변드리겠습니다. static 멤버는 클래스가 처음 로드될 때 초기화되면 메모리에 올라가게 됩니다. 이는 클래스 로더에 의해 특정 클래스가 처음으로 사용될 때 발생하는데, 클래스의 정적 멤버와 초기화 블록이 함께 메모리에 로드됩니다.

static 멤버 초기화 시점

  1. 클래스 로딩 시점: JVM이 해당 클래스를 처음 사용할 때 로드합니다. 그 시점에서 static 변수와 static 초기화 블록이 실행됩니다.
  2. 지연 초기화: 실제로 클래스가 사용되기 전까지는 이러한 초기화가 지연될 수 있습니다.

그래서 100개의 클래스를 작성했다고 하더라도, 그 클래스들이 실제로 사용되기 전까지는 메모리에 올라가지 않습니다. 한 번 특정 클래스가 사용되면, 해당 클래스의 모든 static 멤버들이 메모리에 올라가게 되죠. 이는 자원 낭비를 최소화하기 위한 JVM의 메커니즘입니다.

자세한 설명이 필요하시다면 Lazy Holder 패턴에서의 static이 잘 모르겠어요 질문과 답변을 참고하시면 도움이 될 것입니다. 이 자료에서 static 멤버의 초기화와 로딩 메커니즘을 상세히 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

REST API (Self-descriptive messages)

0

22

1

시스템 엔지니어 관련 질문입니다.

0

50

2

오버라이딩 관련하여 질문드립니다.

0

61

2

교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유

0

88

1

렌더 트리, 렌더 레이어와 그래픽 레이어

0

55

2

로컬스토리지, 세션스토리지, 쿠키의 공통점

0

66

1

IPv4가 IPv6보다 빠른 경우

0

97

2

UDP가 전송계층의 역할을 못하는 건 아닌지

0

58

1

Path MTU 발견하였음에도 패킷 분할이 필요한 이유?

0

65

2

교재의 LFU 알고리즘에서 6번이 왜 히트인가요?

0

62

2

페이지 교체 알고리즘? 프레임 교체 알고리즘?

0

80

2

헤더 압축부분 질문드립니다

0

71

2

공유 캐시 관련 질문 드립니다.

0

55

2

컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?

0

198

1

회선과 대역폭의 관계

0

59

2

44강 질문

0

91

2

버스 토폴로지 질문 있씁니다

0

52

1

자바스크립트, xml 문법 관련

0

63

2

전략패턴과 의존성주입 질문

0

68

2

Model이 비즈니스 로직을 담당하나요?

0

105

2

CS 공부 하는 법

0

180

2

큰돌님 블로그에 개념정리해서 올려도될까요!

0

136

2

FIN 세그먼트 질문

0

69

2

flux 패턴 질문

0

67

2