"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java가 출시되었습니다. 새로운 기능은 무엇입니까?

Java가 출시되었습니다. 새로운 기능은 무엇입니까?

2024-11-09에 게시됨
검색:155

Java Has Arrived What

Java 23이 공식 출시되었습니다! LTS(장기 지원)가 아닌 릴리스입니다. 수명이 짧은 버전이지만 Java 23에는 흥미로운 개선 사항, 버그 수정, 주의해야 할 제거된 기능 및 옵션이 포함되어 있습니다.

새로운 기능과 JDK 21 및 JDK 22와 같은 이전 버전의 기능을 기반으로 어떻게 구축되는지 살펴보겠습니다.

범위 값: JDK 22 및 JDK 21 미리 보기를 기반으로 구축

JDK 23에서 가장 기대되는 기능 중 하나는 범위 값(미리보기)입니다. JDK 22와 JDK 21에서도 미리 볼 수 있었던 이 기능은 메소드가 스레드와 하위 스레드 간에 불변 데이터를 공유하는 방식을 단순화합니다. 이전 Java 버전에서는 스레드 로컬 데이터를 처리하는 것이 번거롭고 메모리가 부족할 수 있습니다. 범위가 지정된 값은 보다 효율적이고 오버헤드가 낮은 대안을 제공하여 이를 변경합니다.

JDK 23의 차이점은 무엇인가요? ScopedValue.callWhere() 메서드는 이제 새로운 기능적 인터페이스를 사용하므로 컴파일러가 확인된 예외가 발생할 수 있는지 여부를 더 쉽게 추론할 수 있습니다. 이로 인해 ScopedValue.getWhere() 메서드가 제거되어 API가 더욱 간소화되었습니다.

이는 이전 릴리스에서 본 개선 사항의 연속이며, 범위가 지정된 값이 영구적인 기능으로 발전하는 것을 보는 것은 매우 흥미롭습니다.

구조적 동시성: 세 번째 미리보기

Java의 동시성 모델은 항상 강력했지만 관리하기가 까다로웠습니다. JDK 21에 처음 등장했고 이제 JDK 23에서 세 번째 미리 보기에 도달한 구조화된 동시성(미리 보기)을 입력하세요. 여기서 아이디어는 서로 다른 스레드에서 실행되는 관련 작업을 하나의 그룹으로 그룹화하여 동시 프로그래밍을 보다 직관적으로 만드는 것입니다. 단일 작업 단위. 이를 통해 오류 처리가 단순화되고 취소 프로세스의 신뢰성이 향상됩니다.

JDK 23에서는 구조화된 동시성이 미리 보기로 남아 있지만 동시성 코드를 더 쉽게 추론하고 오류 발생 가능성을 줄입니다. JDK 21 또는 JDK 22의 미리보기로 작업해 본 적이 있다면 이 기능이 얼마나 발전했는지 높이 평가할 것입니다. 이제 스레드 누출과 같은 일반적인 동시성 문제를 처리할 수 있는 기능이 향상되어 안정적인 멀티스레드 코드를 더 쉽게 작성할 수 있습니다.

유연한 생성자 몸체: JDK 22 이후로 진화

또 다른 환영받는 추가 사항은 유연한 생성자 본체(미리보기)입니다. JDK 22에서 "super() 이전 명령문"으로 처음 미리 본 기능을 통해 개발자는 슈퍼클래스 생성자를 호출하기 전에 초기화 코드를 작성할 수 있습니다. 사소해 보이는 이 변화는 생성자 논리를 훨씬 더 명확하게 만들고 유효성 검사 또는 기타 설정 논리가 실패할 때 불필요한 객체 생성을 방지할 수 있습니다.

JDK 22에서 이 기능은 개발자가 생성자 논리를 더 효과적으로 제어할 수 있도록 도입되었으며 JDK 23의 두 번째 미리 보기에서는 해당 기능을 계속해서 개선합니다. 초기화 논리를 슈퍼클래스 호출보다 앞서 이동함으로써 개발자는 이전에 코드베이스를 어수선하게 만들었던 지저분한 보조 정적 메서드와 중간 생성자를 피할 수 있습니다.

암시적으로 선언된 클래스: 세 번째는 매력입니다.

Java를 가르치거나 빠른 스크립트를 작성하는 사람들에게 암시적으로 선언된 클래스 및 인스턴스 메서드는 JDK 21에 도입된 이후 획기적인 변화를 가져왔습니다. 이 기능을 사용하면 초보자가 이해할 필요 없이 단순화된 Java 프로그램을 작성할 수 있습니다. 처음부터 복잡한 언어 기능을 제공합니다.

JDK 23에서는 이 기능이 몇 가지 추가 업그레이드되었습니다. 이제 암시적으로 선언된 클래스는 간단한 텍스트 I/O를 위한 세 가지 정적 메서드를 자동으로 가져올 수 있으며 요청 시 java.base 모듈의 모든 공용 최상위 클래스와 인터페이스도 가져올 수 있습니다. 이러한 개선 사항은 신규 사용자의 학습 곡선을 더욱 원활하게 만드는 데 도움이 됩니다.

모듈 가져오기 선언: 새로운 미리보기

