Java8 특징_v.01

hunu.lee·2020년 12월 12일
0
  • 함수형 프로그래밍
    함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.
  • 람다 표현식(Lambda Expression)
    람다 표현식이란 익명 클래스의 한 개의 메소드를 식으로 표현한 것이다.
    여기서 익명 클래스란 말 그대로 이름이 없는 클래스로써, 단 한 개의 객체만을 생성할 수 있는 일회용 클래스이다. (자바는 클래스의 선언과 동시에 객체를 생성하기 때문에 이름이 없으면 선언되는 그 순간에만 사용될 수 있다.)

자바에서는 화살표(->) 기호를 사용하여 람다 표현식을 작성할 수 있다.
문법은 아래와 같다.
(매개변수 목록) -> {함수 몸체}

자바에서 람다 표현식을 사용할 때 주의할 점은 다음과 같다.
1. 매개변수가 한 개인 경우 ()를 생략할 수 있다.
2. 함수 몸체가 한 개의 명령문으로만 이루어진 경우에는 {}를 생략할 수 있다.
3. 함수 몸체가 한 개의 return 문으로만 이루어진 경우에는 {}를 생략할 수 없다.

  • 함수형 인터페이스
    함수형 인터페이스란 람다 표현식을 하나의 변수에 대입할 때 사용하는 참조 변수의 타입을 의미한다. 함수형 인터페이스는 추상 클래스와 달리 단 한 개의 추상 메소드만을 가져야 한다. 또, @FunctionnalInterface같은 어노테이션(annotation)을 사용하여 함수형 인터페이스임을 명시할 수 있다. 이 어노테이션을 사용하면 컴파일러는 해당 인터페이스를 함수형 인터페이스로 인식한다.
  • Stream API
    스트림 API는 데이터를 추상화해서 다루므로, 다양한 형태로 저장된 데이터를 위한 공통된 방법을 제공한다.

스트림 API는 다음과 같은 특징을 가진다.
1. 스트림은 외부 반복을 통해 작업하는 컬렉션과는 다르게 내부 반복을 통해 작업을 수행한다.
2. 스트림은 단 한번만 사용할 수 있다. (= 재사용 불가능)
3. 스트림은 원본 데이터를 변경하지 않는다.
4. 스트림의 연산은 필터-맵(filter-map) 기반의 API를 사용하여 lazy 연산을 통해 성능을 최적화한다.
5. 스트림은 parallelStream() 메소드를 통해 간단한 병렬처리를 지원한다.

스트림 API는 다음과 같이 세 가지 단계에 걸쳐서 동작한다.
1. 스트림 생성
2. 스트림 중개 연산 (filter)
3. 스트림 최종 연산 (map)

profile
지금 이 순간을 즐기는 사람

0개의 댓글