Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- MSA
- 생산자 소비자 패턴
- spring boot 4.x.x
- saga pattern
- java 정렬
- 배치
- Java
- 스프링 배치
- spring boot
- java21
- Spring Cloud Netfilx Eureka
- 멀티스레드
- 타입스크립트
- 디자인패턴
- 알고리즘
- 스레드
- spring boot 4.0.0
- 키클락
- Spring Boot Actuator
- Spring Boot 4.0
- 디자인 패턴
- spring batch
- zipkin
- spring boot 3.x.x
- TypeScript
- spring cloud
- 사가 패턴
- JPA
- thread
- Resilinece4j
Archives
- Today
- Total
PSD( Private-Self-Development )
JAVA 8 변경점 본문
JAVA 8 은 드디어 기반이 다져진 느낌이다.
1. 람다식 지원
기존에는 객체지향 프로그래밍만 가능했다면 이제는 함수지향 프로그래밍도 지원한다.
// 기존
new Thread(new Runnable() {
@Override
public void run() {...
}).start();
// 람다
new Thread(() -> System.out.println("Start!")).start();
2. Stream API 지원
이제 다건 데이터 타입(LIst, Map 등) 을 사용할 때, 어떻게(시작은 뭐부터 끝나는건 어디까지 와 같이)를 명령하지 않고
무엇을 할건지만 선언
List<String> names = users.stream()
.filter(user -> user.getAge() >= 20)
.map(user -> user.getName().toUpperCase())
.collect(Collectors.toList());
// fluent API 방식
3. Optional 추가
기존의 운영 환경은 NullPointExeption 이 비일비재 하게 터졌으나( 혹은 null 체크하는 방어 코드 필요 )
이에 대한 대처를 미리 가능하게 하는 방패가 생겼다.
Optional<User> userOpt = Optional.ofNullable(getUser());
// 값이 있으면 꺼내고, 없으면 "Unknown"을 써라
String name = userOpt.map(User::getName).orElse("Unknown");
4. LocalDate 추가
기존에 불편하던 Date, Calendar 를 이제는 사용하지 않아도 되도록 개선된
LocalDate 추가 (불변 객체, 메서드 직관적)
5. Interface 에 default 메서드 추가
이제는 인터페이스에 구현되어 있는 함수를 추가할 수 있다.
implements 한 클래스들은 이 함수를 따로 구현 안 해도 되고 필요하면 오버라이딩 하여 사용하면 된다.
public interface Human{
void run();
default void fly() {
System.out.println("날아갑니다.");
}
}'Backend > JAVA' 카테고리의 다른 글
| JAVA 21 변경점 (0) | 2026.01.27 |
|---|---|
| JAVA 17 변경점 (0) | 2026.01.27 |
| JAVA 11 변경점 (0) | 2026.01.27 |
| 가비지 컬렉션(Garbage Collection) (0) | 2023.07.12 |
| 생성자 주입을 사용하는 이유 (0) | 2023.01.30 |