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 | 29 | 30 |
Tags
- #크랙미 5번
- #심플즈 크랙미
- #보안뉴스
- springframework
- #파밍
- #리버싱
- Spring
- Easy
- #크랙미
- GraphQL
- #심플즈
- #크랙미4번
- leetcode
- #고클린
- #abex크랙미
- java8
- #크랙미2번
- #크랙미 9번
- java
- #크랙미 10번
- #abex크랙미4번
- #abex
- #보안이슈
- #크랙미3번
- 리버싱
Archives
- Today
- Total
Halo World
JAVA 버전별 개선점 (7, 8, 11) 본문
Java 7 개선점
- 다이아몬드 연산자
- switch문에 String 자료형 사용 가능
- try-with-resources 등장
- AutoCloseable 인터페이스로 자원의 자동 회수가 가능하다. (대부분의 자원이 AutoCloseable을 구현하고 있음)
- muti exception catch 가능
참고
- johanneslee.github.io/articles/page7/
Java 8 개선점
- Lamda 표현식 사용 가능 : 함수형 프로그래밍이 가능해짐
- 함수형 프로그래밍의 장점은?
- -> 높은 수준의 추상화 가능 / 함수 단위의 코드 재사용 수월 / 불변성 지향 (프로그래밍의 동작을 예측하기 수월함) / 직관적임
- Stream (https://jeong-pro.tistory.com/165)
- 스트림이란? 컬렉션, 배열 등의 저장요소를 하나씩 참조하며 람다식 (함수형 인터페이스)를 적용하여 반복적으로 처리할 수 있도록 해주는 기능
- 장점 : 코드가 깔끔해지고 가독성이 높아진다.
- 단점 : 에러가 발생한 경우, 에러 발생시점을 찾기 어려운 경우도 있음. 과도하게 사용하는 경우 가독성이 떨어지고, 유지보수가 힘들어진다.
- Interface 기능 향상
- 기존 : public abstract method 만 허용
- Java 8 : static, default method 사용 가능 (Default Method의 장점은 하위호환성과 유연성, static method의 장점은 직관성, 유틸메서드로 사용이 편리하다)
- https://jeong-pro.tistory.com/m/209?category=793347
- Method 참조
- 참조로 메소드를 넘길 수 있음
- 대부분의 경우 람다보다 코드가 더 간결해진다
- Optional
- NPE 보완 기능으로 Optional 등장
- https://jeong-pro.tistory.com/m/209?category=793347
Java 11 개선점
- Nested-Based Access Control
- 기존에는 nestmate 끼리 private 멤버 변수에 접근하려면 컴파일러가 중간에 bridge method를 만들어야 했으나, nest 라는 새로운 class file 개념을 도입하여 하나의 중첩 클래스이지만 서로 다른 클래스 파일로 분리하여 bridge method의 도움 없이 서로의 private 멤버 변수에 접근할 수 있도록 함
- ZGC라는 새로운 GC 등장
- 성능적인 향상이 있었음, 특히 GC가 동작할때 발생하는 일시 정지 시간이 최소화되었고, 대량의 메모리를 최대한 효율적으로 사용
- https://johngrib.github.io/wiki/java-gc-zgc/
- 새로운 HTTP Client 표준의 등장
- CompletableFuture을 통해 Non-Blocking request and response 지원
- FactoryMethod 형태로 지원
https://kchanguk.tistory.com/113
http://openjdk.java.net/jeps/321
https://parkcheolu.tistory.com/174
'개발자 인터뷰 준비' 카테고리의 다른 글
Twitter 시스템 설계 (0) | 2021.06.13 |
---|---|
JAVA 8 비동기 처리 (@Async) (0) | 2021.06.10 |
AWS SQS vs Kafka vs RabbitMQ (0) | 2021.06.09 |
Spring 버전별 차이 / 개선점 (0) | 2021.06.09 |
멀티프로세스 vs 멀티쓰레드 (0) | 2021.01.30 |