HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🍗
[New] 조규현팀
/
🐾
DailyLog
/
Optional 에 관하여...

Optional 에 관하여...

태그
Java
날짜
Apr 18, 2022 09:00 AM
해결 상태
완료
Thrower
↓ 멘토님이 주신 링크
homoefficio.github.io
https://homoefficio.github.io/2019/10/03/Java-Optional-%EB%B0%94%EB%A5%B4%EA%B2%8C-%EC%93%B0%EA%B8%B0/

Optional 키워드

call by value
→ JVM
→ 메모리 구조
→ heap, stack...
자바는 call by 무엇인지 객체지향이란 객체지향의 4대 특성 객체지향을 어떻게 하면 잘하는가? 여기에 대해서 기본적으로 대답이 나와야 된다고 생각합니다. 여러분 다 대답하실수 있죠? 그림으로도 그려줘~
 

📝 Optional 정리

    1.  orElse(new ...) 대신 orElseGet(() -> new ...)
      1. orElse(...)에서 ...는 Optional에 값이 있든 없든 무조건 실행된다. 따라서 ...가 새로운 객체를 생성하거나 새로운 연산을 수행하는 경우에는 orElse() 대신 orElseGet()을 써야한다.
        • 예제코드
        @Test @DisplayName("orElse vs orElseGet 차이는?") void orElseVsOrElseGet() { Person person = new Person("hello"); Optional<Person> opt = Optional.ofNullable(person); // 💩 값이 빈값이 아님에도 실행된다. opt.orElse(new Person("orElse executed")); // ✨ 값이 빈값이면 실행되지 않는다. opt.orElseGet(() -> new Person("orElseGet executed")); } class Person { public String name; public Person(String name) { logger.info("created Person : {}", name); // ⚡️ 실행 여부 체크를 위한 로그 this.name = name; } }
        ↓ orElseVsOrElseGet() 실행 결과
        ...created Person : hello ...created Person : orElse executed
        • 참고 링크
        Optional 클래스의 orElse와 orElseGet에 대한 정리
        이번 글에서는 Java 8 에서부터 지원하기 시작한 Optional 클래스의 orElse와 orElseGet 메소드에 대해서 정리를 해보려한다. 이 글에서는 Optional 클래스가 무엇인지에 대해서는 언급하지는 않고 다만 orElse와 orElseGet 메소드 이 두 개의 메소드에 대해서만 집중해서 보려고 한다. 먼저 이 2개의 메소드가 하는 역할은 Optional 클래스 객체가 가지고 있는 실제 값이 null 일경우 무슨 값으로 대체해서 return 해줘야 하는 지를 정의한다.
        Optional 클래스의 orElse와 orElseGet에 대한 정리
        https://zgundam.tistory.com/174
        Optional 클래스의 orElse와 orElseGet에 대한 정리
    1. 단지 값을 얻을 목적이라면 Optional 대신 null 비교
        • 면접용 한줄 멘트