Java Development Kit (JDK)μ μ¬λ¬ λ²μ κ°μλ λ€μν κΈ°λ₯, κ°μ μ¬ν λ° λ³κ²½ μ¬νμ΄ μμ΅λλ€. JDK 8, 11, 17 κ°μ μ£Όμ μ°¨μ΄μ μ μμ½νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
JDK 8
· λλ€ ννμ(Lambda Expressionis): μ½λλ₯Ό κ°κ²°νκ² λ§λ€μ΄ μ£Όλ©°, νΉν 컬λ μ λΌμ΄λΈλ¬λ¦¬μ μ μλν©λλ€.
· μ€νΈλ¦Ό API(Stream API): μλ‘μ΄ μΆμνλ₯Ό ν΅ν΄ λ°μ΄ν° μ²λ¦¬ μμ μ κ°κ²°νκ² λ§λ€μ΄ μ€λλ€.
· λ μ§μ μκ° API(Date and Time API): κΈ°μ‘΄μ java.util.Date μ java.util.Calender λ₯Ό λ체νλ μλ‘μ΄ API μ λλ€.
· Default Methods: μΈν°νμ΄μ€μ λ©μλ ꡬνμ ν¬ν¨ν μ μκ² λμμ΅λλ€.
· Nashorn JavaScript Engine: Java μ½λ λ΄μμ JavaScriptλ₯Ό μ€νν μ μκ² ν©λλ€.
JDK 11
· LTS(Long-Term Support) Release: μ΄ λ²μ μ μ€λ κΈ°κ° λμ μ§μλ©λλ€.
· var ν€μλ: μ§μ λ³μμ νμ μΆλ‘ μ κ°λ₯νκ² ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ μ€λ³΅μ±μ μ€μΌ μ μμ΅λλ€.
· String APIμ κ°μ : μλ‘μ΄ λ©μλλ€(μ: isBlank(), lines(), repeat(), strip())μ΄ μΆκ°λμμ΅λλ€.
· HTTP ν΄λΌμ΄μΈνΈ(HTTP Client): java.net.http ν¨ν€μ§κ° μΆκ°λμ΄ HTTP/2, μΉμμΌ λ±μ κΈ°λ₯μ μ§μν©λλ€.
· Java EE λ° CORBA λͺ¨λ μ κ±°: Java EEμ CORBA κ΄λ ¨ API λ° λκ΅¬κ° JDKμμ μ κ±°λμμ΅λλ€.
JDK 17
· LTS(Long-Term Support) Release: JDK 11 μ΄νμ λ€μ LTS λ²μ μ λλ€.
· Sealed Classes: ν΄λμ€λ₯Ό sealνμ¬ νΉμ μμ ν΄λμ€λ§ μ볡λ°μ μ μλλ‘ μ νν μ μμ΅λλ€.
· Pattern Matching for Switch(Preview): switch λ¬Έμ κ°μ νμ¬ μ½λλ₯Ό λ κ°κ²°νκ² λ§λλλ€.
· JEP 356: Enhanced Pseudo-Random Number Generators: μλ‘μ΄ μΈν°νμ΄μ€ λ° κ΅¬νμ ν΅ν΄ λμ μμ±μ κ°μ ν©λλ€.
· JEP 382: New macOS Rendering Pipeline: macOSμμμ κ·Έλν½ λ λλ§ μ±λ₯μ κ°μ ν©λλ€.
· JEP 411: Deprecate the Security Manager for Removal: Javaμ 보μ κ΄λ¦¬μ κΈ°λ₯μ λΉμΆμ² μνλ‘ λ§λλλ€.
μ΄μΈμλ κ° λ²μ λ§λ€ μλ§μ κΈ°λ₯, κ°μ μ¬ν, λ²κ·Έ μμ , μ±λ₯ ν₯μμ΄ ν¬ν¨λμ΄ μμ΅λλ€. κ° λ²μ μ JEP(JDK Enhancement-Proposal) λͺ©λ‘μ νμΈνλ©΄ ν΄λΉ λ²μ μμ μ΄λ€ λ³νκ° μμλμ§ λμ΄ μμΈν μ μ μμ΅λλ€.