inflearn logo
강의

Khóa học

Chia sẻ kiến thức

CS Knowledge Essentials | Mạng lưới thiết kế mẫu Hệ điều hành Cơ sở dữ liệu Cấu trúc dữ liệu

Q. Tại sao sử dụng từ khóa static và nhược điểm của nó là gì? ★☆☆

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

Đã giải quyết

76

Golden

7 câu hỏi đã được viết

0

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

 

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

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

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

 

 

면접 운영체제 기술면접

Câu trả lời 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

62

2

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

0

89

1

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

0

56

2

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

0

67

1

IPv4가 IPv6보다 빠른 경우

0

98

2

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

0

59

1

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

0

65

2

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

0

64

2

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

0

81

2

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

0

72

2

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

0

56

2

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

0

198

1

회선과 대역폭의 관계

0

60

2

44강 질문

0

92

2

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

0

53

1

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

0

66

2

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

0

69

2

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

0

106

2

CS 공부 하는 법

0

181

2

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

0

137

2

FIN 세그먼트 질문

0

70

2

flux 패턴 질문

0

68

2