Java Optional, equals, hashCode 간단히

Android Chen·2021년 11월 11일
0
post-custom-banner

[Optional]

  • null 또는 실제 값을 value로 갖는 wrapper로 감싸서 널포인트익셉션으로부터 자유로워지기 위해 나온 Wrapper 클래스이다.
  • 따라서 Optional을 반환하는 메소드는 절대 null을 갖는 value를 반환해서는 안된다. 또한 Optional은 값을 Wrapping하고 다시 풀고, null일 경우에는 대체하는 함수를 호출하는 등의 오버헤드가 있으므로 성능이 저하될 수 있다.
  • 그렇기 때문에 메소드의 반환 값이 절대 null이 아니라면 Optional을 사용하지 않는 것이 성능저하가 적다. 즉, Optional은 메소드의 결과가 null이 될 수 있으며, 클라이언트가 이 상황을 처리해야 할 때 사용하는 것이 좋다.

[equals]

  • equals메소드는 기본적으로 두개의 객체가 동일한지 검사하기 위해 사용된다. 즉 객체가 참조하는것이 동일한지 확인한다. String 클래스에서 equals메소드가 값을 비교할 때 사용되는 것은 String클래스에서 equals를 오버라이딩 하여 재정의 했기 때문이다.

[hashCode]

  • int hashCode()로 정의된 hashCode 메소드는 실행 중에(Runtime) 객체의 유일한 integer값을 반환한다. Object 클래스에서는 일반적으로 heap에 저장된 객체의 메모리 주소를 반환하도록 되어있다.
profile
https://github.com/Userz1-redd
post-custom-banner

0개의 댓글