주제
목차
내용
번외
- isEmpty() 보다 1.orElseThrow 및 2.orElse | orElseGet 순으로 사용한다.
김병연
null 이란?
물리적으로 어떠한 메모리도 가르키지 않는 상태를 말한다.
java에서 null은 참조형 타입의 기본 값이다.
8가지 기본형 타입을 제외하고 참조형이 기본으로 가질 수 있는 타입이다.
null은 기본형이나 참조형과 같은 데이터 타입으로 구분되는 것이 아니다! 단순히 참조형 타입에게 부여할 수 있는 특수한 값이다.
심지어 형변환도 가능함.
null 왜 안될까?
- 자바는 포인터라는 개념을 숨기고 있다. 그러므로 쉽게
NullPointerException
쉽게 만날 수 있게 되었다.
- 래퍼선스가 가르키는 방향(포인터)이 없는 null 참조는 존재 자체로 에러의 근원이다. [
에러와 오류는 다름.
]
- null 참조는 컴파일 시점에 알 수 없다.(원시타입은 컴파일 시점에 알수 있다.)
- 컴파일 시점에 오류를 발견하는것이 가장 좋다!!!
👀 확인
optional이 뭐지?
자바에서 라이브러리 메서드가 반환할 결과값이 ‘없음’을 명백하게 표현할 수 있는 키워드이다.
- 즉, 값이 존재할 수도, 존재하지 않을 수도 있는 값을 포장한 객체
Optional 왜 사용해야 하지?
- 우리가 만드는 시스템에 해가 될 수 있는 NullPointerException 오류!!! 를 방지하기 위함이다.
메서드 반환할 결과값 또는 변수가 ‘값이 없음⚠️’을 명백하게 표현할 필요가 있고,
null
을 반환하면 에러(NullPointer Exception
)를 유발할 가능성이 높은 상황에서 메서드의 반환 타입으로 Optional
을 사용하자는 이 Optional
을 만든 주된 목적이다.주의 사항⚠️
언제 사용할까?
멘토님 링크 참조하세요 ‼️