2 minute read

Effective Java Item 61. 박싱된 타입

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

  • 박싱된 타입은 null 값을 가질 수 있다.
  • 박싱된 기본 타입에 == 연산자를 사용하면 값이 아니라 주소를 비교한다!
  • null 값을 가진 Integer 를 언박싱하면 NullPointerException 이 발생한다.

박싱된 기본 타입을 써야 하는 경우

  • 컬렉션의 원소, 키, 값으로 쓴다. 컬렉션은 기본 타입을 담을 수 없기 때문
  • 타입 매개변수로 쓴다. 자바에서 기본 타입은 타입 매개변수가 될 수 없다.

scanner 와 Junit

system.in 을 사용하는 scanner 는 Junit 에서 쓸 수 없다.

Stream과 친해지기

  • 스트림은 데이터 소스로 부터 데이터를 읽기만 할 뿐, 변경하지 않는다.

  • 스트림은 한번 사용하면 닫혀서 다시 사용할 수 없다. (파이썬의 제너레이터 같네…)

  • 스트림은 최종 연산이 수행되기 전까지 중간 연산이 수행되지 않는다. 중간 연산을 호출하는 것은 단지 어떤 작업이 수행되어야하는지를 지정해주는 것일 뿐이다. (이건 sqlalchemy 에서 쿼리 만드는 거랑 느낌이 비슷.)

  • parallel()과 sequential()은 새로운 스트림을 생성하는 것이 아니라, 그저 스트림의 속성을 변경할 뿐이다.

Categories:

Updated:

Comments