Java 24

2025λ…„ 3μ›” 18일 λ°œν‘œλœ JDK 24

1. μ£Όμš” μƒˆλ‘œμš΄ κΈ°λŠ₯(Major New Functionality)

1.1 μ–Έμ–΄ κΈ°λŠ₯ κ°œμ„ (Language Previews)

  • Primitive Types in Patterns, instanceof, and switch(JEP 488, Second Preview)

    • instanceof 및 switch μ—μ„œ κΈ°λ³Έ νƒ€μž…(primitive types) 을 μ‚¬μš©ν•  수 μžˆλ„λ‘ 지원

    • 예λ₯Ό λ“€μ–΄, κΈ°μ‘΄μ—λŠ” switch λ¬Έμ—μ„œ int , double 등을 직접 μ‚¬μš©ν•  수 μ—†μ—ˆμ§€λ§Œ, μ΄μ œλŠ” νŒ¨ν„΄ λ§€μΉ­κ³Ό ν•¨κ»˜ μ‚¬μš©ν•  수 있음.

  • Flexible Constructor Bodies(JEP 492, Third Preview)

    • μƒμ„±μžμ—μ„œ super(..) 호좜 전에 ν•„λ“œλ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” 것이 κ°€λŠ₯해짐.

    • 이λ₯Ό 톡해 μƒμ†λœ ν΄λž˜μŠ€μ—μ„œ super(..) κ°€ 호좜되기 전에 ν•„λ“œ μ΄ˆκΈ°ν™”κ°€ κ°€λŠ₯ν•˜μ—¬ μ˜€λ²„λΌμ΄λ”©λœ λ©”μ„œλ“œ ν˜ΈμΆœμ„ λ”μš± μ•ˆμ „ν•˜κ²Œ μ²˜λ¦¬ν•  수 있음.

  • Module Import Declarations(JEP 494, Second Preivew)

    • ν•˜λ‚˜μ˜ import 문으둜 λͺ¨λ“ˆμ΄ 내보낸 λͺ¨λ“  νŒ¨ν‚€μ§€λ₯Ό κ°€μ Έμ˜¬ 수 μžˆλ„λ‘ 지원.

    • κΈ°μ‘΄μ—λŠ” νŒ¨ν‚€μ§€ λ‹¨μœ„λ‘œλ§Œ import κ°€ κ°€λŠ₯ν–ˆμ§€λ§Œ, λͺ¨λ“ˆ λ‹¨μœ„λ‘œλ„ κ°„νŽΈν•˜κ²Œ κ°€μ Έμ˜¬ 수 있음.

  • Simple Source Files and Instance Main Methods(JEP 495, Fourth Preview)

    • 초보 κ°œλ°œμžκ°€ μžλ°” ν”„λ‘œκ·Έλž¨μ„ 더 μ‰½κ²Œ μž‘μ„±ν•  수 μžˆλ„λ‘ λ‹¨μˆœν•œ ν˜•νƒœμ˜ μ†ŒμŠ€ 파일과 μΈμŠ€ν„΄μŠ€ 메인 λ©”μ„œλ“œλ₯Ό 지원.

    • 예λ₯Ό λ“€μ–΄, public static void main(String[] args) 없이도 μ‹€ν–‰ κ°€λŠ₯ν•œ λ‹¨μˆœν•œ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„± κ°€λŠ₯


2. μ„±λŠ₯ 및 λŸ°νƒ€μž„ κ°œμ„ (Performance and Runtime)

  • Compact Object Headers(JEP 450, Experimental)

    • 64λΉ„νŠΈ μ•„ν‚€ν…μ²˜μ—μ„œ 객체 헀더 크기λ₯Ό κΈ°μ‘΄ 96 ~ 128 λΉ„νŠΈμ—μ„œ 64λΉ„νŠΈλ‘œ μ€„μ—¬μ„œ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ 절감 및 데이터 λ‘œμ»¬λ¦¬ν‹° ν–₯상

  • Latte Barrier Expansion for G1(JEP 475)

    • G1 GC 의 Barrier ν™•μž₯을 μ΅œμ ν™”ν•˜μ—¬ μ„±λŠ₯ ν–₯상

  • Ahead-of-Time Class Loading & Linking(JEP 483)

    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ 속도λ₯Ό 높이기 μœ„ν•΄ JVM 이 클래슀 λ‘œλ”© 및 링크 정보λ₯Ό μΊμ‹œν•˜μ—¬ λ‹€μŒ μ‹€ν–‰ μ‹œ μ¦‰μ‹œ μ‚¬μš© κ°€λŠ₯ν•˜λ„λ‘ 함.

  • Synchronize Virtual Threads without Pinning(JEP 491)

    • synchronized 블둝을 μ‚¬μš©ν•˜λŠ” 가상 μ“°λ ˆλ“œ(Virtual Thread) κ°€ ν”Œλž«νΌ μ“°λ ˆλ“œμ™€ λΆ„λ¦¬λ˜μ–΄ 보닀 효율적으둜 λ™μž‘ν•˜λ„λ‘ κ°œμ„ 


