0. Overview Stream API 관련 강의를 듣던 중 Optional 과 연관지어 사용하다가 findAny() 메서드와 findFirst() 메서드의 차이가 궁금해졌습니다. findAny()는 Stream에서 가장 먼저 탐색되는 요소를 리턴하고, findFirst()는 조건에 일치하는 요소들 중 Stream에서 순서가 가장 앞에 있는 요소를 리턴하는데, 둘의 차이가 뭘까요 ? 🔍 findAny() findAny() 메서드는 스트림에서 임의의 요소를 반환합니다. 병렬 처리된 스트림에서는 빠르게 결과를 반환할 수 있고, 요소의 순서를 고려하지 않습니다. 대부분의 경우 병렬 처리된 스트림에서 성능상 이점을 가질 수 있어요. 🔍 findFirst() findFirst() 메서드는 스트림의 첫 번째 요소..
📌 TIL 1) Stream API Stream API는 Data를 파이프 라인 형식으로 처리하기 위한 API 입니다. Collection, 배열, 파일 등 데이터의 집합체(Data Source)에서 각각의 요소를 꺼내서 그것을 처리의 흐름(Stream)에 전달하기 위한 구성을 제공합니다. Stream은 함수 조작을 한 결과를 Stream으로 반환하는 "중간 조작"과 처리 결과를 Data로 반환하는 "종단 조작"이 있다고 합니다. 중간 조작이나 종단 조작 모두 메소드 인수로 함수형 인터페이스를 받는 경우가 많기 때문에 람다식을 이용하면 보다 가독성이 좋은 코드를 작성할 수 있어요. Stream은 for문과 유사한데, 왜 Stream을 쓰는걸까요 ? 그 이유는, 가독성 측면에서 있습니다. for문에 비해 ..
데브코스 참여 2일차로 오늘 배운 내용을 정리해보도록 하겠습니다..! 👍 📌 TIL 1) Object 클래스의 주요 메서드들 모든 Java 객체의 부모 객체인 Object 클래스는 다양한 메서드를 갖고 있습니다. 그 중 주요 메서드로 equals(), hashCode(), toString() 등이 있는데요. 오늘은 이 세가지에 대해 학습했습니다. 각 메서드에 대해 알아보기 이전 "동일성"과 "동등성"에 대해 간단하게 알아보겠습니다. 동일성 동등성 비교 == equals 의미 객체의 메모리 내 주소값을 비교 논리적으로 같은 지위를 지녔는지 즉, 같은 값을 가지는지 [ equals 란? ] 기존의 equals 메서드는 기본적으로 2개의 객체가 동일한지 검사하기 위해 사용됩니다. equals가 구현된 방법은 ..
0. Overview Optional 관련 강의를 듣다가, Optional.of() 와 같은 메서드를 정적 팩토리 메서드라고 듣게 되었습니다. "정적 팩토리 메서드"라는 키워드를 보고 정적 팩토리 메서드가 무엇인지 정리하고자 글을 작성하게 되었어요. 🫡 1. 정적 팩토리 메서드 ? 정적 팩토리 메서드는 객체의 생성을 담당하는 클래스 메서드라고 합니다. (사실 무슨 말인지 아직은 잘 모르겠어요..) 보통 자바를 공부할 때 객체를 생성하기 위해서는 new 키워드를 사용한다고 알고 있을 겁니다. 정적 팩토리 메서드는 new 키워드를 직접적으로 사용하지 않을 뿐, 클래스 내에 선언되어 있는 메서드를 내부의 new를 이용해 객체를 생성해 반환하는 것이라고 합니다. 즉, 정적 팩토리 메서드를 통해 new 를 간접적..