본문 바로가기
[Effective Java] 박스화 기본형보다는 기본형을 사용하자. [Effective Java] 박스화 기본형보다는 기본형을 사용하자. - 기본형과 박스화 기본형 간에는 크게 세 가지 차이점이 있다. 1. 기본형은 자신의 값만을 갖는 반면, 박스화 기본형은 식별성(identity)를 갖는다. 두 개의 박스화 기본형이 값은 같지만 == 로 비교하면 다를 수 있다는 것이다. 2. 기본형은 완전한 기능 값만을 갖는 반면, 박스화 기본형은 자신과 대응되는 기본형이 가질 수 있는 모든 기능 값에 추가하여 비 기능 값인 null 을 갖는다. 3. 기본형은 일반적으로 박스화 기본형에 비해 실행 시간과 메모리 사용 효율이 좋다. - == 비교 연산자를 박스화 기본형에 적용하면 대부분 틀린 결과가 나온다. 박스화 기본형을 비교할 떄는 두 개의 지역 변수를 추가하여 primitive 타.. 2017. 2. 2.
[Effective Java] 정확한 계산에는 float 이나 double 타입을 쓰지 말자. [Effective Java] 정확한 계산에는 float 이나 double 타입을 쓰지 말자. - float, double 은 이진 부동소수점 연산을 수행하는데, 넓은 범위의 수에 대해 정확한 근사치를 빨리 산출하기 위해 설계되었다. 그러나 정확한 결과를 제공하지 않으므로, 근사치가 아닌 정확한 결과가 필요한 곳에 사용하면 안된다. float 과 double 타입은 돈 계산에는 특히 부적당하다. - 돈 계산할 때 올바른 답을 구하려면 BigDecimal, int, long 타입 중 하나를 사용해야 한다. - BigDecimal 은 정확한 연산을 제공하지만 두 가지 단점이 있다. 1. 기본 데이터 타입을 사용할 떄보다 불편하다. 2. 실행 속도가 느려진다. - BigDecimal 을 사용하지 않으려면, i.. 2017. 1. 31.
[Effective Java] 불필요한 객체의 생성을 피하자. 불필요한 객체의 생성을 피하자. - 기능적으로 동일한 객체를 필요할 때마다 매번 새로 생성하기보다는 하나의 객체를 재사용하는 것이 좋을 때가 많다. 재사용을 하면 객체 생성에 소요되는 비용(시간과 자원)이 절감되어 실행 속도가 더 빨라지고 코드도 보기 좋게 작성할 수 있다. 불변(immutable) 객체는 항상 재사용이 가능하다. - 불 필요한 객체 생성을 막기 위한 첫번째 좋은 방법은 static 팩토리 메소드를 사용하는 것이다. - 불변객체가 아닌 가변객체더라도 상태가 변경되지 않는 것이 보장되면 재사용 가능하다. - 재사용을 막기 위한 static 팩토리 메소드에서 늦 초기화 ( lazy initialization ) 을 하는 경우가 있는데, 후에 다루겠지만 두드러진 성능 개선이 나타나진 않고, 오.. 2015. 4. 30.
반응형