람다 표현식(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 |