>Java >java지도 시간 >Java 버전의 변경 사항

Java 버전의 변경 사항

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-06 15:11:40406검색

What’s Changed in Java Versions

시간을 통한 자바의 여행

Java는 20년 넘게 업계 전반에 걸쳐 강력한 애플리케이션을 지원해 왔습니다. 엔터프라이즈급 애플리케이션을 구축하는 데 가장 널리 사용되는 프로그래밍 언어 중 하나로 지속적으로 선정되었습니다. Java 23이 출시되고 Java 11에 대한 지원이 종료됨에 따라 이제 최신 개발에는 Java 17이 기본 버전 또는 최신 버전으로 필요합니다.

Java 17과 23 사이에는 많은 것이 발전했습니다. 그래서 무엇이 바뀌었나요? Java가 이러한 성숙도에 도달하기까지 거쳐온 여정을 살펴보겠습니다.

이 기사에서는 Java의 진화, 버전의 역사, 최신 업데이트에 대해 자세히 알아봅니다. Java의 최신 기능과 그것이 개발의 미래를 어떻게 형성하고 있는지 궁금하다면 계속 읽어보세요.

Java 버전에서 사용되는 일반 용어

1. JVM(자바 가상 머신)
JVM은 플랫폼에 따라 다르며 Java 컴파일러에서 생성된 바이트코드를 실행합니다. 애플리케이션을 실행할 수 있는 런타임 환경을 제공합니다. JVM은 메모리, 레지스터 및 가비지 수집 힙을 관리합니다.

2. JRE(Java 런타임 환경)
JRE는 Java 프로그램을 실행할 수 있는 환경을 제공합니다. 여기에는 JVM 및 Java 클래스 라이브러리가 포함됩니다. 기본적으로 Java 코드를 실행하는 데 필요한 도구 패키지입니다.

3. JDK(Java 개발 키트)
JDK는 Java 애플리케이션 개발을 위한 완벽한 툴킷입니다. 여기에는 JRE, 컴파일러, 디버거 및 Javadoc과 같은 도구가 포함됩니다. 이를 통해 개발자는 Java 코드를 생성, 컴파일 및 실행할 수 있습니다. Java 프로그램 실행은 개발의 일부이므로 JDK에는 JRE가 필요합니다.

4. 바이트코드
바이트코드는 Java 컴파일러에서 생성된 중간 코드입니다(.class 파일에 저장됨). JVM의 도움으로 이 .class 파일은 모든 시스템에서 실행될 수 있으므로 Java 플랫폼에 독립적입니다.

자바 1.0
Java는 소프트웨어 환경을 영원히 바꿔 놓을 약속인 Write Once, Run Anywhere를 통해 등장했습니다. JVM(Java Virtual Machine)이 도입되어 개발자는 기본 하드웨어에 관계없이 JVM이 있는 모든 장치에서 실행할 수 있는 코드를 작성할 수 있습니다. 메모리 관리가 자동화되어 개발자의 삶이 더욱 편리해졌습니다. 큰 지원 중단은 없었습니다. 이는 모든 것의 시작일 뿐입니다.

자바 1.1
Java 1.1은 내부 클래스와 이벤트 리스너를 추가하여 기반을 구축하기 시작했습니다. 이러한 기능은 Java 애플리케이션을 더욱 동적이고 대화형으로 만들어 개발자가 코드를 구성하고 관리하는 방법을 개선했습니다.

자바 1.2
Java 1.2에서는 모든 것이 흥미로워지기 시작했습니다. Collections Framework, Swing(더 나은 GUI를 위한) 및 JIT 컴파일러를 도입하여 성능을 훨씬 빠르게 만들었습니다. 이 버전에서는 특히 엔터프라이즈 애플리케이션용 J2EE(Java 2 Platform)가 도입되면서 Java의 복잡한 애플리케이션 처리 능력이 더욱 향상되었습니다.

자바 1.3
Java 1.3은 HotSpot JVM 덕분에 성능에 중점을 두었습니다. J2EE(Java 2 Platform, Enterprise Edition)의 추가로 더욱 확장 가능한 엔터프라이즈 애플리케이션을 구축할 수 있는 기회가 열렸습니다. 획기적인 기능은 없었지만 앞으로 다가올 급속한 발전의 발판을 마련했습니다.

자바 1.4
이 버전에는 더 쉬운 텍스트 패턴 일치를 위한 정규식, 향상된 I/O 성능을 위한 NIO(New I/O), 사용자가 웹 브라우저에서 직접 애플리케이션을 시작할 수 있는 Java Web Start가 도입되었습니다. 그러나 애플릿은 서서히 관련성을 잃어가고 있으며 보다 현대적인 웹 기술을 선호하여 더 이상 사용되지 않기 시작했습니다.

