DAY 10, 11 Mission 2:
5장까지 총 23개의 연습문제가 있습니다.
이 중 한 문제를 골라 풀이과정을 작성해 주세요.
💡 연습문제 23번
Q. 일부 자바 개발자들은 어떤 객체를 사용한 다음에는 반드시 그 객체의 변수에 NULL을 넣곤 한다. 왜 이것이 좋은 생각일까?
✅ 풀이과정
나의 답변
객체 사용후 NULL 값을 넣는 것은 그 객체가 어떤 값을 가지고 메모리를 사용하는 것을 방지한다. 그리고 이렇게 객체를 관리하는 것은 사용되지 않을 객체의 리소스 할당을 없애 리소스 균형을 유지하는데에 있다.
Java의 메모리 관리 레퍼런스(Package java.lang.ref)
객체 생성이 빈번한 큰 프로그램에서는 객체에 사용 후 null 값을 넣는게 효율적이다. 그 이유는 null 값이 할당된 객체는 GC가 발생하면 그 객체를 회수해 다시 객체를 사용할 수 없게 된다. Java의 참조유형은 GC 실행 대상여부, 시점에 따라 나눌 수 있다. StrongReference, SoftReference, WeakReference, PhantomReference으로 갈수록 점점 GC 대상과 실행시간이 당겨진다.
책의 정답
어떤 참조가 null을 가리키게 하면, 그 참조가 가리키는 객체에 대한 포인터의 개수는 하나 감소한다. 이 개수가 0이 되면 그 객체는 쓰레기 수집의 대상이 된다. 참조에 null을 넣는 것은, 실행시간이 길어서 메모리 사용량이 시간이 지날수록 늘어나지 않도록 프로그래머가 신경써야 하는 프로그램의 경우 의미있는 일이 될 수 있다.
✅ 참고링크
- [Java] 객체 사용후 null 할당! 해야하나 말아야 하나? :: 개발은 전투다
- 투덜이의 리얼 블로그 :: Java의 메모리 관리 - Weak, Soft, Phantom reference 예제
- (Java) 참조 유형 (Strong Reference/ Soft Reference/ Weak Reference/ Phantom References)
'CS' 카테고리의 다른 글
[실용주의 프로그래머] 7장. 코딩하는 동안 (0) | 2022.03.31 |
---|---|
[실용주의 프로그래머] 6장. 동시성 (0) | 2022.03.30 |
2022-03-24 RSS Feed (0) | 2022.03.24 |
[실용주의 프로그래머] 5장. 구부러지거나 부러지거나 (0) | 2022.03.24 |
[실용주의 프로그래머] 4장. 실용주의 편집증 (0) | 2022.03.23 |
댓글
최근에 올라온 글
TAG
- gradle
- ubuntu
- 북클럽
- intellij
- git연동
- EC2
- 실용주의프로그래머
- putty
- gradle build
- 노마드코더
- 호스팅영역
- 정보처리기사
- 정보처리기사 실기
- JIRA
- jdbc
- 정보처리기사 필기
- 기술블로그
- 웹페이지만들기
- java
- 배포
- spring
- filezila
- AWS
- SQLD
- 독서후기
- LifecycleException
- 개발도서
- IT 5분 잡학사전
- 노개북
- 오늘의코딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함