Java/History

Java 8 대표 코드

양승길 2024. 12. 16. 16:47

람다 표현식(Lambda Expressions)

// 도입 전
Runnable runnable = new Runnable(){
	public void run(){
    	System.out.println("Lambda");
    }
}

// 도입 후
Runnable runnable = () -> {
	System.out.println("Lambda");
};

스트림 API(Stream API)로 효율적인 데이터 처리

List<User> users = dao.getUserList();
List<DormantUser> dormantUsers = users.stream().map(user->{
		DormantUser mapped = DormantUser.builder()
                                        .userName(user.getUserName)
                                        .userStatus(user.getUserStatus)
                                        .build();
		return mapped;
	}).collect(Collectors.toList());

메서드 참조(Method References) 추가

List<String> users = Arrays.asList("Tom", "Chris", "Scarlett", "Robert");

// 1. Lambda
users.stream().forEach(user -> System.out.println(user));

// 2. static method reference
users.stream().forEach(System.out::println);

인터페이스의 디폴트 메서드(Default Methods) 도입.

  • 클래스의 다중 상속과 상태(멤버 변수)의 필요 여부, 객체 생성 및 확장 가능성을 고려하여 사용
public interface Vehicle {
    public default void doSomething(int n) {
        System.out.println("doSomething(Vehicle)");
    }
}

public interface Movable {
    public default void doSomething(int n) {
        System.out.println("doSomething(Movable)");
    }
}

public static class Car implements Vehicle {
    @Override
    public void doSomething(int n) {
        System.out.println("doSomething(Car)");
    }
}

public static class MovableCar extends Car implements Movable {
}

public static void main(String args[]) {
    MovableCar car = new MovableCar();
    car.doSomething(10);
}

// 실행 결과
// doSomething(Car)

새로운 날짜 및 시간 API인 java.time 패키지 도입.

Instant instant = Instant.now();
ZonedDateTime zonedDateTime = instant.atZone(ZoneOffset.UTC);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = zonedDateTime.format(formatter);
System.out.println("현재 시간 (UTC): " + formattedDateTime);
반응형

'Java > History' 카테고리의 다른 글

Java 17 대표 코드  (0) 2024.12.16
Java 15, 16 대표 코드  (0) 2024.12.16
Java 12~14 대표 코드  (0) 2024.12.16
Java 11 대표 코드  (0) 2024.12.16
Java 9, 10 대표 코드  (0) 2024.12.16