XNUMX 개월의 개발 끝에 오라클은 출시 새로운 버전 자바 SE 18 (Standard Edition), OpenJDK 오픈 소스 프로젝트를 참조 구현으로 사용합니다.
이 새 버전의 Java SE 18에서는 다음을 제외하고 제공됩니다. 사용되지 않는 일부 기능 제거, 호환성 유지 이전 버전의 Java 플랫폼과 이전에 작성된 대부분의 Java 프로젝트는 새 버전으로 실행할 때 변경되지 않고 계속 작동합니다.
Java SE 18의 새로운 주요 기능
이 새로운 Java SE 18 릴리스에서 기본 인코딩은 UTF-8입니다. 문자로 인코딩된 텍스트 데이터를 처리하는 Java API 이제 모든 플랫폼에서 기본적으로 UTF-8을 사용합니다., 시스템 설정 및 지역 설정에 관계없이. 시스템의 로케일을 고려하여 인코딩이 선택되는 이전 동작을 반환하려면 "-Dfile.encoding=COMPAT" 매개변수를 사용할 수 있습니다.
눈에 띄는 또 다른 변화는 그가 java.lang.reflect API 구현 재설계 (Core Reflection), 클래스의 메소드, 필드 및 생성자에 대한 정보는 물론 클래스의 내부 구조에 대한 액세스를 얻기 위해 설계되었습니다. API java.lang.reflect 자체는 변경되지 않았지만 이제 식별자를 사용하여 구현됩니다. 모듈에서 제공하는 메소드 바이트 코드 생성기를 사용하는 대신 java.lang.invoke. 구현의 유지 관리를 통합하고 촉진하도록 허용된 변경 java.lang.reflect 및 java.lang.invoke.
이 외에도 다음과 같이 언급됩니다. Vector API의 세 번째 예비 구현 제안, x86_64 및 AArch64 프로세서의 벡터 명령을 사용하여 수행되는 벡터 계산을 위한 기능을 제공하고 여러 값(SIMD)에 동시에 연산을 적용할 수 있습니다. 스칼라 연산의 자동 벡터화를 위해 HotSpot JIT 컴파일러에서 제공되는 기능과 달리 새로운 API는 병렬 데이터 처리를 위한 벡터화를 명시적으로 제어할 수 있습니다.
또한 SPI 인터페이스 추가 (서비스 제공자 인터페이스) 호스트 이름과 IP 주소를 확인하기 위해 이를 통해 운영 체제에서 제공하는 드라이버에 연결되지 않은 java.net.InetAddress의 대체 확인자를 사용할 수 있습니다.
한편 제안한 Foreign Function & Memory API XNUMX차 예비 구현, 응용 프로그램이 Java 런타임 외부의 코드 및 데이터와 상호 작용할 수 있습니다. 새로운 API 비 JVM 함수의 효율적인 호출을 허용합니다. y 액세스 메모리 JVM에서 관리하지 않습니다. 예를 들어, JNI를 사용하지 않고 외부 공유 라이브러리에서 함수를 호출하고 프로세스 데이터에 액세스할 수 있습니다.
추가 패턴 매칭의 두 번째 실험적 구현 표현에서 스위치, 이전에는 "if...else" 표현식의 성가신 문자열이 필요했던 "case" 태그의 정확한 값 대신 유연한 템플릿을 사용할 수 있습니다.
패키지 포함 jwebserver 유틸리티 및 API가 포함된 com.sun.net.httpserver 구현과 함께 라이브러리의 간단한 http 서버에서 정적 콘텐츠를 제공합니다(CGI 및 서블릿과 유사한 컨트롤러는 지원되지 않음). 기본 제공 http 서버는 작업 부하에 최적화되어 있지 않으며 액세스 제어 또는 인증을 지원하지 않습니다. 주로 프로토타입, 디버깅 및 프로젝트 테스트의 개발 프로세스에서 사용하도록 설계되었기 때문입니다.
다른 변경 사항 중 눈에 띄는 :
- JavaDoc은 "@단편» 유효성 검사 도구, 구문 강조 표시 및 IDE 통합을 통해 액세스할 수 있는 API 문서에 작업 예제 및 코드 조각을 포함합니다.
- 더 이상 사용되지 않으며 향후 릴리스, 완료 메커니즘 및 다음과 같은 관련 메서드에서 제거됩니다. Object.finalize(), Enum.finalize(), Runtime.runFinalization() 및 System.runFinalization().
- 쓰레기 수집가 ZGC(Z Garbage Collector), SerialGC 및 ParallelGC 그들은 문자열 중복 제거를 지원합니다.
자바 SE 18 정규 지원 릴리스로 분류됩니다., 다음 버전 이전에 업데이트될 예정입니다. LTS(장기 지원) 분기는 17년까지 업데이트를 받을 Java SE 2029이어야 합니다.
Java 10 릴리스부터 프로젝트가 새로운 개발 프로세스로 전환되었다는 점을 기억하는 것이 중요합니다. 이는 새로운 릴리스 형성 주기가 더 짧음을 의미합니다. 새로운 기능은 현재 지속적으로 업데이트되는 마스터 브랜치에서 개발 중이며, 여기에는 이미 완료된 변경 사항이 포함되어 있으며 새 릴리스를 안정화하기 위해 XNUMX개월마다 분기가 분기됩니다.
자바 SE 18 받기
이 새 릴리스를 테스트하는 데 관심이 있는 경우 Linux(x86_64, AArch64), Windows(x86_64) 및 macOS(x86_64, AArch64)용 빌드가 준비되었으며 다운로드할 수 있습니다. 아래 링크에서.