JavaRush /Java Blog /Random-KO /커피 브레이크 #154. Java의 세 가지 유형의 루프. JDK 19: 9월에 출시되는 새로운 Jav...

커피 브레이크 #154. Java의 세 가지 유형의 루프. JDK 19: 9월에 출시되는 새로운 Java 19 기능

Random-KO 그룹에 게시되었습니다

Java의 세 가지 유형의 루프

출처: Medium 이 게시물을 읽은 후에는 Java에서 반복하는 다양한 방법에 대해 배우게 됩니다. 커피 브레이크 #154.  Java의 세 가지 유형의 루프.  JDK 19: 9월에 출시되는 새로운 Java 19 기능 - 1루프는 조건이 true가 될 때까지 코드 블록을 실행하도록 설계되었습니다. Java에는 세 가지 유형의 루프가 있습니다.
  • ~하는 동안
  • 하는 동안
  • ~을 위한

while 루프

while 루프는 지정된 부울 조건이 true로 평가될 때까지 반복됩니다. 아래 다이어그램과 같이 조건 테스트가 true를 반환할 때까지 명령문이 실행됩니다. 커피 브레이크 #154.  Java의 세 가지 유형의 루프.  JDK 19: 9월부터 2까지 출시되는 새로운 Java 19 기능

통사론

while (condition true) {
       // Блок codeа
}

여기서는 x가 3보다 작은 경우 조건이 참이 될 때까지 while 루프가 실행됩니다.
public class WhileLoop {
     static int x = 1;
     public static void main(String[] args) {
         while(x < 3) {
             System.out.println("x = "+x);
             x++;
         }
     }
}
결론:
엑스 = 1 엑스 = 2

do-while 루프

do-while 루프는 한 가지 작은 차이점을 제외하고 while 루프와 유사합니다. do-while 루프는 조건을 테스트하기 전에 항상 한 번 실행됩니다. 커피 브레이크 #154.  Java의 세 가지 유형의 루프.  JDK 19: 9월부터 3까지 출시되는 새로운 Java 19 기능

통사론

do {
     //  Блок codeа
   } while(condition);

이 예에서는 조건이 참인지 거짓인지 테스트하기 전에 do 문이나 코드 블록이 항상 한 번 실행되는 것을 볼 수 있습니다.
static int x = 5;
        public static void main(String[] args) {
            do {
                System.out.println("x = "+x);
                x++;
            } while(x < 3);
        }
결론
엑스 = 5

for 루프

for 루프는 while 및 do-while 루프와 매우 다릅니다. 하나의 명령문 라인에서 초기화, 조건(참 또는 거짓), 증가/감소를 정의합니다. 커피 브레이크 #154.  Java의 세 가지 유형의 루프.  JDK 19: 9월부터 4까지 출시되는 새로운 Java 19 기능

통사론

For (initialization; condition; increment/decrement) {
    // Блок codeа
}

public static void main(String[] args) {
     for(int i = 0 ; i < 2 ; i++) {
         System.out.println("i = " + i);
     }
}
결론:
나는=0 나는=1
초기화: int i = 0은 루프 초기화 조건입니다. 조건: for 루프 내부의 블록이나 코드를 실행하기 위한 조건이 true인지 확인합니다. 조건이 거짓이면 루프가 종료됩니다. 증가/감소: 다음 반복을 위해 변수를 업데이트합니다.

확장된 for 루프(for-each)

단순한 for 루프보다 더 간결하고 읽기 쉬운 또 다른 버전의 for 루프가 있습니다. 이는 확장된 for 루프(또는 for-each 루프)라고 하며 컬렉션과 배열을 반복하는 데 사용됩니다. Iterable 인터페이스를 구현하는 모든 객체에서 사용할 수 있습니다.

class Main
{
    public static void main(String[] args)
    {
        int[] A = { 1, 2, 3, 4, 5 };

        for (int i: A) {
            System.out.println(i);
        }
    }
}
결론:
1 2 3 4 5

JDK 19: 9월에 출시되는 새로운 Java 19 기능

