inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 기본편

static에 대해서 궁금합니다!!

231

RapaHello

작성한 질문수 2

1

안녕하세요.

static에 대해 궁금한 것이 있어서 질문을 남깁니다!!

 

static의 생존주기가 메모리에 생성이 되면 Java를 새로 실행이 될 때까지 유지되는 것으로 알고 있어요. 그럼 Heap 영역의 GC처럼 static을 정리해주는 역할을 하는 것이 있을까요? 아니면 개발자가 메모리 누수가 없도록 따로 관리를 해줘야 하나요?

 

이 부분이 궁금합니다~

java 객체지향

답변 1

1

김영한

안녕하세요. RapaHello님

static 변수와 static 변수가 참조하고 있는 인스턴스를 분리해서 생각해야 합니다. 인스턴스는 힙 영역에 존재하지요.

지역 변수는 해당 메서드가 종료되는 시점에 함께 제거됩니다.

static 변수는 자바가 종료될 때 까지 계속 유지됩니다. 따라서 static 변수가 참조하고 있는 인스턴스는 GC의 대상이 되지 않습니다. 왜냐하면 static 변수가 계속 참조하고 있기 때문이지요.

다만 static 변수에 null을 대입하게 되면 static 변수가 참조하고 있던 인스턴스도 더는 참조하는 곳이 없기 때문에 GC의 대상이 될 수 있습니다. (물론 null 대신에 변수에 다른 참조값을 대입하는 경우에도 기존 인스턴스의 참조가 끊어지고 GC의 대상이 될 수 있습니다.)

감사합니다.

2

RapaHello

답변 감사합니다. 주신 답변을 바탕으로 더 공부해보겠습니다 ^^

질문있습니다

0

30

1

1번 문제 질문입니다.

0

35

1

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

0

28

1

9장 상속 문제와 풀이 질문

0

39

1

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

0

50

2

매서드 참조값 반환??

0

67

1

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

0

72

1

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

0

85

1

공부방법

0

77

2

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

0

82

1

static method 질문

0

67

1

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

0

98

1

Method1에서 Student 객체

0

74

1

3강 18. null 질문

0

69

1

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

0

77

1

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

0

97

1

문의

0

104

1

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

0

90

1

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

0

62

1

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

0

74

1

수강기한

0

136

1

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

0

88

1

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

0

87

1

추가 지식 학습

0

153

2