Java 9
유현석
jaseok@gmail.com
software campus
Java 9
software campus
1. Java 버젼 히스토리
2. 알아두면 좋을 내용들 - JCP, JSR, JEP
3. Java 9 에서 변화된 부분
4. Jigsaw project (주요 프로젝트)
5. Java 9에서 자주 사용할만한 것들
6. Java 9, 그 이후
Java 9
software campus
1. Java 의 버젼 히스토리
1. Java의 버젼 히스토리
software campus
Java 9
Java 의 현재까지의 버젼 출시과정
참고, Arkadiusz Sokolwski 2015
1. Java의 버젼 히스토리
software campus
Java 9
http://openjdk.java.net/projects/jdk9/
연기
1. Java의 버젼 히스토리
software campus
Java 9
Java 9 릴리즈 되는 시점 - 연기이유
https://www.infoq.com/news/2015/12/oracle-confirms-delayed-java9
Project Jigsaw
Java 9
software campus
2. 알아두면 좋을 내용들 - JCP, JSR, JEP
2. 알아두면 좋을 내용들 - JCP, JSR, JEP
software campus
Java 9
(Java 8 이후 일정)
. Java 8 이후에는 2년 간격으로 새로운 버전을 내놓을 예정
. Java 8 에 Self-Tuning JVM, Native 지원 강화, Big Data (2GB 이상 지원),
Tail Calls/Continuation, Meta-Object 프로토콜, Multi-Tenancy, 자원 관리 등
. Java 9의 JDK9에 대해 알고 싶으면 다음의 두 사이트를 참고하기 바란다.
- http://openjdk.java.net/projects/jdk9

