DEV ℧ Developer Diary

[EffectiveJava] item62 - 다른 타입이 적절하다면 문자열 사용을 피하라

문자열(String)은 텍스트를 표현하도록 설계되었고, 그 일을 아주 멋지게 해낸다.

그렇지만 문자열은 워낙 흔하고 자바가 또 잘 지원해주어 원래 의도하지 않은 용도로 쓰이는 경향이 있다.

이러한 사례를 정리해 보도록 하자.

적절하지 않은 문자열의 사용

문자열은 다른 값 타입을 대신하기 적합하지 않다.

많은 사람이 파일,...

[EffectiveJava] item61 - 박싱된 기본 타입보다는 기본 타입을 사용하라

자바의 데이터 타입은 크게 두가지로 나누어 진다.

  • 기본타입 : int, double, boolean…
  • 참조타입 : String, List…

각각의 기본 타입에는 대응하는 참조 타입이 하나씩 있으며, 이를 박싱된 기본 타입이라고 한다. int, double, boolean에 대응하는 박싱된 기본타입은 Integer, Double, Boolean 이다.

박싱된 기본타입

오토박싱과...

[EffectiveJava] item60 - 정확한 답이 필요하다면 float와 double은 피하라

float와 double 타입은 과학과 공학 계산용으로 설계되었다. 이진 부동소수점 연산에 쓰이며, 넓은 범위의 수를 빠르게 정밀한 ‘근사치’로 계싼하도록 세심하게 설계되었다.

정확한 결과가 필요할 때는 사용하면 안 된다. float와 double 타입은 특히 금융 관련 계산과는 맞지 않는다. 0.1 혹은 10의 음의 거듭 제곱 수(10⁻¹, 10⁻² 등)를...

[EffectiveJava] item59 - 라이브러리를 익히고 사용하라.

무작위 정수를 하나 생성하고 싶다고 해보자. 많은 프로그래머가 다음과 같은 짤막한 메서드를 만들곤 한다.

static Random rnd = new Random(); static int randon (int n) {...

[EffectiveJava] item58 - 전통적인 for 문보다는 for-each 문을 사용하라

Item45에서 정리 했듯이, 스트림이 제격인 작업이 있고 반복문이 제격인 작업이있다.

이번에는 반복문(전통적인 for문)이 제격인 경우에 대해 정리해보도록 하자.

전통적인 for 문

다음은 컬렉션과 배열을 순회하는 전통적인 for문의 예시이다.

컬렉션 순회하기 - 더 나은 방법이 있다.

for (<span...