포스트

(기술 면접) 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버전을 사용했습니다. 라고 대답할 거 같다.

물론 저의 생각이기에 더 좋게 꾸며 낸다면 좋겠죠? 항상 면접이 끝나면 아쉽다라는 생각뿐…


sunghomong 의 깃 허브
sunghomong 의 블로그

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.