극동대학교\AI컴퓨터공학과\JAVA

4) 자바 8

sundori 2023. 12. 23. 19:30

자바 8에서의 변경된 사항.

1. 람다 표현식(lambda expression)

람다 표현식은 함수형 프로그래밍을 지원하기 위해 도입된 새로운 표현식이다. 람다 표현식은 메서드를 하나의 식으로 표현할 수 있게 해 주고  람다 표현식의 기본 문법은 다음과 같다.

(매개변수) -> 식

예를 들어, 다음과 같은 메소드가 있다고 가정해 보면. 이 메서드는 배열에 저장된 짝수를 출력한다.

 

public void printEvenNumbers(int[] numbers) {
    for (int number : numbers) {
        if (number % 2 == 0) {
            System.out.println(number);
        }
    }
}

이 메소드를 람다 표현식으로 바꾸면 다음과 같다.

public class Main {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        Arrays.stream(numbers)
                .filter(number -> number % 2 == 0)
                .forEach(System.out::println);
    }
}

이 코드는 Arrays.stream() 메소드를 사용하여 배열을 스트림으로 변환한다. 그런 다음 filter() 메소드를 사용하여 짝수 숫자만 필터링하고, 마지막으로 forEach() 메소드를 사용하여 필터링된 숫자를 출력한다.

람다 표현식을 사용하면 코드를 더 간결하고 명확하게 작성할 수 있고 또한, 코드의 가독성과 유지보수성을 향상할 수 있다.

 

2. 스트림 API(stream API)

스트림 API는 데이터의 추상화를 위한 API이다. 스트림 API를 사용하면 데이터를 하나의 흐름으로 처리할 수 있는데, 스트림 API의 기본적인 사용법은 다음과 같다.

// 스트림을 생성합니다.
Stream<Integer> numbers = Arrays.stream(new int[] {1, 2, 3, 4, 5});

// 스트림을 처리합니다.
numbers.filter(number -> number % 2 == 0)
    .forEach(System.out::println);

 

3. java.time 패키지

java.time 패키지는 Joda-Time을 기반으로 한 새로운 날짜와 시간 API이다. java.time 패키지는 Date와 Calendar 클래스의 문제를 해결하기 위해 도입되었다.

java.time 패키지의 주요 특징은 다음과 같다.

  • 날짜와 시간을 표현하기 위한 새로운 클래스와 인터페이스를 제공합니다.
  • 윤초와 같은 특수한 상황을 고려하지 않는다.
  • 월을 1월부터 12월까지로 표현하지만 0부터 11로 표현해야한다.
  • Calendar 인스턴스는 불변 객체(immutable object)가 아니라서 값이 수정될 수 있다.

java.time 패키지를 사용하면 날짜와 시간을 보다 직관적이고 효율적으로 처리할 수 있다.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();

        System.out.println("올해는 " + today.getYear() + "년입니다.");

        LocalDate otherDay = today.withYear(1982);

        System.out.println("올해는 " + otherDay.getYear() + "년입니다.");
    }
}
---------------------------------------

올해는 2023년입니다.
올해는 1982년입니다.

4. 나즈혼(Nashorn)

나즈혼은 자바스크립트의 새로운 엔진인데, 나즈혼은 자바의 컴파일러와 인터프리터를 사용하여 자바스크립트를 실행한다.

나즈혼의 주요 특징은 다음과 같다.

  • 자바의 객체와 메모리 모델을 지원한다.
  • 자바의 클래스와 메서드를 호출할 수 있다.
  • 자바의 라이브러리를 사용할 수 있다.

나즈혼을 사용하면 자바와 자바스크립트를 보다 쉽게 통합할 수 있는데, 이러한 변경 사항은 자바 프로그래밍에 큰 영향을 미쳤다. 람다 표현식과 스트림 API는 함수형 프로그래밍을 보다 쉽게 구현할 수 있도록 해주었고 java.time 패키지는 날짜와 시간을 처리하는 방식을 크게 개선했다. 나즈혼은 자바와 자바스크립트의 통합을 보다 쉽게 만들었다.

 

 

'극동대학교\AI컴퓨터공학과\JAVA' 카테고리의 다른 글

3) 자바 입출력문  (0) 2023.12.23
2) 자바 프로그램  (0) 2023.12.20
1) 자바 개념  (0) 2023.12.20
Arrays.  (0) 2023.05.17
Stream API이란.  (0) 2023.05.17