자바 5
Java 5(1.5라고도 함)는 Java 역사상 가장 중요한 업데이트 중 하나였습니다. 제네릭, 주석 및 열거 유형을 도입하여 Java 코드를 더욱 안전하고 효율적으로 만들었습니다. 또한 컬렉션에 대한 반복을 단순화하는 향상된 for-loop도 도입되었습니다. 이는 매우 큰 변화였습니다. 너무 커서 대신 Java 1.5라는 이름이 붙을 뻔했습니다.

자바 6
Java 6은 Java Compiler API 및 Java Virtual Machine의 향상을 포함하여 성능 향상에 중점을 두었습니다. 또한 보다 쉬운 웹 서비스 통합을 위한 기능도 도입되었습니다. Java는 더욱 강력해졌지만 큰 지원 중단은 발생하지 않았습니다. Java 6은 이미 존재하는 기능을 개선하는 것이었습니다.

자바 7
Java 7에서는 언어가 훨씬 더 개발자 친화적이 되었습니다. 리소스 사용 시도 및 다이아몬드 연산자와 같은 기능으로 코딩을 더 깔끔하게 만들 수 있습니다. 더 나은 병렬 처리를 위해 Fork/Join 프레임워크가 도입되었습니다. 그러나 애플릿은 공식적으로 더 이상 사용되지 않으며 브라우저에서 Java 사용이 중단됨을 의미합니다.

자바 8
Java 8은 함수형 프로그래밍 개념을 언어에 도입하는 람다 표현식과 스트림을 통해 역대 가장 중요한 업데이트 중 하나로 간주됩니다. 이로 인해 Java는 훨씬 더 간결하고 표현력이 풍부해졌습니다. 새로운 날짜/시간 API는 오래된 Date 클래스를 대체했으며 보다 유연한 코드를 위해 인터페이스의 기본 메서드를 허용했습니다. 하지만 애플릿은 더 이상 관련성이 없기 때문에 공식적으로 제거되었습니다.

자바 9
Java 9에서는 모듈성이 가장 큰 초점이었습니다. Project Jigsaw의 도입으로 개발자는 애플리케이션을 더 작고 관리하기 쉬운 모듈로 분할하여 확장성을 향상시킬 수 있었습니다. 대화형 REPL인 JShell을 사용하면 더 빠른 테스트와 실험이 가능해졌습니다. 또한 이 릴리스에서는 최신 웹 프레임워크로의 전환이 진행됨에 따라 일부 레거시 Java EE 모듈이 더 이상 사용되지 않습니다.

자바 10
Java 10에서는 지역 변수 유형 추론(var)을 도입하여 명시적으로 유형을 지정하지 않고도 변수를 선언하기가 더 쉬워졌습니다. G1 가비지 수집기의 성능이 향상되었습니다. 큰 지원 중단은 없었고 단지 더 효율적이고 유연한 Java를 향한 지속적인 노력이 있었습니다.

자바 11
Java 11은 Java 8 이후 최초의 LTS(장기 지원) 릴리스이므로 안정성을 원하는 기업에 중요한 버전입니다. 더 나은 웹 통신을 위해 HTTP 클라이언트 API를 도입하고 오래된 Java EE 및 CORBA 모듈을 제거했습니다. LTS 릴리스로서 안정적인 장기 지원이 필요한 많은 개발자에게 인기 있는 선택이 되었습니다.

자바 12
Java 12에는 일시 중지 시간을 줄이기 위해 설계된 JVM 상수 API 및 실험적인 Shenandoah 가비지 수집기와 같은 기능이 도입되었습니다. 또한 최신 애플리케이션에서는 더 이상 필요하지 않으므로 RMI 활성화 메커니즘을 더 이상 사용하지 않습니다. 이러한 변화로 인해 Java의 성능과 확장성이 더욱 향상되었습니다.

자바 13
Java 13에서는 여러 줄 문자열에 대한 텍스트 블록을 도입하여 문자열 작업을 더 쉽게 만들었습니다. 이 버전은 또한 더 나은 가비지 수집 및 성능 최적화에 중점을 두었습니다. 이번 릴리스에는 큰 지원 중단이 없었으며 지속적인 개선이 이루어졌습니다.

자바 14
Java 14에서는 레코드(불변 데이터 클래스의 기능), 인스턴스에 대한 패턴 일치, 메모리 관리 개선 기능을 제공했습니다. ZGC(Z Garbage Collector)도 실험적인 형태로 도입됐다. 더 현대적인 JavaScript 엔진이 채택되면서 여기서 가장 큰 지원 중단은 Nashorn JavaScript 엔진이었습니다.

