최근 포스트

[Effective Java] 7. finalize 를 사용하지 말것

1 분 소요

C++의 경우 생성자와 소멸자를 쌍으로 만들지만 자바의 경우는 GC가 불필요한 메모리를 정리하기 때문에 소멸자가 필요하지 않다. 자바에서 소멸자인 finalize는 절대로 사용하면 안된다. 1. finalize의 단점 자바의 finalize의 경우 예측이 불가능하고, 위험하며 ...

[Effective Java] 65. 예외를 무시하지 마라

최대 1 분 소요

당연한 얘기지만 checked exception은 개발자에게 명시적으로 처리할 예외가 있다는 것을 알리는 것이다. 그렇기 때문에 무시하는 것은 좋지 못하다. 빈 catch문은 예외를 사용하는 목적에 맞지 않게 무시하는 것이다. 처리할 별다른 내용이 없다면 적어도 주석이라도 달아두...

[Effective Java] 64. 실패 원자성 달성을 위해 노력하라.

1 분 소요

일반적으로 메서드 호출이 정상적으로 처리되지 못하고 예외가 발생한 경우 객체의 상태는 메서드 호출 이전과 동일해야 한다. 이를 만족할때 실패원자성(failure atomicity)을 갖췄다고 한다. 1. failure atomicity를 달성 방법

[Effective Java] 60. 표준 예외를 사용하라.

최대 1 분 소요

자바 플랫폼 library에는 대부분 api가 필요로 하는 Runtime Exception이 갖춰져 있다. 수준 높은 코드는 코드 재사용성이 높다. Exception역시 마찬가지다. 참고로 Exception을 재사용 할때는 예외를 발생시키는 조건이 문서에 기술된 것과 일치해야...

[Effective Java] 6. 객체 참조 폐기

1 분 소요

GC가 있는 Java의 경우 메모리 관리를 망각하는 경우가 많다. 하지만 실수에 의해 불필요한 참조가 제거되지 않아 Memory leak이 발생할 수 있다.

[Effective Java] 59. 불필요한 Checked Exception 사용은 피하라.

최대 1 분 소요

Checked Exception을 사용하면 예외처리를 강제함으로써 프로그램의 안전성을 높일 수 있다. (try-catch 문 사용이 필수적이기 때문에) 하지만 너무 남발하면 사용하는 측에서 불편한 api가 된다. 만약 API를 제대로 사용해도 예외적인 상황이 발생하는 것을 피...