ChenDroid.log
로그인
ChenDroid.log
로그인
Java Optional, equals, hashCode 간단히
Android Chen
·
2021년 11월 11일
팔로우
0
Java
0
[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에 저장된 객체의 메모리 주소를 반환하도록 되어있다.
Android Chen
https://github.com/Userz1-redd
팔로우
이전 포스트
프로그래머스 Lv3 기지국 설치 Java
다음 포스트
Java Garbage Collection의 모든것 -1편
0개의 댓글
댓글 작성