Java 11의 변경 점
수정점
2018/09/25 Java11 발표
다음은 Java 11의 JEP입니다.
JDK9에서 출시된 모델
JDK9로 변경된 이후 6개월(3월과 9월)마다 피처 발표 이런 발표 모델을 진행한다.또 취약성 대응과 결함 잠금은 1월, 4월, 7월, 10월 연간 총 4차례에 이른다.2진법 제공에 관해서는 지금까지 갑골문에서 2진법을 무상으로 제공했지만 9 이후 무료 2진법은 OpenJDK에서 제공된 것으로 바뀌었다.9 이후 OracleJDK는 유료입니다.또 8 이전에는 오라클 JDK와 오픈 JDK가 기술적으로 차이가 있었지만 이는 사라졌다.
LTS
JDK11 이후 오라클JDK는 3년마다 발매된다.갑골문의 유상 지원은 최소 8년의 안전 갱신을 제공한다.또 JDK11 이후에는 개발, 테스트, 시작, 시위 행진에 무료로 사용할 수 있다.
Java도 현재 무상(기타 JDK와 무관)
자바에 대한 지원과 업데이트는 수십 명의 자바 챔피언이 집필했다.문서의 일본어 문서가 공개되었습니다.
인코딩에 큰 영향을 미치는 JEP
JEP181 Nest-Based Access Control
자바 10 이전에 내부 클래스에서 외부 클래스를 호출하는 privvate 방법의 코드는 서로 다른 바이트 코드 출력입니다.
JDK10으로 다음 코드를 보십시오.
Outer.javapublic class Outer {
private int i = 0;
public class Inner {
public int i() {
return i;
}
}
}
컴파일한 후, 역컴파일링 파일을 시험해 보자.$ javap -p -c Outer\$Inner
Compiled from "Outer.java"
public class Outer$Inner {
final Outer this$0;
public Outer$Inner(Outer);
Code:
0: aload_0
1: aload_1
2: putfield #1 // Field this$0:LOuter;
5: aload_0
6: invokespecial #2 // Method java/lang/Object."<init>":()V
9: return
public int i();
Code:
0: aload_0
1: getfield #1 // Field this$0:LOuter;
4: invokestatic #3 // Method Outer.access$000:(LOuter;)I
7: ireturn
}
이어 JDK11로 같은 코드를 컴파일해 역조립을 시도한다.$ javap -p -c Outer\$Inner
Compiled from "Outer.java"
public class Outer$Inner {
final Outer this$0;
public Outer$Inner(Outer);
Code:
0: aload_0
1: aload_1
2: putfield #1 // Field this$0:LOuter;
5: aload_0
6: invokespecial #2 // Method java/lang/Object."<init>":()V
9: return
public int i();
Code:
0: aload_0
1: getfield #1 // Field this$0:LOuter;
4: getfield #3 // Field Outer.i:I
7: ireturn
}
JDK10에서 컴파일한 사람, 인너 클래스는 Outer의 static 방법access$000을 호출합니다.JDK11에서 인너 클래스는access$000 방법이 아니라 Outer 클래스의 Outer입니다.직접 호출 i.
해당 영상은 JVM Language Summit 2018에 공개됐다.
Java Is Still Free
JEP309 Dynamic Class-File Constants
동적 상수를 지원하도록 Java 클래스 파일 형식을 확장합니다.Java 10 이전에는 원본과 리소스가 있는 String만 Constant Pool에 저장할 수 있었고 그 외에도 Constant Pool을 사용하여 처리할 수 있었다.동적 상수의 장점은 언어와 컴파일러의 자유도가 상승하고 바이트 코드의 상수의 자유도가 상승하는 것이다.
해당 영상은 JVM Language Summit 2018에 공개됐다.
JEP320 Remove the Java EE and CORBA Modules
JavaEE 및 CORBA 모듈이 제거되었습니다.대상은 코바, JAXB, JAX-WS, Common Activation Framework, JTA다.이러한 에이전트 모듈은 다음과 같습니다.
JDK11 이후 오라클JDK는 3년마다 발매된다.갑골문의 유상 지원은 최소 8년의 안전 갱신을 제공한다.또 JDK11 이후에는 개발, 테스트, 시작, 시위 행진에 무료로 사용할 수 있다.
Java도 현재 무상(기타 JDK와 무관)
자바에 대한 지원과 업데이트는 수십 명의 자바 챔피언이 집필했다.문서의 일본어 문서가 공개되었습니다.
인코딩에 큰 영향을 미치는 JEP
JEP181 Nest-Based Access Control
자바 10 이전에 내부 클래스에서 외부 클래스를 호출하는 privvate 방법의 코드는 서로 다른 바이트 코드 출력입니다.
JDK10으로 다음 코드를 보십시오.
Outer.javapublic class Outer {
private int i = 0;
public class Inner {
public int i() {
return i;
}
}
}
컴파일한 후, 역컴파일링 파일을 시험해 보자.$ javap -p -c Outer\$Inner
Compiled from "Outer.java"
public class Outer$Inner {
final Outer this$0;
public Outer$Inner(Outer);
Code:
0: aload_0
1: aload_1
2: putfield #1 // Field this$0:LOuter;
5: aload_0
6: invokespecial #2 // Method java/lang/Object."<init>":()V
9: return
public int i();
Code:
0: aload_0
1: getfield #1 // Field this$0:LOuter;
4: invokestatic #3 // Method Outer.access$000:(LOuter;)I
7: ireturn
}
이어 JDK11로 같은 코드를 컴파일해 역조립을 시도한다.$ javap -p -c Outer\$Inner
Compiled from "Outer.java"
public class Outer$Inner {
final Outer this$0;
public Outer$Inner(Outer);
Code:
0: aload_0
1: aload_1
2: putfield #1 // Field this$0:LOuter;
5: aload_0
6: invokespecial #2 // Method java/lang/Object."<init>":()V
9: return
public int i();
Code:
0: aload_0
1: getfield #1 // Field this$0:LOuter;
4: getfield #3 // Field Outer.i:I
7: ireturn
}
JDK10에서 컴파일한 사람, 인너 클래스는 Outer의 static 방법access$000을 호출합니다.JDK11에서 인너 클래스는access$000 방법이 아니라 Outer 클래스의 Outer입니다.직접 호출 i.
해당 영상은 JVM Language Summit 2018에 공개됐다.
Java Is Still Free
JEP309 Dynamic Class-File Constants
동적 상수를 지원하도록 Java 클래스 파일 형식을 확장합니다.Java 10 이전에는 원본과 리소스가 있는 String만 Constant Pool에 저장할 수 있었고 그 외에도 Constant Pool을 사용하여 처리할 수 있었다.동적 상수의 장점은 언어와 컴파일러의 자유도가 상승하고 바이트 코드의 상수의 자유도가 상승하는 것이다.
해당 영상은 JVM Language Summit 2018에 공개됐다.
JEP320 Remove the Java EE and CORBA Modules
JavaEE 및 CORBA 모듈이 제거되었습니다.대상은 코바, JAXB, JAX-WS, Common Activation Framework, JTA다.이러한 에이전트 모듈은 다음과 같습니다.
JEP181 Nest-Based Access Control
자바 10 이전에 내부 클래스에서 외부 클래스를 호출하는 privvate 방법의 코드는 서로 다른 바이트 코드 출력입니다.
JDK10으로 다음 코드를 보십시오.
Outer.java
public class Outer {
private int i = 0;
public class Inner {
public int i() {
return i;
}
}
}
컴파일한 후, 역컴파일링 파일을 시험해 보자.$ javap -p -c Outer\$Inner
Compiled from "Outer.java"
public class Outer$Inner {
final Outer this$0;
public Outer$Inner(Outer);
Code:
0: aload_0
1: aload_1
2: putfield #1 // Field this$0:LOuter;
5: aload_0
6: invokespecial #2 // Method java/lang/Object."<init>":()V
9: return
public int i();
Code:
0: aload_0
1: getfield #1 // Field this$0:LOuter;
4: invokestatic #3 // Method Outer.access$000:(LOuter;)I
7: ireturn
}
이어 JDK11로 같은 코드를 컴파일해 역조립을 시도한다.$ javap -p -c Outer\$Inner
Compiled from "Outer.java"
public class Outer$Inner {
final Outer this$0;
public Outer$Inner(Outer);
Code:
0: aload_0
1: aload_1
2: putfield #1 // Field this$0:LOuter;
5: aload_0
6: invokespecial #2 // Method java/lang/Object."<init>":()V
9: return
public int i();
Code:
0: aload_0
1: getfield #1 // Field this$0:LOuter;
4: getfield #3 // Field Outer.i:I
7: ireturn
}
JDK10에서 컴파일한 사람, 인너 클래스는 Outer의 static 방법access$000을 호출합니다.JDK11에서 인너 클래스는access$000 방법이 아니라 Outer 클래스의 Outer입니다.직접 호출 i.해당 영상은 JVM Language Summit 2018에 공개됐다.
Java Is Still Free
JEP309 Dynamic Class-File Constants
동적 상수를 지원하도록 Java 클래스 파일 형식을 확장합니다.Java 10 이전에는 원본과 리소스가 있는 String만 Constant Pool에 저장할 수 있었고 그 외에도 Constant Pool을 사용하여 처리할 수 있었다.동적 상수의 장점은 언어와 컴파일러의 자유도가 상승하고 바이트 코드의 상수의 자유도가 상승하는 것이다.
해당 영상은 JVM Language Summit 2018에 공개됐다.
JEP320 Remove the Java EE and CORBA Modules
JavaEE 및 CORBA 모듈이 제거되었습니다.대상은 코바, JAXB, JAX-WS, Common Activation Framework, JTA다.이러한 에이전트 모듈은 다음과 같습니다.
JEP321 HTTP Client (Standard)
HTTP 클라이언트 API가 표준화되었습니다.비동기식 지원, HTTP/2 지원.모듈 이름은 자바입니다.net.http.
이 동영상이 공개됐습니다.
JEP323 Local-Variable Syntax for Lambda Parameters
자바 10에서 가져온 로컬 변수형 추론과 마찬가지로, Ramda 파라미터도 var을 사용할 수 있습니다.나는 더욱 편성할 수 있게 되었다.
이 동영상이 공개됐습니다.
Reference
이 문제에 관하여(Java 11의 변경 점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zgmf_mbfp03/items/5c6e9a0a409fc28f4c59텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)