출처: Infoworld 다음은 곧 출시될 JDK 릴리스에 나타날 새로운 기능 목록입니다. 출시일은 2022년 9월 20일로 예정되어 있습니다. 9월로 예정된 단기 지원 릴리스인 Java Development Kit 19가 릴리스 후보 단계에 도달했습니다. 주의해야 할 7가지 기능은 구조적 병렬 처리, 레코드 템플릿, 외부 및 메모리 API 미리 보기, 오픈 소스 Linux/RISC-V 명령 집합 아키텍처(ISA) 지원입니다. JDK 19에서는 새로운 기능이 이미 동결되었으므로 제네릭 및 값 객체와 같은 기타 계획된 기능은 이후 버전의 플랫폼으로 연기되고 있습니다. 일반적으로 Java의 새 버전은 6개월마다 출시됩니다. JDK 19 릴리스 후보는 6월과 7월의 두 번의 램프다운 릴리스에 이어 8월 11일에 게시되었습니다. 두 번째 출시 후보는 8월 25일로 예상된다. JDK 19의 초기 빌드는 jdk.java.net/19 에서 다운로드할 수 있습니다 . JDK 19 기능은 다음과 같습니다.
  • 구조적 병렬성 (인큐베이션 단계 중) 구조적 동시성 API를 사용하여 다중 스레드 프로그래밍을 단순화하도록 설계되었습니다. 이 병렬 처리는 서로 다른 스레드에서 실행되는 여러 작업을 단일 작업 단위로 처리합니다. 따라서 오류 처리 및 취소가 단순화되고 신뢰성도 향상됩니다.

  • 레코드 템플릿 미리보기 (레코드 값 구문 분석용) 이제 레코드 패턴과 유형 패턴을 중첩할 수 있어 선언적이고 강력하며 구성 가능한 탐색 및 데이터 조작 형식을 제공합니다. 새로운 기능에는 유형 패턴의 구문이나 의미를 변경하지 않고 보다 복잡한 복합 데이터 쿼리를 표현하기 위해 패턴 일치를 확장하는 것이 포함됩니다.

    이 혁신은 2021년 3월 JDK 16에 도입된 인스턴스의 패턴 일치를 기반으로 합니다. 향후 릴리스에서는 배열 템플릿 및 가변 인수 템플릿과 같은 기능을 사용하여 레코드 템플릿을 확장해야 할 수도 있습니다.

    게시물 템플릿은 소규모 성능 지향 Java 기능을 탐색하고 개발하는 것을 목표로 하는 Amber 프로젝트 의 일부입니다.

  • 외부 및 메모리 API 함수의 미리보기 버전입니다 . 새 릴리스에는 Java 프로그램이 Java 런타임 외부의 코드 및 데이터와 상호 작용할 수 있도록 하는 API가 도입됩니다. API는 타사 기능(즉, JVM 외부 코드)을 효율적으로 호출하고 외부 메모리(JVM에서 관리하지 않는 메모리)에 안전하게 액세스함으로써 Java 프로그램이 Java 프로그램의 단점 없이 기본 라이브러리를 호출하고 기본 데이터를 처리할 수 있도록 합니다. 네이티브 인터페이스(JNI).

    외부 및 메모리 API는 두 가지 이전 인큐베이션 API, 즉 외부 메모리 액세스 API와 외부 링커 API를 결합합니다. 외부 함수 및 메모리 API는 이전에 JDK 17에서 배양되었으며 JDK 18에서 다시 배양되었습니다.

  • 가상 스레드 미리보기. 이 기능은 고성능 병렬 애플리케이션을 작성, 유지 관리 및 모니터링하는 노력을 크게 줄여주는 경량 스레드를 도입합니다. 혁신의 목적은 간단한 요청별 스레드 스타일로 작성된 서버 애플리케이션을 확장하는 기능을 제공하는 것입니다. 이 기능은 java.lang Thread API를 사용하여 최소한의 변경으로 가상 스레드를 삽입하고 기존 JDK 도구를 사용하여 가상 스레드의 문제를 해결, 디버그 및 프로파일링하는 코드를 대상으로 합니다.

  • 스위치 표현식 및 명령문에 대한 패턴 일치 의 세 번째 미리보기입니다 . 패턴 일치를 스위치로 확장하여 각각 특정 효과가 있는 여러 패턴에 대해 표현식을 테스트할 수 있으므로 복잡한 데이터 중심 쿼리를 간결하고 안전하게 표현할 수 있습니다.

    이 기능은 이전에 JDK 17 및 JDK 18에서 미리 보기로 제공되었습니다. 세 번째 미리 보기에서는 protected when 패턴을 스위치 블록의 절로 바꾸는 등의 개선 사항이 추가되었습니다. 또한 선택기 표현식의 값이 null일 때 스위치 패턴의 런타임 의미 체계는 이제 레거시 스위치 의미 체계를 지원합니다.

    이 혁신은 케이스 라벨에 패턴을 표시함으로써 스위치 표현과 연산자의 표현력과 적용성을 확장할 것입니다. 또한 개발자는 필요할 때 null 및 스위치에 대한 과거의 적대감을 완화하고, 스위치 문의 안전성을 향상시키며, 기존 스위치 문과 문이 변경되지 않고 계속 컴파일되고 동일한 의미 체계로 실행되도록 보장할 수 있습니다.

  • 벡터 API의 네 번째 인큐베이션 . 런타임 시 지원되는 프로세서 아키텍처에서 최적의 벡터 명령으로 안정적으로 컴파일되는 벡터 계산을 표현합니다. 이는 동등한 스칼라 계산보다 더 나은 성능을 제공합니다. API를 사용하는 개발자는 HotSpot의 자동 벡터화 기능을 사용하여 Java에서 복잡한 벡터 알고리즘을 작성할 수 있지만 벡터화를 보다 예측 가능하고 안정적으로 만드는 사용자 정의 모델을 사용할 수 있습니다. Vector API는 이전에 JDK 16, JDK 17 및 JDK 19에서 배양되었습니다.

    Vector API는 비트 수 계산, 비트 순서 반전, 비트 압축 및 확장과 같은 작업을 포함하여 비트 적분 선형 연산을 확장합니다.

  • Linux/RISC-V Java 포트는 이미 광범위한 언어 툴킷에서 지원되는 하드웨어 명령어 세트 지원을 받게 됩니다. Linux/RISC-V 포트는 이제 벡터 명령어를 포함하는 64비트 범용 ISA인 RV64GV RISC-V 구성을 지원합니다.

    또한 이 포트는 템플릿 해석기, C1 JIT 컴파일러(클라이언트), C2 JIT 컴파일러(서버) 및 ZGC 및 Shenandoah를 포함한 모든 현재 주요 가비지 수집기 등 HotSpot 가상 머신 옵션을 지원합니다.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION