일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 스튜디오 style
- apache nginx
- hilt error
- 안드로이드 스튜디오 인터넷 연결 안되어 있을 때
- 안드로이드 스튜디오 tts
- 안드로이드 스튜디오 인터넷 연결 확인
- 자바 스레드 예제
- Thread
- LifeCycle
- recyclerview item recycle
- 아파치란
- dagger error
- 안드로이드 디자인패턴
- 아파치 엔진엑스
- savedinstancestate
- AAC
- 다른 객체 리스트의 비교
- 안드로이드 스튜디오 반복되는 레이아웃 코드
- java
- 이중for문 사용 안하기
- 안드로이드 스튜디오 custom dialog
- 디자인 패턴 예제
- 리사이클러뷰 아이템 재사용
- edittext 연결
- 객체지향 프로그래밍 5가지 원칙
- apache란
- 안드로이드 스튜디오 커스텀 다이얼로그
- 변수
- java thread 예제
- Kotlin
- Today
- Total
Sam Story
자바 버전에 대하여 (8 , 11 , 17) 본문
오늘은 사용하는 자바 버전에 대하여 간단하게 포스팅 해보려 한다.
24년 기준으로 현재 자바 버전은 23버전까지 릴리스 되었다.
기존에 내가 진행했던 프로젝트들의 경우 대부분 8버전으로 진행했었다.
처음 개발을 시작할 때 (유튜브를 보며 공부할 때)
8버전으로 진행했기에 그 때 8버전으로 했었지만
자바 버전을 어떤것으로 선정할지에 대한 기준이 없었기에 그랬던 것이고
이제는 자바 버전도 각 버전의 특징들을 알고
개발환경에 맞게 어떤 버전을 사용할지 생각할 수 있어야 한다고 생각한다.
자바 버전 선택
먼저 많이 사용하는 자바버전의 경우 글 제목에도 적어놨지만 Java 8 , Java 11 , Java 17
세가지 버전의 자바를 많이 사용한다.
그렇다면 왜 이 세가지 버전을 가장 많이 사용하는가?
그 이유는 이 세가지 버전이 LTS (Long Term Support) 이기 때문이다.
LTS 는 단어 뜻 그대로 오랜기간 이 버전을 지원하고
보안, 버그 수정이 이루어지므로 LTS 버전을 많이 사용하는 것이다.
모든 버전에 대해서 다루기 보다는 LTS 인 세가지 버전에 대해서 알아보도록 하자.
Java 8
주요 특징:
- 람다 표현식:
- 함수형 프로그래밍 지원, 코드 간결화.
- Stream API:
- 대규모 컬렉션 처리에 적합.
- 새로운 날짜 및 시간 API:
- java.time 패키지로 복잡한 날짜/시간 연산 간소화.
- Optional 클래스:
- NullPointerException 방지.
- 기타:
- 기본 메서드(Default Methods): 인터페이스에서 구현 가능.
Java 11
주요 특징:
- 새로운 HTTP Client API:
- HTTP/2 및 WebSocket 지원.
- 비동기 요청 처리 가능.
- 로컬 변수 타입(var) 지원:
- 람다 표현식에서도 사용 가능.
- 다수의 모듈 제거:
- 예: Java EE, CORBA 모듈 삭제.
- Garbage Collector(GC) 개선:
- G1 GC 기본화.
- 런타임 실행 파일 간소화:
- java 명령어로 소스 파일 직접 실행 가능.
Java 17
주요 특징:
- Sealed Classes:
- 상속 가능한 클래스 범위 제한.
- Records:
- 데이터 객체를 간결하게 선언.
- 패턴 매칭:
- instanceof에서 타입 캐스팅 간소화.
- ZGC(가비지 컬렉터) 개선:
- 낮은 지연 시간 보장.
- 새로운 언어 기능:
- 텍스트 블록(Text Blocks): 멀티라인 문자열 지원.
- Switch 표현식: 조건문 간소화.
- 보안 및 성능 강화:
- TLS 및 암호화 알고리즘 최신화.
위 내용을 간단하게 요약해서 표로 보게되면
표에도 간단한 사용 사례를 적었지만 조금 간단히 풀어내자면
Java 8: 레거시 시스템을 유지하는 경우
(현재 우리나라에서 가장 많이 사용하는 버전)
Java 11: 현재 널리 사용되고 있는 안정적인 LTS 버전, 대부분의 환경에 적합.
(8 -> 11로 마이그레이션 하는경우도 많음)
Java 17: 최신 LTS 버전으로, 최신 기능과 장기 지원이 필요한 경우 추천.
(최신 버전인 만큼 버그나,안정성이 떨어질 수 있음)
정도로 간단히 정리할 수 있을것 같다.
대부분 사람들이 버전이 높으면 무조건 좋다라고 생각할 수 있지만
각 상황에 맞게 사용해야하는 버전이 있고,
각 버전의 큰특징 정도는 파악하고 있어야 한다고 생각한다.
'개발지식' 카테고리의 다른 글
Observer 패턴 (0) | 2025.02.12 |
---|---|
Singletone Pattern (싱글톤 패턴) (2) | 2024.12.06 |
객체지향 프로그래밍 SOLID 원칙 (1) | 2024.09.24 |
객체지향 프로그래밍 (5) | 2024.09.23 |
REST,REST API (0) | 2024.08.21 |