(기술 면접) java 11 버전과 17 버전의 차이점을 아냐?
java 11 ver 특징
- 인터페이스에 private 메서드 가능
- Open JDK와 Oracle JDK 통합
- G1 GC가 기본 GC로 설정
- 람다 지역변수 var 키워드 사용 가능
- 컬렉션, 스트림 등 메소드 추가
- 지역 변수의 final 효과 확장
java 17 ver 특징
- recode class 키워드 사용 가능
- 난수 생성 API 추가
- 봉인 클래스 정식 추가
- String 여러 줄 사용시 텍스트 블록 기능 사용 가능
- NumberFormat, DataTimeFormateer 기능 향상
- Stream.toList() 사용 가능
- NullPointerException이 어떤 변수에 의해 발생했는지 설명
- ZGC 도임
java 11에 비해 java 17 개선점들이 뭔가요?
- 로컬 변수 유형 추론의 개선
- 새로운 기능과 개선된 API
- Grabage Collector 개선
- 암호화 관련 업데이트
- 언어 및 컴파일러 개선
- Deprecation과 Removal
- 성능 개선
- 다양한 다른 업데이트들
java 17이 그럼 더 좋은데 왜 11을 쓸까요?
- 레거시 코드와의 호환성
- 프로젝트 특성과 요구사항
- 개발자 스킬과 경험
- 이전 버전과의 호환성 유지
마무리
면접 질문에 받았던 것들을 공부할 겸 정리중이다… 빨리 합격 하고 싶다 ㅜㅜ
나는 이렇게 질문을 받았었다. java 17버전을 최근 프로젝트에 사용하셨던데 버전을 바꾼 이유가 있나요? 왜 17버전을 사용했죠? 차이점을 아나요??
다시 이 질문을 받는다면 일단 버전이 바뀌면서 로컬 변수 유형 추론의 개선, 암호화 관련 업데이트 성능 개선 등 다양한 개선점이 있고 현재 스프링 부트 3.0 이상 버전을 사용중이며 3.0이상부터는 자바 17을 지원 하기에 17버전을 사용했습니다. 라고 대답할 거 같다.
물론 저의 생각이기에 더 좋게 꾸며 낸다면 좋겠죠? 항상 면접이 끝나면 아쉽다라는 생각뿐…
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.