JDK 23의 새로운 미리보기 기능 중 하나는 모듈 가져오기 선언입니다. 이 기능을 사용하면 단일 명령문으로 모듈에서 내보낸 모든 패키지를 가져올 수 있으므로 모듈 라이브러리 재사용이 단순화됩니다. 계층 구조에서 패키지가 어디에 있는지 더 이상 기억할 필요가 없는 초보자에게 특히 유용하며, 여러 유형 가져오기 온디맨드 선언으로 인한 혼란을 줄여줍니다.

이것은 JDK 23의 새로운 기능이지만, 특히 모듈 프로그래밍을 처음 접하는 사람들을 위해 Java의 모듈 시스템에 더 쉽게 접근할 수 있도록 하는 데 큰 가능성을 보여줍니다.

마크다운 문서 주석: Javadoc의 새로운 시대

솔직히 말하자면 HTML과 @ 태그로 JavaDoc을 작성하는 것은 어려울 수 있습니다. JDK 23에서는 Markdown 문서 주석(미리 보기) 기능을 통해 개발자가 Markdown을 사용하여 API 문서를 작성할 수 있으므로 읽기 쉽고 형식이 올바른 주석을 더 쉽게 만들 수 있습니다.

이것은 JDK 23의 새로운 기능이지만 몇 년 전에 추가했어야 했던 기능입니다. Markdown은 개발자 커뮤니티에서 널리 사용되며 이를 JavaDoc으로 가져오면 문서 작성 및 유지 관리가 훨씬 쉬워집니다.

Z 가비지 수집기(ZGC): 기본적으로 세대 모드

JDK 15에 도입된 이후 Z 가비지 수집기(ZGC)를 사용해 왔다면 JDK 23에서 ZGC가 이제 기본적으로 세대로 설정된다는 사실을 알게 되어 기쁠 것입니다. 모드(JEP 474). 이 스위치는 수명이 짧은 개체를 자주 수집하는 데 중점을 두어 애플리케이션 성능을 향상시킵니다. 이번 릴리스에서는 비세대 ZGC가 더 이상 사용되지 않지만 이는 세대 접근 방식이 Java 가비지 수집의 미래라는 분명한 신호입니다.

JDK 22 이하에서 실행 중인 경우 JDK 23으로 전환하면 별다른 노력 없이도 눈에 띄는 성능 향상을 얻을 수 있습니다.

벡터 API: 아직 배양 중이지만 더욱 강력해졌습니다.

JDK 16에 도입된 벡터 API를 사용하면 개발자가 런타임에 최적의 벡터 명령으로 컴파일하는 벡터 계산을 수행할 수 있습니다. API는 계속 발전하고 있으며 JDK 23에서는 8번째 인큐베이터를 볼 수 있습니다. 이 API는 아직 인큐베이팅 단계이므로 아직 완성된 기능은 아니지만 성숙도에 조금씩 가까워지고 있습니다.

성능이 중요한 애플리케이션, 특히 대규모 데이터 세트를 처리하는 애플리케이션의 경우 Vector API는 엄청난 속도 향상을 제공할 수 있습니다. 이전 인큐베이션(예: JDK 22)에서 작업한 적이 있다면 지금은 훨씬 더 안정적이라는 것을 알 수 있지만 여전히 최종 조각이 제자리에 놓이기를 기다리고 있습니다(Project Valhalla와 관련이 있을 수 있음).

Stream Gatherers: 두 번째 미리보기

JDK 22에서는 사용자 정의 중간 작업을 허용하여 Stream API에 유연성을 추가하는 기능인 Stream Gatherers(미리 보기)를 도입했습니다. JDK 23에서는 두 번째 미리보기로 돌아왔습니다. 스트림을 사용하여 데이터를 처리하는 것을 좋아한다면 이전에는 달성하기 어려웠던 방식으로 데이터 파이프라인을 변환하는 이 기능의 기능을 높이 평가할 것입니다.

스트림 수집기는 스트림의 성능을 확장하여 개발자가 특히 무한 스트림 또는 사용자 정의 변환 작업을 할 때 더욱 복잡한 시나리오를 쉽게 처리할 수 있도록 해줍니다.

클래스 파일 API: 두 번째 미리보기

Java 클래스 파일을 조작하는 도구를 구축하는 경우 JDK 23의 클래스 파일 API(미리보기)가 적합합니다. JDK 22에서 처음 도입된 이 API는 ASM과 같은 타사 라이브러리 없이도 클래스 파일을 구문 분석하고 생성하는 표준 방법을 제공합니다. JDK 23의 두 번째 미리보기에서는 이 API를 개선하여 작업하기가 더 간편하고 쉬워졌습니다.

도구 개발자에게 이는 큰 문제입니다. 더 이상 JVM 사양이 변경될 때마다 라이브러리를 업데이트하려고 애쓸 필요가 없습니다. 이제 Java에는 자사 솔루션이 있습니다.

마무리: 업그레이드해야 할까요?

Java 23은 LTS 릴리스가 아닐 수도 있지만 JDK 21 및 JDK 22에 도입된 기능을 기반으로 하는 흥미로운 기능으로 가득 차 있습니다. 범위가 지정된 값과 구조화된 동시성부터 더 나은 가비지 수집기, 스트림 및 생성자 개선에 이르기까지 이번 릴리스에서는 Java 개발이 한 단계 더 발전했습니다.

릴리스 선언문 이 기사는 https://dev.to/isaactony/java-23-has-arrived-whats-new-9- Minute-read-i61?1에서 복제됩니다.1 침해가 있는 경우에는 [email protected]으로 문의하시기 바랍니다. 그것을 삭제하려면
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3