language/java
-
Optional null은 값이 없음을 나타내는 참조이다. 자바에서 null 참조를 사용하면 다음과 같은 문제들이 발생한다. null 참조에 접근하여 사용하려고 하면 NullPointerException 예외가 발생한다. 자바에서 가장 흔히 발생하는 예외이다. NullPointerException 예외가 발생하지 않도록 인스턴스가 null인지 확인하는 코드를 추가해야 한다. 때문에 return 출구가 여러개 생기거나 중첩된 null 확인 코드가 생겨 가독성이 떨어지게 된다. null은 아무 의미도 표현하지 않기 때문에 값이 없음을 표현하기에는 적절하지 않다. null을 남발하면 어떤 의미로 사용되었는지 알 수 없다. Java 8은 이러한 null 관련 문제들을 해결하기 위해 java.util.Option..
[Java] 옵셔널 (Optional)Optional null은 값이 없음을 나타내는 참조이다. 자바에서 null 참조를 사용하면 다음과 같은 문제들이 발생한다. null 참조에 접근하여 사용하려고 하면 NullPointerException 예외가 발생한다. 자바에서 가장 흔히 발생하는 예외이다. NullPointerException 예외가 발생하지 않도록 인스턴스가 null인지 확인하는 코드를 추가해야 한다. 때문에 return 출구가 여러개 생기거나 중첩된 null 확인 코드가 생겨 가독성이 떨어지게 된다. null은 아무 의미도 표현하지 않기 때문에 값이 없음을 표현하기에는 적절하지 않다. null을 남발하면 어떤 의미로 사용되었는지 알 수 없다. Java 8은 이러한 null 관련 문제들을 해결하기 위해 java.util.Option..
2022.12.21 -
Lambda 람다 표현식은 익명 클래스처럼 이름이 없는 함수이면서 메서드를 인수로 전달할 수 있다. 람다 표현식은 메서드와 달리 특정 클래스에 종속되지 않기 때문에 함수라고 부른다. 람다 표현식은 파라미터, 화살표, 바디로 구성된다. 람다 사용 방법 // 화살표 -> 는 람다의 파라미터 리스트와 바디를 구분한다. 화살표 좌측이 파라미터 리스트, 우측이 바디이다. (Integer i1, Integer i2) -> i1.compareTo(i2); 람다의 표현 방식은 표현식 스타일과 블록 스타일의 두가지로 볼 수 있다. 표현식 스타일에서는 return을 사용하지 않는다. 해당 표현식의 값을 람다의 반환값으로 사용한다. 해당 표현식의 결과가 void이면 람다의 반환 타입은 void가 된다. 블록 스타일을 사용하..
[Java] 람다 (Lambda)Lambda 람다 표현식은 익명 클래스처럼 이름이 없는 함수이면서 메서드를 인수로 전달할 수 있다. 람다 표현식은 메서드와 달리 특정 클래스에 종속되지 않기 때문에 함수라고 부른다. 람다 표현식은 파라미터, 화살표, 바디로 구성된다. 람다 사용 방법 // 화살표 -> 는 람다의 파라미터 리스트와 바디를 구분한다. 화살표 좌측이 파라미터 리스트, 우측이 바디이다. (Integer i1, Integer i2) -> i1.compareTo(i2); 람다의 표현 방식은 표현식 스타일과 블록 스타일의 두가지로 볼 수 있다. 표현식 스타일에서는 return을 사용하지 않는다. 해당 표현식의 값을 람다의 반환값으로 사용한다. 해당 표현식의 결과가 void이면 람다의 반환 타입은 void가 된다. 블록 스타일을 사용하..
2022.12.21 -
Stream 스트림이란 스트림(Stream)은 자바 8 API에 새로 추가된 기능으로 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있다. 선언형으로 처리한다는 말은 데이터를 처리하는 임시 구현 코드 대신 질의로 표현할 수 있다는 것을 말한다. 아래는 스트림의 정의이다. 스트림(Steam)이란 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소로 정의할 수 있다. 스트림은 컬렉션과 같이 특정 요소 형식으로 이루어진 연속된 값 집합의 인터페이스를 제공한다. 컬렉션은 자료구조로 요소의 저장 및 접근 연산이 주를 이루는 반면, 스트림은 표현 계산식이 주를 이룬다. 컬렉션의 주제는 데이터이고, 스트림의 주제는 계산인 것으로 볼 수 있다. 스트림은 컬렉션, 배열, IO 자원 등의 데이터를 제공하는..
[Java] 스트림 (Stream)Stream 스트림이란 스트림(Stream)은 자바 8 API에 새로 추가된 기능으로 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있다. 선언형으로 처리한다는 말은 데이터를 처리하는 임시 구현 코드 대신 질의로 표현할 수 있다는 것을 말한다. 아래는 스트림의 정의이다. 스트림(Steam)이란 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소로 정의할 수 있다. 스트림은 컬렉션과 같이 특정 요소 형식으로 이루어진 연속된 값 집합의 인터페이스를 제공한다. 컬렉션은 자료구조로 요소의 저장 및 접근 연산이 주를 이루는 반면, 스트림은 표현 계산식이 주를 이룬다. 컬렉션의 주제는 데이터이고, 스트림의 주제는 계산인 것으로 볼 수 있다. 스트림은 컬렉션, 배열, IO 자원 등의 데이터를 제공하는..
2022.12.21