JAVA 11 초 체험

JAVA 가 반년 에 한 번 씩 새 버 전 을 발표 하면 서 며칠 전 JAVA 11 이 성대하게 등장 했다.JAVA 11 에서 새로운 특성 과 api 를 추 가 했 고 일부 특성 과 api 도 삭 제 했 으 며 일부 성능 과 쓰레기 회수 개선 도 있 습 니 다.
일 선 개발 자로 서 JAVA 11 은 우리 에 게 어떤 편리 함 을 가 져 다 줄 까?다음은 우리 가 체험 해 보 자.
Lambda 표현 식 에서 var 사용 하기
로 컬 변수 유형 var 는 자바 10 이 제시 한 새로운 개념 으로 문맥 에서 로 컬 변수의 유형 을 추정 하여 코드 의 가 독성 을 높 일 수 있 습 니 다.우 리 는 아래 의 예 를 보 자.
public class Main {
    public static void main(String[] args) throws Exception {
        URL url = new URL("http://www.oracle.com/");
        URLConnection conn = url.openConnection();
        Reader reader = new BufferedReader(
                new InputStreamReader(conn.getInputStream()));
    }
}

var 성명 을 사용 하면 위의 코드 를 다음 과 같이 바 꿀 수 있 습 니 다.
public class Main {
    public static void main(String[] args) throws Exception {
        var url = new URL("http://www.oracle.com/");
        var conn = url.openConnection();
        var reader = new BufferedReader(
                new InputStreamReader(conn.getInputStream()));
    }
}

우 리 는 URL,URLConnection,Reader 대신 var 를 사용 하여 코드 의 가 독성 을 향상 시 키 고 개발 도 편리 하 게 했다.그러나 JAVA 10 에서 var 변 수 는 lambda 표현 식 에서 설명 할 수 없 으 며 JAVA 11 에서 이 문 제 를 해결 했다.우 리 는 lambda 표현 식 에서 var 를 사용 할 수 있 습 니 다.다음 과 같 습 니 다.
(var x, var y) -> x.process(y)

위의 예 는
(x, y) -> x.process(y)

그러나 우 리 는 혼합 해서 사용 할 수 없다.아래 의 두 가지 예 는 모두 잘못된 것 이다.
//    lambda    ,     var,      var
(var x, y) -> x.process(y)

// lambda    ,        ,      
(var x, int y) -> x.process(y)

표준 화 된 HTTP 클 라 이언 트 API
이전에 우리 가 프로그램 에서 HttpClient 를 사 용 했 을 때,보통 apache 의 HttpClient 도 구 를 도입 했다.JAVA 11 에 서 는 JDK 원생 HttpClient 를 사용 할 수 있 습 니 다.
public class HttpTest {
    public static void main(String[] args) throws Exception {
        String uri = "http://www.baidu.com";

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(uri))
                .build();

        HttpResponse response =
                client.send(request, HttpResponse.BodyHandlers.ofString());

        System.out.println(response.body());
    }
}

위의 예 는 동기 화 된 get 요청 이 고 다른 방법 은 HttpClient 도 제공 합 니 다.예 를 들 어:
비동기 get게시 물 제출동시 다발 요청
  • Get Json
  • Post Json

  • 이 예 들 은 여기 서 상세 하 게 소개 하지 않 겠 습 니 다.필요 하 시 면 공식 예 를 참고 하 십시오.기능 이 매우 강 하 죠?우 리 는 다른 HttpClient 의 jar 가방 을 더 이상 도입 할 필요 가 없습니다.
    총결산
    일 선 개발 자 입장 에 서 는 JAVA 11 의 체험 이 이렇게 많은 데 누락 이 있 으 면 추 후 보완 하 겠 다.

    좋은 웹페이지 즐겨찾기