자바 15
Java 15에는 확장하거나 구현할 수 있는 유형을 제한하는 봉인된 클래스가 도입되어 코드를 더 효과적으로 제어할 수 있습니다. 외부 메모리 액세스 API는 계속 발전하여 JVM 외부의 메모리와 상호 작용하는 새로운 방법을 제공했습니다. RMI 활성화 API는 공식적으로 더 이상 사용되지 않습니다.

자바 16
Java 16에서는 인스턴스에 대한 패턴 일치가 더욱 성숙해졌고 레코드 기능이 완전히 도입되었습니다. Foreign Function & Memory API는 계속 발전하여 Java를 기본 통합에 더 적합하게 만들었습니다. Java 16은 주요 지원 중단을 도입하기보다는 기능을 강화하는 데 중점을 두었습니다.

자바 17
LTS 릴리스인 Java 17에서는 봉인된 인터페이스와 ZGC 및 Shenandoah와 같은 향상된 가비지 수집 방법을 제공했습니다. 또한 더 나은 보안을 위해 JDK 내부를 강력하게 캡슐화했습니다. 또한 일부 기존 보안 제공업체의 지원이 중단되어 더욱 현대적이고 안전한 API로 전환되었습니다.

자바 18
Java 18은 네이티브 코드와 더 효과적으로 상호 작용할 수 있도록 메모리 처리와 외부 함수 및 메모리 API를 개선하는 데 중점을 두었습니다. 또한 UTF-8을 기본 문자 집합으로 만들어 Java를 최신 국제화 표준에 맞게 조정했습니다. 이번 버전은 겉으로 보이는 변화보다는 내부 개선에 더 중점을 두었습니다.

자바 19
Java 19는 Project Loom(경량 동시성)을 탐색하기 시작했으며 패턴 일치를 계속해서 개선했습니다. 외부 메모리 액세스 API가 더욱 개선되었으며 값 유형이 언어에 적용되기 시작했습니다. 이는 복잡한 고성능 애플리케이션을 위해 Java를 현대화하는 단계입니다.

자바 20
Java 20은 값 유형 및 새로운 동시성 모델에 대한 향상된 지원을 통해 Project Loom 및 패턴 일치를 더욱 개선했습니다. 외부 메모리 액세스가 계속 발전하여 Java가 네이티브 코드를 더 효율적으로 처리하고 리소스를 많이 사용하는 애플리케이션의 성능이 향상되었습니다.

자바 21 LTS
또 다른 LTS 릴리스인 Java 21에서는 Project Loom, 레코드 패턴 및 확장성이 지속적으로 개선되었습니다. 또한 더 나은 메모리 관리를 도입하고 일부 이전 기능을 마무리했습니다. 특정 레거시 동시성 모델의 지원 중단은 Java를 보다 현대적인 패러다임으로 추진하는 마지막 단계였습니다.

자바 22
Java 22는 Project Loom에 대한 최종 지원과 지속적인 동시성 개선을 통해 언어의 미래를 보장합니다. 패턴 일치가 더욱 정교해지고 확장 가능한 애플리케이션을 위한 새로운 도구가 등장합니다. 이제 Java는 고성능의 복잡한 시스템을 처리하는 데 그 어느 때보다 뛰어난 능력을 갖추고 있습니다.

자바 23
최신 릴리스인 Java 23은 패턴 일치를 확장하고 외부 함수 및 메모리 API를 통해 기본 메모리 관리를 향상시킵니다. 이는 하위 수준 시스템 리소스와 상호 작용하는 최신 애플리케이션에서 Java를 더욱 강력하게 만듭니다. Java 23은 확장성, 성능, 개발자 생산성에 중점을 두고 있어 Java가 앞으로도 계속 관련성을 유지할 수 있도록 보장합니다.

어떤 버전을 사용해야 합니까?

초보자의 경우 일반적으로 Java 17 또는 21과 같은 최신 LTS 버전으로 시작하는 것이 좋습니다. 이러한 버전은 잘 지원되며 모든 최신 기능을 갖추고 있습니다. 자, 여기 있습니다. Java의 진화에 대한 초보자 친화적인 시각입니다. 숫자에 압도당하지 마세요. 각 버전은 이전 버전을 기반으로 구축되어 Java를 더욱 강력하고 다재다능한 언어로 만든다는 점을 기억하세요. 즐거운 코딩하세요.

위 내용은 Java 버전의 변경 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.