티스토리 뷰

종료자(finalizer)는 예측 불가능하며, 대체로 위험하고, 일반적으로 불필요한다. 종료자는 C++의 소멸자(destructor)와는 다르다는 것을 유념해야 한다. C++의 소멸자는 생성자와 쌍으로 움직이기 때문에 소멸 즉시 호출된다. 하지만 Java에서는 사용되지 않는 객체에 할당된 공간을 GC가 알아서 반환하므로 프로그래머 입장에서 특별히 할 일이 없다. 신경 쓰지 않아도 된다는 말은 다른 말로는 즉시 처리가 되지 않는다는 의미이기도 하다. 따라서 긴급한 작업을 종료자 안에서 처리하면 안 된다.
Java에서는 try-finally를 이용하여 해제되어야 할 상황이라면 객체 종료를 보장하기 위해 반드시 그 즉시 직접 해제해야 한다. Java 1.7부터 try-with-resources 문을 지원하므로 이문 법은 finally 블록을 사용하지 않아도 된다.
'프로그래밍 > Effective Java' 카테고리의 다른 글
| [Effective Java] 09. equals를 재정의할 때는 반드시 hashCode도 재정의하라. (0) | 2019.04.24 |
|---|---|
| [Effective Java] 08. equals를 재정의할 때는 일반 규약을 따르라. (0) | 2019.04.23 |
| [Effective Java] 06. 유효기간이 지난 객체 참조는 폐기하라. (0) | 2019.04.21 |
| [Effective Java] 05. 불필요한 객체는 만들지 마라. (0) | 2019.03.26 |
| [Effective Java] 04. 객체 생성을 막을 때는 private 생성자를 사용하라. (0) | 2019.03.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- Tomcat
- 리눅스 명령어
- React
- 리액트
- 리액트 16
- javascript
- sort algorithm
- 성능분석
- spring
- 회고
- 프로그래머
- 소프트웨어공학
- SQL
- 자바스크립트
- Maven
- effective java
- Eclipse
- Linux 명령어
- Java
- 제주도 3박4일 일정
- 프로그래머스
- 개발환경
- 오라클 내장 함수
- Collection
- 이직
- 정렬 알고리즘
- 오라클
- 경력관리
- 자바
- 제주도 여행
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
글 보관함