본문 바로가기

Language60

[Java] Java 버전별 특징 : Java 19~21 [1]( Sequenced Collection, Record Patterns ) Java 19~21Java 19, 20, 비(非) LTS 버전으로, 다양한 새로운 기능과 성능 최적화를 제공하며 자바의 동시성 처리, 패턴 매칭, 네이티브 코드 상호작용, 그리고 문자열 처리 등을 대폭 개선했습니다. 19,20에서 preview로 했던 기능들이 21에서 LTS버전으로 정식출시되었습니다.Virtual Thread, Structured Concurrency, Scoped Values 등의 동시성 처리 및 성능 최적화 이슈들.Sequenced Collections, Record Patterns 등을 통해 보다 코드가 간결해졌습니다. Sequenced CollectionsSequenced Collections는 Java 21에 도입된 새로운 인터페이스로, 순서가 있는 컬렉션에서 처음과 마지막 요.. 2024. 10. 19.
[Java] Java 버전별 특징 : Java 18 ( Simple Web Server, Default UTF-8, Code Snippets ) Java 18 요약Java 18은 새로운 기능과 최적화가 포함된 단기 지원 릴리스로, 여러 실험적 기능을 제공하면서 향후 Java LTS 버전에서 발전할 기능들을 미리 테스트할 수 있는 기회를 제공합니다. 특히, Simple Web Server, UTF-8 기본 인코딩, Code Snippets in Javadoc, Foreign Function & Memory API와 같은 기능들은 개발 생산성을 높이고, 자바 애플리케이션의 성능을 개선할 수 있는 도구를 제공합니다. Simple Web Server/** * Simple Web Server * 간단한 웹 서버 테스트 * * 간략한 개발 및 테스트 환경에서 활용할만해보임 * @throws IOException */private static void tes.. 2024. 10. 10.
[Java] Java 버전별 특징 : Java 16~17 Java 16java 16에선 큰 변경사항 없이 기존에 나왔던 것들에 대한 개선 및 ZGC 개선, 수치 계산과 데이터 처리의 고성능 수행을 도와줄 Vector API 등이 나옴. Java 17LTS (Long-Term Support) 버전으로 장기적인 지원을 받는 버전입니다.SpringBoot 3.x 버전부터는 Java17이상의 버전을 사용해야하기 때문에 8,11 -> 17로 올리는 경우가 많습니다. macOS AArch64 지원 (JEP 391)JEP 391은 Java 17에서 macOS의 AArch64 플랫폼을 지원하기 위한 기능으로, Apple의 Apple Silicon (M1, M2 등) 기반 ARM 아키텍처에서 Java 애플리케이션을 원활히 실행할 수 있도록 설계되었습니다. 이는 특히 Apple.. 2024. 10. 9.
[Java] Java 버전별 특징 : Java 15 (sealed class, hidden classes) sealed classJava 15에서 도입된 새로운 기능으로, 클래스나 인터페이스가 상속될 때 어떤 클래스나 인터페이스가 상속을 받을 수 있는지 명시적으로 제한할 수 있습니다. 즉, 상속 계층을 더 명확하고 제어 가능하게 만드는 기능입니다. sealed를 통해 명시적으로 상속 구조를 제어하고 패턴 매칭시에도 편리하게 사용 가능합니다. 기본 키워드 Sealed Class는 sealed 키워드를 사용하여 선언됩니다.Permits: Sealed 클래스는 permits 키워드를 사용하여 어떤 클래스가 이 클래스를 상속할 수 있는지 지정합니다. 상속할 수 있는 클래스는 반드시 같은 모듈이나 패키지 내에 있어야 합니다.Final, Non-Sealed, Abstract: Sealed 클래스를 상속받은 클래스는 세 .. 2024. 10. 8.
[Java] Java 버전별 특징 : Java 14 (Record, instanceof 개선, NPE 개선) Record 타입 (Preview)Java 14부터 Record 타입이 사용 가능합니다.record타입은 불변객체 타입으로 해당 필드에 final 선언 및 생성자, getter, equals(), hashCode(), toString() 메서드를 자동으로 생성합니다. VO 객체에 사용하면 좋을 듯!public class Java14 { public static void main(String[] args) { testRecord(); } private static void testRecord() { // 생성자, getter, equals(), hashCode(), toString() 메소드 자동 생성 Person person = new Person(".. 2024. 10. 6.
[Java] Java 버전별 특징 : Java 13 (Text Blocks, Dynamic CDS Archives, ZGC 개선) Text Blocks (Preview)기존에는 여러 줄 문자열을 작성할 때 \n 같은 이스케이프 문자를 사용해야 했지만, 이제 """를 사용하여 더 간결하게 작성할 수 있습니다. 이 기능은 특히 HTML, JSON과 같은 여러 줄 문자열을 다룰 때 유용합니다./** * Java 13 * * textBlocks */public class Java13 { public static void main(String[] args) { textBlock(); } private static void textBlock() { String textBlock = """ first text second text .. 2024. 10. 6.
[Java] Java 버전별 특징 : Java 12 (Switch Expressions with yield, G1GC 개선, 더 빠른 시작시간 및 메모리 최적화) Switch Expressions (Preview)/** * Java 12 - Switch Expressions (Preview -> 13에서 반영) * yield 처리 * * yield: switch 표현식에서만 사용되며, 특정 case 블록에서 값을 반환하지만 실행 흐름을 종료하지 않고, * switch 표현식의 결과로 값을 반환하는 역할을 합니다. */public class Java12 { public static void main(String[] args) { originSwitch(); Java12Switch(); } private static void originSwitch() { int day = 2; String dayStr.. 2024. 10. 5.
개발 용어 정리 일급시민(first-class-citizen) : 전달될 수 있는 값.(String, new Integer, new HashMap...) 변수에 담을 수 있음 함수의 인자로 전달 가능 함수의 반환값으로 전달 가능 이급시민은 전달할 수 없는 구조체를 뜻함 2022. 12. 11.