3. 라이브러리 κ°œμ„ (Libraries)

  • Stream Gatherers(JEP 485)

    • κΈ°μ‘΄ Stream API 에 μ‚¬μš©μž μ •μ˜ 쀑간 μ—°μ‚°(intermediate operation) 을 μΆ”κ°€ν•  수 μžˆλ„λ‘ κ°œμ„ 

  • Class-File API(JEP 484)

    • Java 클래슀 νŒŒμΌμ„ 뢄석, 생성 및 λ³€ν™˜ν•  수 μžˆλŠ” ν‘œμ€€ API 제곡

  • Scope Values(JEP 487, Fourth Preview)

    • ThreadLocal 보닀 가볍고 μ•ˆμ „ν•œ λ°©μ‹μœΌλ‘œ 데이터λ₯Ό κ³΅μœ ν•  수 μžˆλŠ” μƒˆλ‘œμš΄ μŠ€μ½”ν”„ 값을 λ„μž…

  • Vector API(JEP 489, Ninth Incubator)

    • 벑터 연산을 μ΅œμ ν™”ν•˜μ—¬ CPU μ„±λŠ₯을 κ·ΉλŒ€ν™”ν•˜λŠ” API μΆ”κ°€

  • Structured Concurrency(JEP 499, Fourth Preview)

    • 병렬 ν”„λ‘œκ·Έλž˜λ°μ„ 더 μ‰½κ²Œ ν•˜κΈ° μœ„ν•΄ ꡬ쑰적 λ™μ‹œμ„±(Structured Concurrency) API 제곡.


4. λ³΄μ•ˆ κΈ°λŠ₯ κ°•ν™”(Security)

  • Key Derivation Function API(JEP 478, Preview)

    • KDF(Key Derivation Function) API λ₯Ό μΆ”κ°€ν•˜μ—¬ μ•”ν˜Έ ν‚€λ₯Ό 보닀 μ•ˆμ „ν•˜κ²Œ νŒŒμƒ κ°€λŠ₯

  • Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism(JEP 496)

    • μ–‘μž 컴퓨터 곡격에 λŒ€λΉ„ν•œ μƒˆλ‘œμš΄ μ•”ν˜Έν™” ν‚€ μΊ‘μŠν™” λ©”μ»€λ‹ˆμ¦˜(ML-KEM) 지원

  • Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm(JEP 497)

    • μ–‘μž 저항성을 κ°–μΆ˜ λ””μ§€ν„Έ μ„œλͺ… μ•Œκ³ λ¦¬μ¦˜(ML-DSA) 지원


5. 제거 및 경고

  • Java Native Interface(JNI) μ œν•œ 예고(JEP 472)

    • ν–₯ν›„ JNI μ‚¬μš©μ„ μ œν•œν•  μ˜ˆμ •μ΄λ©°, ν˜„μž¬λŠ” κ²½κ³  λ©”μ‹œμ§€λ₯Ό 좜λ ₯

  • Security Manager μ™„μ „ 제거(JEP 486)

    • Java 17μ—μ„œ μ‚­μ œ μ˜ˆμ •μ΄μ˜€λ˜ Security Manager λ₯Ό μ™„μ „νžˆ λΉ„ν™œμ„±ν™”.

  • ZGC 의 Non-Generationl Mode 제거(JEP 490)

    • Z Garbage Collector(ZGC) μ—μ„œ Non-Generational λͺ¨λ“œλ₯Ό μ œκ±°ν•˜κ³ , Generational λͺ¨λ“œλ§Œ μœ μ§€

  • sun.misc.Unsafe λ©”λͺ¨λ¦¬ μ ‘κ·Ό λ©”μ„œλ“œ μ‚¬μš© μ‹œ κ²½κ³ (JEP 498)

    • sun.misc.Unsafe 의 λ©”λͺ¨λ¦¬ μ ‘κ·Ό λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  경우 κ²½κ³  λ©”μ‹œμ§€ 좜λ ₯


JDK 24 μ—μ„œ μΆ”κ°€λœ 기타 μƒˆλ‘œμš΄ κΈ°λŠ₯

  • Unicode 16.0 지원(java.lang.Character ν΄λž˜μŠ€μ— 5185개의 μƒˆλ‘œμš΄ 문자 μΆ”κ°€)

  • Process.waitFor(Duration) λ©”μ„œλ“œ μΆ”κ°€ (Duration 객체λ₯Ό 직접 μ‚¬μš© κ°€λŠ₯)

  • jar λͺ…λ Ήμ–΄ κ°œμ„ (JAR νŒŒμΌμ„ νŠΉμ • λ””λ ‰ν† λ¦¬λ‘œ μΆ”μΆœν•˜λŠ” μ˜΅μ…˜ μΆ”κ°€)

  • Virtual Thread Scheduler λͺ¨λ‹ˆν„°λ§ κΈ°λŠ₯(jdk.management.VirtualThreadSchedulerMXBean 제곡)

  • TLS 1.3 의 μƒˆλ‘œμš΄ μ„Έμ…˜ ν‹°μΌ“ 개수 μ‘°μ • κ°€λŠ₯(jdk.tls.server.newSessionTicket 속성 μΆ”κ°€)

  • Quantum-Resistant TLS ν‚€ 및 μ„œλͺ… μ•Œκ³ λ¦¬μ¦˜ 제곡(μ–‘μž λ‚΄μ„± μ•”ν˜Έν™” 지원)

  • OpenJDK 와 Oracle JDK 의 차이점 μœ μ§€(예: GraalVM JIT 포함 μ—¬λΆ€, μ„€μΉ˜ ν”„λ‘œκ·Έλž¨ 지원 λ“±)

Last updated

Was this helpful?