- http://jdk9.java.net
2. 알아두면 좋을 내용들 - JCP, JSR, JEP
software campus
Java 9
(JDK 9)
- JDK 9 프로젝트의 목적은 Java SE 9 플랫폼의 오픈소스 참조문서를 만들어 내
는 것이다. 또한 JCP 체제하에서 이번의 JSR(Java 상세 명세서)을 정의하는 것이다.
(The goal of this Project is to produce an open-source reference implementation
of the Java SE 9 Platform, to be defined by a forthcoming JSR in the Java
Community Process.)
이번 릴리즈 버젼의 스케쥴과 특징은 JEP 2.0의 제안에 의해 개정된 JEP 과정을 통
해 제안되고, 추적된다.
(The schedule and features of this release are proposed and tracked via the JEP
Process, as amended by the JEP 2.0 proposal.)
2. 알아두면 좋을 내용들 - JCP, JSR, JEP
software campus
Java 9
(용어정리)
*JCP(Java Community Process) : Java 기술의 표준 기술 명세서를 개발하는 체제(시스
템)이다. (The JCP is the mechanism for developing standard technical specifications
for Java technology.)
*JSR(Java Specification Requests Java 요구사항 상세 명세서) : Java 플랫폼에 제안된 실
제 명세서와 최종결정된 명세서
(Java Specification Requests (JSRs) are the actual descriptions of proposed and final
specifications for the Java platform.)
*JEP(JDK Enhancement Proposal) : Java Development Kit 과 OpenJDK을 향상시키기
위한 제안들을 모으는 오라클의 밑그림을 그리는 처리방법 이다. 오라클에서 JEP는 JDK
릴리즈 프로젝트와 연관된 노력에 대한 장기 로드맵 역할을 한다.
(The JDK Enhancement Proposal (or JEP) is a process drafted by Oracle Corporation
for collecting proposals for enhancements to the Java Development Kit and OpenJDK.
In the words of Oracle, the JEP serve as the long-term Roadmap for JDK Release
Projects and related efforts.)
2. 알아두면 좋을 내용들 - JCP, JSR, JEP
software campus
Java 9
OpenJDK
Sun(현재 Oracle)이 JDK 7을 개발하기 시작할 때 이전과 다른 점이 하나 있었는데, Sun이
JDK를 오픈소스화 하기 위해 2007년 OpenJDK를 만들었다는 것이다. (OpenJDK는 완전
한 Free의 오픈소스 코드를 기반으로 Fully buildable한 Java Development Kit을 배포하기
위한 Sun의 노력이다.)
Sun이 3rd-Party 라이브러리의 저작권자에게 오픈소스로 공개할 수 있도록 설득하고자 했
으나 잘되지 않았고, 저작권자가 오픈소스화를 거부한 일부 컴포넌트를 제외한 나머지
JDK 소스코드 전부를 OpenJDK에 제공했고, OpenJDK는 이를 기반으로 이외의 컴포넌트
들의 대안 코드를 마련하면서 JDK7 프로젝트를 시작했다.
참고 : http://stunstun.tistory.com/222
2. 알아두면 좋을 내용들 - JCP, JSR, JEP
software campus
Java 9
OpenJDK vs OracleJDK
Oracle JDK는 OpenJDK의 JDK7 기반에 추가로 OpenJDK에 포함되지 않은 Component까지 모두
갖춘 프로젝트이다.
아래와 같이 Vendor에 의한 분리된 Version이 존재하는데,
. Oracle’s JDK (Commertial support from oracle)
. OpenJDK, the open source java
JDK7 이전 OpenJDK는 Oracle JDK에 비해 누락된 기능 및 성능이슈가 존재
현재는 *java-web-plugin(http://en.wikipedia.org/wiki/IcedTea - 저작권이 있는 라이브러리의 대
안으로 작성된)을 제외하고는 정확하게 같다고 볼 수 있다. 몇몇 사람들은 아직도 OpenJDK가 Oracle
JDK에 비해 성능이 떨어진다고 하지만, 이것은 근거없는 말이다.
두 Version은 모두 Java SE 7 JSR(JSR 336) Spec 을 구현하였다.
*IcedTea : 개발자들이 OpenJDK를 좀 더 쉽게 빌드하고 배포하는데 초점을 맞춘 프로젝트이다.
참고 : http://stunstun.tistory.com/222
Java 9
software campus
3. Java 9 에서 변화된 부분
3. Java 9 에서 변화된 부분
software campus
Java 9
http://openjdk.java.net/projects/jdk9/
3. Java 9 에서 변화된 부분
software campus
Java 9
JEPs targeted to JDK 9, so far
3. Java 9 에서 변화된 부분
software campus
Java 9
JEPs targeted to JDK 9, so far
3. Java 9 에서 변화된 부분
software campus
Java 9
JEPs targeted to JDK 9, so far - 체크 해볼만한 내용들
( Jigsaw Project )
200 : The Modular JDK
201 : Modular Source Code
275 : Modular Java Application Packaging
110 : HTTP 2 Client
223 : New Version-String Scheme
( deprecated )
289 : Deprecate the Applet API
211 : Elide Deprecation Warnings on Import Statements
214 : Remove GC Combinations Deprecated in JDK 8
277 : Enhanced Deprecation
224 : HTML5 javadoc
222 : jshell : The Java Shell ( Read-Eval-Print Loop)
Java 9
software campus
4. Jigsaw project (주요 프로젝트)
4. Jigsaw project (주요 프로젝트)
software campus
Java 9
Jigsaw Project
jigsaw 는 프로젝트로 따로 떨어져 있으며,
JSR 번호 중에 옆에 적혀있는 것들을 체크해
보면 될것 같다.
4. Jigsaw project (주요 프로젝트)
software campus
Java 9
software campus
Java 9 Jigsaw 그림
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Eclipse Neon with Java 9 Jigsaw
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Java 8
4. Jigsaw project (주요 프로젝트) Java 9
Java 9
software campus
Motivation :
. JAR/classpath hell reduction
. unexpressed/transitive dependencies
. manual dependencies management
. hide some (private) packages; com.sun.misc.*
. system instead of manual security
. JRE size reduction
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw 자주 사용하는 라이브러리 그림
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Modules for Java - Jigsaw
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw example
module com.foo.app{
requires com.foo.bar;
requires java.sql;
}
module java.sql{
requires java.logging;
requires java.xml;
exports java.sql;
exports javax.sql;
exports javax.transaction.xa;
}
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw example
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw - implied readability
module java.sql{
requires public java.logging;
requires public java.xml;
exports java.sql;
exports javax.sql;
exports javax.transaction.xa;
}
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw - implied readability
String url = …;
Properties props = …;
Driver d = DriverManager.getDriver(url);
Connection c = d.connect(url,props);
d.getParentLogger().info(“Connection acquired”);
4. Jigsaw project (주요 프로젝트) Java 9
software campus
implied readability
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw - services
module com.mysql.jdbc{
requires java.sql;
requires org.slf4j;
exports com.mysql.jdbc;
}
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw - services
module java.sql{
requires public java.logging;
requires public java.xml;
exports java.sql;
exports javax.sql;
exports javax.transaction.xa;
uses java.sql.Driver;
}
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw - services
module com.mysql.jdbc{
requires java.sql;
requires org.slf4j;
exports com.mysql.jdbc;
provides java.sql.Driver with com.mysql.jdbc.Driver;
}
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw - services
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw - qualified exports
module java.base{
…
exports sun.reflect to
java.corba,
java.logging,
java.sql,
java.sql.rowset,
jdk.scripting.nashorn;
}
4. Jigsaw project (주요 프로젝트) Java 9
software campus
Jigsaw - qualified exports
4. Jigsaw project (주요 프로젝트) Java 9
Java 9
software campus
5. Java 9에서 자주 사용할만한 것들
. 223 : New Version-String Scheme
. 110 : HTTP 2 Client
( deprecated )
. 289 : Deprecate the Applet API
. 211 : Elide Deprecation Warnings on Import Statements
. 214 : Remove GC Combinations Deprecated in JDK 8
. 277 : Enhanced Deprecation
software campus
Java 9
. 223 : New Version-String Scheme -1
참고, Arkadiusz Sokolwski 2015
5. Java 9에서 자주 사용할만한 것들
software campus
참고, Arkadiusz Sokolwski 2015
• MAJOR.MINOR.SECURITY
1.8.0 -> 8.0.0
1.8.0_05 -> 8.0.1
1.8.0_11 -> 8.0.2
1.8.0_20 -> 8.1.2
1.8.0_25 -> 8.1.3
Java 95. Java 9에서 자주 사용할만한 것들
. 223 : New Version-String Scheme -2
software campus
Java 95. Java 9에서 자주 사용할만한 것들
. 223 : New Version-String Scheme -3
http://openjdk.java.net/jeps/223
software campus
Java 9
참고, Arkadiusz Sokolwski 2015
HttpReponse response = HttpRequest
.create(new URI(“http://www.ocado.com”))
.body(noBody())
.GET().send();
int responseCode = response.responseCode();
String responseBody = response.body(asString());
System.out.println(responseBody);
. 110 : HTTP 2 Client -1
5. Java 9에서 자주 사용할만한 것들
software campus
참고, Arkadiusz Sokolwski 2015
HttpReponse response = HttpRequest
.create(new URI(“http://www.ocado.com”))
.body(noBody())
.GET();
CompletableFuture<HttpResponse> asyncResp = req.sendAsync();
Thread.sleep(10);
if(!asyncResp.isDone()){
asyncResp.cancel(true);
System.err.println(“timeout”);
return;
}
HttpResponse réponse = asyncResp.get();
Java 95. Java 9에서 자주 사용할만한 것들
. 110 : HTTP 2 Client -2
software campus
( deprecated )
289 : Deprecate the Applet API
211 : Elide Deprecation Warnings on Import Statements
214 : Remove GC Combinations Deprecated in JDK 8
277 : Enhanced Deprecation
Java 95. Java 9에서 자주 사용할만한 것들
software campus
( deprecated )
289 : Deprecate the Applet API
Java 95. Java 9에서 자주 사용할만한 것들
웹 브라우저 업체들의 Java Browser Plug-in의 삭제로 인해, 앞으로 개발되는 Java 프로그
램들은 Web Start 프로그램 형태나 Installable 어플리케이션 형태로 개발 유도
software campus
( deprecated )
211 : Elide Deprecation Warnings on Import Statements
Java 95. Java 9에서 자주 사용할만한 것들
자바 SE 8에서, 자바 컴파일러는 사용되지 않는
유형이 이름으로 가져올 때 또는 사용되지 않는
멤버 (메서드, 필드, 중첩 된 유형) 정적으로
가져올 때 사용 중단 경고를하기 위해 Java 언어
사양의 합리적인 해석이 필요하다.
사용하지 않는 부분의 경고에 대한 부분이
Deprecate 되는 것 같다.
software campus
( deprecated )
214 : Remove GC Combinations Deprecated in JDK 8
Java 95. Java 9에서 자주 사용할만한 것들
이전에 JEP 173를 통해 JDK 8에서 사용되지 않는 한 GC 조합을 제거한다.
software campus
( deprecated )
277 : Enhanced Deprecation
Java 95. Java 9에서 자주 사용할만한 것들
사용되지 않는 주석을 개조하고, API 수명주기를 강화하는 도구를 제공
Java 9
software campus
6. Java 9, 그 이후
5. Java 9, 그 이후
software campus
Java 9
java 10 : value classes
value class Point{
int x;
int y;
Point(int x, int y){
this.x = x;
this.y = y;
}
}
5. Java 9, 그 이후
software campus
Java 9
java 10 : generics
Reified Generics
Generics with values
List<int> intList = new ArrayList<>();
…
int val = intList.get(0);
class List$Point{ Point get(Point index); }
Java 9
software campus
감사합니다. ^^
Q & A

Java9 특징 훑어보기

  • 1.
  • 2.
    Java 9 software campus 1.Java 버젼 히스토리 2. 알아두면 좋을 내용들 - JCP, JSR, JEP 3. Java 9 에서 변화된 부분 4. Jigsaw project (주요 프로젝트) 5. Java 9에서 자주 사용할만한 것들 6. Java 9, 그 이후
  • 3.
    Java 9 software campus 1.Java 의 버젼 히스토리
  • 4.
    1. Java의 버젼히스토리 software campus Java 9 Java 의 현재까지의 버젼 출시과정 참고, Arkadiusz Sokolwski 2015
  • 5.
    1. Java의 버젼히스토리 software campus Java 9 http://openjdk.java.net/projects/jdk9/ 연기
  • 6.
    1. Java의 버젼히스토리 software campus Java 9 Java 9 릴리즈 되는 시점 - 연기이유 https://www.infoq.com/news/2015/12/oracle-confirms-delayed-java9 Project Jigsaw
  • 7.
    Java 9 software campus 2.알아두면 좋을 내용들 - JCP, JSR, JEP
  • 8.
    2. 알아두면 좋을내용들 - JCP, JSR, JEP software campus Java 9 (Java 8 이후 일정) . Java 8 이후에는 2년 간격으로 새로운 버전을 내놓을 예정 . Java 8 에 Self-Tuning JVM, Native 지원 강화, Big Data (2GB 이상 지원), Tail Calls/Continuation, Meta-Object 프로토콜, Multi-Tenancy, 자원 관리 등 . Java 9의 JDK9에 대해 알고 싶으면 다음의 두 사이트를 참고하기 바란다. - http://openjdk.java.net/projects/jdk9
 - http://jdk9.java.net
  • 9.
    2. 알아두면 좋을내용들 - JCP, JSR, JEP software campus Java 9 (JDK 9) - JDK 9 프로젝트의 목적은 Java SE 9 플랫폼의 오픈소스 참조문서를 만들어 내 는 것이다. 또한 JCP 체제하에서 이번의 JSR(Java 상세 명세서)을 정의하는 것이다. (The goal of this Project is to produce an open-source reference implementation of the Java SE 9 Platform, to be defined by a forthcoming JSR in the Java Community Process.) 이번 릴리즈 버젼의 스케쥴과 특징은 JEP 2.0의 제안에 의해 개정된 JEP 과정을 통 해 제안되고, 추적된다. (The schedule and features of this release are proposed and tracked via the JEP Process, as amended by the JEP 2.0 proposal.)
  • 10.
    2. 알아두면 좋을내용들 - JCP, JSR, JEP software campus Java 9 (용어정리) *JCP(Java Community Process) : Java 기술의 표준 기술 명세서를 개발하는 체제(시스 템)이다. (The JCP is the mechanism for developing standard technical specifications for Java technology.) *JSR(Java Specification Requests Java 요구사항 상세 명세서) : Java 플랫폼에 제안된 실 제 명세서와 최종결정된 명세서 (Java Specification Requests (JSRs) are the actual descriptions of proposed and final specifications for the Java platform.) *JEP(JDK Enhancement Proposal) : Java Development Kit 과 OpenJDK을 향상시키기 위한 제안들을 모으는 오라클의 밑그림을 그리는 처리방법 이다. 오라클에서 JEP는 JDK 릴리즈 프로젝트와 연관된 노력에 대한 장기 로드맵 역할을 한다. (The JDK Enhancement Proposal (or JEP) is a process drafted by Oracle Corporation for collecting proposals for enhancements to the Java Development Kit and OpenJDK. In the words of Oracle, the JEP serve as the long-term Roadmap for JDK Release Projects and related efforts.)
  • 11.
    2. 알아두면 좋을내용들 - JCP, JSR, JEP software campus Java 9 OpenJDK Sun(현재 Oracle)이 JDK 7을 개발하기 시작할 때 이전과 다른 점이 하나 있었는데, Sun이 JDK를 오픈소스화 하기 위해 2007년 OpenJDK를 만들었다는 것이다. (OpenJDK는 완전 한 Free의 오픈소스 코드를 기반으로 Fully buildable한 Java Development Kit을 배포하기 위한 Sun의 노력이다.) Sun이 3rd-Party 라이브러리의 저작권자에게 오픈소스로 공개할 수 있도록 설득하고자 했 으나 잘되지 않았고, 저작권자가 오픈소스화를 거부한 일부 컴포넌트를 제외한 나머지 JDK 소스코드 전부를 OpenJDK에 제공했고, OpenJDK는 이를 기반으로 이외의 컴포넌트 들의 대안 코드를 마련하면서 JDK7 프로젝트를 시작했다. 참고 : http://stunstun.tistory.com/222
  • 12.
    2. 알아두면 좋을내용들 - JCP, JSR, JEP software campus Java 9 OpenJDK vs OracleJDK Oracle JDK는 OpenJDK의 JDK7 기반에 추가로 OpenJDK에 포함되지 않은 Component까지 모두 갖춘 프로젝트이다. 아래와 같이 Vendor에 의한 분리된 Version이 존재하는데, . Oracle’s JDK (Commertial support from oracle) . OpenJDK, the open source java JDK7 이전 OpenJDK는 Oracle JDK에 비해 누락된 기능 및 성능이슈가 존재 현재는 *java-web-plugin(http://en.wikipedia.org/wiki/IcedTea - 저작권이 있는 라이브러리의 대 안으로 작성된)을 제외하고는 정확하게 같다고 볼 수 있다. 몇몇 사람들은 아직도 OpenJDK가 Oracle JDK에 비해 성능이 떨어진다고 하지만, 이것은 근거없는 말이다. 두 Version은 모두 Java SE 7 JSR(JSR 336) Spec 을 구현하였다. *IcedTea : 개발자들이 OpenJDK를 좀 더 쉽게 빌드하고 배포하는데 초점을 맞춘 프로젝트이다. 참고 : http://stunstun.tistory.com/222
  • 13.
    Java 9 software campus 3.Java 9 에서 변화된 부분
  • 14.
    3. Java 9에서 변화된 부분 software campus Java 9 http://openjdk.java.net/projects/jdk9/
  • 15.
    3. Java 9에서 변화된 부분 software campus Java 9 JEPs targeted to JDK 9, so far
  • 16.
    3. Java 9에서 변화된 부분 software campus Java 9 JEPs targeted to JDK 9, so far
  • 17.
    3. Java 9에서 변화된 부분 software campus Java 9 JEPs targeted to JDK 9, so far - 체크 해볼만한 내용들 ( Jigsaw Project ) 200 : The Modular JDK 201 : Modular Source Code 275 : Modular Java Application Packaging 110 : HTTP 2 Client 223 : New Version-String Scheme ( deprecated ) 289 : Deprecate the Applet API 211 : Elide Deprecation Warnings on Import Statements 214 : Remove GC Combinations Deprecated in JDK 8 277 : Enhanced Deprecation 224 : HTML5 javadoc 222 : jshell : The Java Shell ( Read-Eval-Print Loop)
  • 18.
    Java 9 software campus 4.Jigsaw project (주요 프로젝트)
  • 19.
    4. Jigsaw project(주요 프로젝트) software campus Java 9 Jigsaw Project jigsaw 는 프로젝트로 따로 떨어져 있으며, JSR 번호 중에 옆에 적혀있는 것들을 체크해 보면 될것 같다.
  • 20.
    4. Jigsaw project(주요 프로젝트) software campus Java 9
  • 21.
    software campus Java 9Jigsaw 그림 4. Jigsaw project (주요 프로젝트) Java 9
  • 22.
    software campus Eclipse Neonwith Java 9 Jigsaw 4. Jigsaw project (주요 프로젝트) Java 9
  • 23.
    software campus Java 8 4.Jigsaw project (주요 프로젝트) Java 9 Java 9
  • 24.
    software campus Motivation : .JAR/classpath hell reduction . unexpressed/transitive dependencies . manual dependencies management . hide some (private) packages; com.sun.misc.* . system instead of manual security . JRE size reduction 4. Jigsaw project (주요 프로젝트) Java 9
  • 25.
    software campus Jigsaw 자주사용하는 라이브러리 그림 4. Jigsaw project (주요 프로젝트) Java 9
  • 26.
    software campus Modules forJava - Jigsaw 4. Jigsaw project (주요 프로젝트) Java 9
  • 27.
    software campus Jigsaw example modulecom.foo.app{ requires com.foo.bar; requires java.sql; } module java.sql{ requires java.logging; requires java.xml; exports java.sql; exports javax.sql; exports javax.transaction.xa; } 4. Jigsaw project (주요 프로젝트) Java 9
  • 28.
    software campus Jigsaw example 4.Jigsaw project (주요 프로젝트) Java 9
  • 29.
    software campus Jigsaw -implied readability module java.sql{ requires public java.logging; requires public java.xml; exports java.sql; exports javax.sql; exports javax.transaction.xa; } 4. Jigsaw project (주요 프로젝트) Java 9
  • 30.
    software campus Jigsaw -implied readability String url = …; Properties props = …; Driver d = DriverManager.getDriver(url); Connection c = d.connect(url,props); d.getParentLogger().info(“Connection acquired”); 4. Jigsaw project (주요 프로젝트) Java 9
  • 31.
    software campus implied readability 4.Jigsaw project (주요 프로젝트) Java 9
  • 32.
    software campus Jigsaw -services module com.mysql.jdbc{ requires java.sql; requires org.slf4j; exports com.mysql.jdbc; } 4. Jigsaw project (주요 프로젝트) Java 9
  • 33.
    software campus Jigsaw -services module java.sql{ requires public java.logging; requires public java.xml; exports java.sql; exports javax.sql; exports javax.transaction.xa; uses java.sql.Driver; } 4. Jigsaw project (주요 프로젝트) Java 9
  • 34.
    software campus Jigsaw -services module com.mysql.jdbc{ requires java.sql; requires org.slf4j; exports com.mysql.jdbc; provides java.sql.Driver with com.mysql.jdbc.Driver; } 4. Jigsaw project (주요 프로젝트) Java 9
  • 35.
    software campus Jigsaw -services 4. Jigsaw project (주요 프로젝트) Java 9
  • 36.
    software campus Jigsaw -qualified exports module java.base{ … exports sun.reflect to java.corba, java.logging, java.sql, java.sql.rowset, jdk.scripting.nashorn; } 4. Jigsaw project (주요 프로젝트) Java 9
  • 37.
    software campus Jigsaw -qualified exports 4. Jigsaw project (주요 프로젝트) Java 9
  • 38.
    Java 9 software campus 5.Java 9에서 자주 사용할만한 것들 . 223 : New Version-String Scheme . 110 : HTTP 2 Client ( deprecated ) . 289 : Deprecate the Applet API . 211 : Elide Deprecation Warnings on Import Statements . 214 : Remove GC Combinations Deprecated in JDK 8 . 277 : Enhanced Deprecation
  • 39.
    software campus Java 9 .223 : New Version-String Scheme -1 참고, Arkadiusz Sokolwski 2015 5. Java 9에서 자주 사용할만한 것들
  • 40.
    software campus 참고, ArkadiuszSokolwski 2015 • MAJOR.MINOR.SECURITY 1.8.0 -> 8.0.0 1.8.0_05 -> 8.0.1 1.8.0_11 -> 8.0.2 1.8.0_20 -> 8.1.2 1.8.0_25 -> 8.1.3 Java 95. Java 9에서 자주 사용할만한 것들 . 223 : New Version-String Scheme -2
  • 41.
    software campus Java 95.Java 9에서 자주 사용할만한 것들 . 223 : New Version-String Scheme -3 http://openjdk.java.net/jeps/223
  • 42.
    software campus Java 9 참고,Arkadiusz Sokolwski 2015 HttpReponse response = HttpRequest .create(new URI(“http://www.ocado.com”)) .body(noBody()) .GET().send(); int responseCode = response.responseCode(); String responseBody = response.body(asString()); System.out.println(responseBody); . 110 : HTTP 2 Client -1 5. Java 9에서 자주 사용할만한 것들
  • 43.
    software campus 참고, ArkadiuszSokolwski 2015 HttpReponse response = HttpRequest .create(new URI(“http://www.ocado.com”)) .body(noBody()) .GET(); CompletableFuture<HttpResponse> asyncResp = req.sendAsync(); Thread.sleep(10); if(!asyncResp.isDone()){ asyncResp.cancel(true); System.err.println(“timeout”); return; } HttpResponse réponse = asyncResp.get(); Java 95. Java 9에서 자주 사용할만한 것들 . 110 : HTTP 2 Client -2
  • 44.
    software campus ( deprecated) 289 : Deprecate the Applet API 211 : Elide Deprecation Warnings on Import Statements 214 : Remove GC Combinations Deprecated in JDK 8 277 : Enhanced Deprecation Java 95. Java 9에서 자주 사용할만한 것들
  • 45.
    software campus ( deprecated) 289 : Deprecate the Applet API Java 95. Java 9에서 자주 사용할만한 것들 웹 브라우저 업체들의 Java Browser Plug-in의 삭제로 인해, 앞으로 개발되는 Java 프로그 램들은 Web Start 프로그램 형태나 Installable 어플리케이션 형태로 개발 유도
  • 46.
    software campus ( deprecated) 211 : Elide Deprecation Warnings on Import Statements Java 95. Java 9에서 자주 사용할만한 것들 자바 SE 8에서, 자바 컴파일러는 사용되지 않는 유형이 이름으로 가져올 때 또는 사용되지 않는 멤버 (메서드, 필드, 중첩 된 유형) 정적으로 가져올 때 사용 중단 경고를하기 위해 Java 언어 사양의 합리적인 해석이 필요하다. 사용하지 않는 부분의 경고에 대한 부분이 Deprecate 되는 것 같다.
  • 47.
    software campus ( deprecated) 214 : Remove GC Combinations Deprecated in JDK 8 Java 95. Java 9에서 자주 사용할만한 것들 이전에 JEP 173를 통해 JDK 8에서 사용되지 않는 한 GC 조합을 제거한다.
  • 48.
    software campus ( deprecated) 277 : Enhanced Deprecation Java 95. Java 9에서 자주 사용할만한 것들 사용되지 않는 주석을 개조하고, API 수명주기를 강화하는 도구를 제공
  • 49.
    Java 9 software campus 6.Java 9, 그 이후
  • 50.
    5. Java 9,그 이후 software campus Java 9 java 10 : value classes value class Point{ int x; int y; Point(int x, int y){ this.x = x; this.y = y; } }
  • 51.
    5. Java 9,그 이후 software campus Java 9 java 10 : generics Reified Generics Generics with values List<int> intList = new ArrayList<>(); … int val = intList.get(0); class List$Point{ Point get(Point index); }
  • 52.