Java/History

Java 17 대표 코드

양승길 2024. 12. 16. 17:07

Sealed 클래스 도입

  • 명시된 클래스만 상속시킬수 있다.
  • 어떤 클래스가 해당클래스를 상속받는지 쉽게 알수 있고 제한할수 있다.
  • Sealed 된 클래스를 활용하기 위해서는 같은 모듈 혹은 같은 패키지 안에 있어야한다.
// 최상위 클래스에 sealed라 선언.
public sealed class Character permits Hero, Monster {}

// permits로 선언된 Class만이 Character를 상속 받을 수 있다.
public sealed class Hero extends Character {}
public sealed class Npc extends Character // 상속 불가능

// non-sealed 로 선언된 Monster 는 어떤 class 든지 상속 할 수 있다.
public non-sealed class Monster extends Character {}

// final class는 아무도 상속할 수 없다.
public sealed class Hero extends Character permits Link, Mario {}
public final class Link extends Hero {}
public final class Maro extends Hero {}

public class Troll extends Hero {} // 상속 불가능
public class Troll extends Link {} // 상속 불가능
public class Troll extends Monster {} // 상속 가능

 

  • final과 sealed의 차이
// final : 현 클래스를 아무도 상속 받을수가 없다.
final class FinalClass {}

// 에러: final 클래스를 상속할 수 없음
class SubClass extends FinalClass {}




// sealed : permits에 지정된 클래스만 상속 받을수 있다.
sealed class Shape permits Circle, Square {}

// 가능
final class Circle extends Shape {}
final class Square extends Shape {}

// 불가능
class Triangle extends Shape {}

장기 지원(LTS) 버전

역대 자바 버전 지원기간

Release GA Date(출시일) Premier Support Until Extended Support Until Sustaining Support
7 (LTS) July 2011 July 2019 July 2022***** Indefinite
8 (LTS)** March 2014 March 2022 December 2030***** Indefinite
9 (non‑LTS) September 2017 March 2018 Not Available Indefinite
10 (non‑LTS) March 2018 September 2018 Not Available Indefinite
11 (LTS) September 2018 September 2023 September 2026 Indefinite
12 (non‑LTS) March 2019 September 2019 Not Available Indefinite
13 (non‑LTS) September 2019 March 2020 Not Available Indefinite
14 (non‑LTS) March 2020 September 2020 Not Available Indefinite
15 (non‑LTS) September 2020 March 2021 Not Available Indefinite
16 (non-LTS) March 2021 September 2021 Not Available Indefinite
17 (LTS) September 2021 September 2026**** September 2029**** Indefinite
18 (non-LTS)*** March 2022 September 2022 Not Available Indefinite
19 (non-LTS)*** September 2022 March 2023 Not Available Indefinite
20 (non-LTS)*** March 2023 September 2023 Not Available Indefinite
21 (LTS)*** September 2023 September 2028 September 2031 Indefinite
반응형

'Java > History' 카테고리의 다른 글

17버전 이상을 고려해야될 상황  (0) 2024.12.16
Java 갑작스런 버전 변화, 왜?  (0) 2024.12.16
Java 15, 16 대표 코드  (0) 2024.12.16
Java 12~14 대표 코드  (0) 2024.12.16
Java 11 대표 코드  (0) 2024.12.16