Skip to main content

Java 8부터 25까지 LTS 및 주요 기능 요약 (예제 포함)

· 4 min read
hwayoung kim
소주같은 개발자

Java는 지속적인 릴리스를 통해 다양한 기능을 도입해왔으며, 그 중 일부 버전은 LTS(장기 지원)로 지정되어 안정적인 사용이 가능합니다. 이 글에서는 Java 8부터 25까지의 LTS 여부, 정식 기능 중심의 주요 변화, EOL 정보, 그리고 버전별 예제 코드를 함께 정리합니다.

📊 Java 버전 요약 (Java 8 ~ Java 25)

버전출시일LTS주요 기능 (정식 도입 기준)EOL (Oracle 기준)
Java 82014-03Lambda, Stream API, java.time, Optional2022-12 (공개)
Java 92017-09모듈 시스템 (JPMS), JShell2018-03
Java 102018-03지역 변수 타입 추론 (var)2018-09
Java 112018-09HTTP Client, 새로운 String/File API2026-09
Java 132019-09텍스트 블록 (정식화 시작)2020-03
Java 162021-03Records (정식), instanceof 패턴 매칭2021-09
Java 172021-09Sealed Classes, Switch 패턴 매칭2029-09
Java 182022-03UTF-8 기본 인코딩2022-09
Java 212023-09Virtual Threads, Sequenced Collections2031-09
Java 242025-03주요 정식 기능 정보 없음2025-09 예정
Java 252025-09 예정값 클래스(Value Classes, 예정)2033-09

🧪 Java 주요 기능 예제

✅ Java 8 - Lambda & Stream API

List<String> names = Arrays.asList("Kim", "Lee", "Park");
names.stream().filter(n -> n.startsWith("K")).forEach(System.out::println);

✅ Java 9 - 모듈 시스템

module com.example.app {
requires java.base;
}

✅ Java 10 - var 지역 변수

var message = "Hello, Java 10!";
System.out.println(message);

✅ Java 11 - HTTP Client

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenAccept(System.out::println);

✅ Java 13 - 텍스트 블록

String html = """
<html>
<body>Hello</body>
</html>
""";
System.out.println(html);

✅ Java 16 - Record

public record User(String name, int age) {}
User user = new User("Alice", 30);
System.out.println(user.name());

✅ Java 17 - Sealed Class

public sealed class Shape permits Circle, Rectangle {}
final class Circle extends Shape {}
final class Rectangle extends Shape {}

✅ Java 18 - UTF-8 기본 인코딩

Files.write(Path.of("test.txt"), "안녕하세요".getBytes());

✅ Java 21 - Virtual Threads

Runnable task = () -> System.out.println("Running in " + Thread.currentThread());
Thread.startVirtualThread(task);

✅ 요약

  • LTS 버전: 8, 11, 17, 21, 25 (예정)
  • 예제 포함 버전별 기능 비교 가능
  • 프리뷰/실험 기능 제외, 정식 기능 중심

🔗 참고 자료