TIL: JAVA
Effective Java Item 61. 박싱된 타입
자바의 기본 타입 int, double, boolean 에는 각각 이에 대응하는 참조 타입이 있다. Integer, Double, Boolean 이다. 이를 박싱된 기본 타입이라고 한다.
- 박싱된 타입은 null 값을 가질 수 있다.
- 박싱된 기본 타입에 == 연산자를 사용하면 값이 아니라 주소를 비교한다!
- null 값을 가진 Integer 를 언박싱하면 NullPointerException 이 발생한다.
박싱된 기본 타입을 써야 하는 경우
- 컬렉션의 원소, 키, 값으로 쓴다. 컬렉션은 기본 타입을 담을 수 없기 때문
- 타입 매개변수로 쓴다. 자바에서 기본 타입은 타입 매개변수가 될 수 없다.
scanner 와 Junit
system.in 을 사용하는 scanner 는 Junit 에서 쓸 수 없다.
Stream과 친해지기
-
스트림은 데이터 소스로 부터 데이터를 읽기만 할 뿐, 변경하지 않는다.
-
스트림은 한번 사용하면 닫혀서 다시 사용할 수 없다. (파이썬의 제너레이터 같네…)
-
스트림은 최종 연산이 수행되기 전까지 중간 연산이 수행되지 않는다. 중간 연산을 호출하는 것은 단지 어떤 작업이 수행되어야하는지를 지정해주는 것일 뿐이다. (이건 sqlalchemy 에서 쿼리 만드는 거랑 느낌이 비슷.)
-
parallel()과 sequential()은 새로운 스트림을 생성하는 것이 아니라, 그저 스트림의 속성을 변경할 뿐이다.
Comments