[Study session memo] Java Day Tokyo 2017

I participated in Java Day Tokyo 2017, so a memo at that time. This time, we focused on Java SE 9.

I wrote it for myself, so I'm sorry that there are many missing teeth. We would appreciate it if you could point out any mistakes or supplements.

What is Java Day Tokyo 2017?

Japan's largest annual Java event held by Oracle Japan. Official page: http://www.oracle.co.jp/events/javaday/2017/ Hashtag: #JavaDayTokyo

Participated session

※Titles omitted

  1. Keynote speech (Oracle Japan President Hiroshige Sugihara, Oracle Vice President Bernard Traversat, Oracle Senior Director Will Lions)
  2. Java 9 and Beyond: Java Renaissance in the Cloud(Oracle Vice President Bernard Traversat)
  3. Modular Development with JDK (David Back, Oracle Corporation Japan)
  4. HTTP / 2 starting with Servlet 4.0 (Oracle Corporation Japan, Shinya Yanagihara)
  5. Recommendation of Java SE 9 (Java in the Box, Yuichi Sakuraba)
  6. Reactive Web Application by Spring Framework 5.0 (Pivotal Japan Co., Ltd. Toshiaki Maki) Presentation material: https://www.slideshare.net/makingx/spring-framework-50-reactive-web-application-javadaytokyo

Topic & Summary

◆ About the current state of Java and future trends

--Java SE 9, Java EE 8 released --Enhancements for optimization on Claud

◆ About Java SE 9, Java EE 8 scheduled to be released in July this year

--Java SE 9 will be described later. I didn't hear much about Java EE 8, so I won't mention it.

◆ About module (Project jigsaw) and other new features introduced in Java SE 9

--Module System (Project jigsaw): The most noticeable feature. Dependencies can be set on a module-by-module basis. --JShell: Ability to execute code interactively, like the REPL in Python and Ruby. --JLink: A function that allows you to specify and load only the required JDK class modules. --Ahead of Time Compilation (AOT): Ability to compile Java classes into native code before starting a virtual machine. Reduced startup time. --G1GC: The default GC has been changed from parallel GC to G1GC.

◆ About specification changes that occurred in Java SE 9

--Milling Project Coin (Reference: http://itpro.nikkeibp.co.jp/atcl/column/15/120700278/050800037/?rt=nocnt) --Immutable collections can be created. (Of method of Collection interface) --Internal implementation of String is changed from char [] to byte []. Heap usage is significantly reduced.

◆ About HTTP / 2 supported by Servlet 4.0

--By using HTTP / 2, HTTP communication with clients can be accelerated. Since it is not very feasible to use Servlet 4.0 in plain text, check the support trend on the framework side.

◆ Supports Reactive programming of Spring Framework 5.0

--From Spring Framework 5.0, a new web framework called Spring WebFlux has been added to support Reactive programming. --If you perform Reactive programming, you can expect high speed and flexible scalability by non-blocking data communication. --The libraries such as RxJava, Reactor, and Akka are famous. Java SE 9 supports Reactive programming with the Flow interface.

Below is a memo of each session

Java Day Tokyo 2017 Keynote Speech (Oracle Japan President Hiroshige Sugihara, Oracle Vice President Bernard Traversat, Oracle Senior Director Will Lions)

Overview (from the official page)

The release of Java SE 9 and Java EE 8 is finally approaching! In this Java Day Tokyo keynote speech, the Vice Presidents of the Java SE and Java EE development departments will directly introduce the value of the new version to you. Be sure to see for yourself what's remarkable about the new version and what's ahead. We look forward to your participation.

Hiroshige Sugihara, CEO of Oracle Japan

―― "To be a company that makes Japan happy" --The shortage of IT personnel is an issue, and by 2030 there will be a shortage of 600,000 people --On-premise (12 trillion)> IaaS (210 billion) --Enhancements for optimizing on the Cloud


Oracle Vice President Bernard Traversat

--The foundation of Cloud --Java is used for cores such as AWS and MS Azule --Java is dead was acquired by Oracle and wiped out --The other day, we announced a partnership with Docker.

Java9 --122 features included

Trends after Java 9 (OpenJDK)

project Valhalla

Project Panama Application to big data Run on GPU

About using Java with Mazda

Conventional type

Recent trends

JShell --Can be executed interactively like REPL


Oracle Senior Director Will Lions

--Java EE 8 will be announced as early as this summer --HTTP / 2 is fast and secure, no application changes required

JJUG --Currently more than 6300 people, core is in their 20s and 30s ――Why join the community

Java 9 and Beyond: Java Renaissance in the Cloud

Overview (from the official page)

This session provides updates for Java 9 releases. Java 9 radically changes the way engineers develop and deploy java services in the cloud. New tools, AOT and JLink, take advantage of Java 9's new modular system to enable new types of performance and density optimization. Positioned as the default GC in Java 9, G1 offers a new level of scalability for big data cloud services. In addition, I would like to touch on new features since Java 9 such as value type, JNI migration, and language improvements. This session will also show you the importance of Java 9 to cloud-based developers by demonstrating these new features.

Java9 --Java problem

new function

Java SE Advanced

Trends after Java 9

Modular Development with JDK 9 (Oracle Corporation Japan, David Back)

Overview (from the official page)

The modular development style benefits all Java developers (whether your application has only one JAR or 100 JARs). In this session, we will introduce a Java 9 module system that structures the JDK as dozens of reusable modules while strongly protecting the internal API. Then, in the session, we will explain how to create a module and how to avoid relying on the internal API of the JDK, which is a commonly used library. Finally, I will explain the tools provided for the module.

Programs are ~~Classes~~ ~~Package~~ Mogules

新規ドキュメント 2017-05-17 14.14.37_1.jpg

exports is a package unit. requires is a module unit 新規ドキュメント 2017-05-17 14.20.12_1.jpg

By using JLink, you can specify and load only the necessary JDK class modules. → What are the benefits? Saves resources when launching a large number of JDKs in the cloud etc.

You can check jar dependencies with jdeps (provided from Java 8) 新規ドキュメント 2017-05-17 14.32.35_1.jpg

Automatic Modules Ability to automatically modularize an existing Jar Those that have not been developed on a module basis use the Automatic modules function. No change in Jar

HTTP / 2 starting with Servlet 4.0 (Oracle Corporation Japan, Shinya Yanagihara)

Overview (from the official page)

The HTTP specification has been updated from HTTP / 1.1 to HTTP / 2 for the first time in 16 years, incorporating various mechanisms to improve communication efficiency. Servlet 4.0 has been updated to take advantage of HTTP / 2. In this session, we will introduce an example of using HTTP / 2 with Servlet 4.0.

Servlet review

Servlet 4.0 overview

HTTP / 2 overview

Server Push

新規ドキュメント 2017-05-17 14.32.35_2.jpg

Recommendation of Java SE 9 (Java in the Box, Yuichi Sakuraba)

Overview (from the official page)

When you think of Java SE 9, you might think of Project Jigsaw or J Shell. But Java SE 9 isn't the only one. There are 89 JEPs that define the addition of Java SE features. In this session, we will explain changes in language specifications, changes in core libraries, and compatibility problems among many new features of Java SE 9 with actual examples.

I don't talk about Jigsaw, J Shell

agenda

Compatibility

Brand New

Update

Reactive Web Application by Spring Framework 5.0 (Pivotal Japan Co., Ltd. Toshiaki Maki)

Overview (from the official page)

Reactive programming support has been added as a feature of Spring Framework 5.0, and a new web framework and runtime called Spring WebFlux has been added. In this session, we will start with the background of Reactive support and the explanation of Reactive Streams / Project Reactor, and introduce how to use Spring WebFlux with Spring Boot 2.0, focusing on code examples.

Briefing paper

https://www.slideshare.net/makingx/spring-framework-50-reactive-web-application-javadaytokyo

What is Reactive?

type

--Using Servlet inevitably becomes Blocking --Non-Blocking & Event-Loop with Netty (used by Apple, Twitter, etc.)

Why Spring supports Reactive

Reactive Streams

Supported libraries

For Reactor

Flux/Mono

Reactive Stream in Spring FW 5.0 新規ドキュメント 2017-05-17 17.52.39_1.jpg

Recommended Posts

[Study session memo] Java Day Tokyo 2017
Java Day Tokyo 2017
Java Silver Study Day 1
Java Kuche Day memo
[Java ~ Method ~] Study memo (5)
[Java ~ Array ~] Study memo 4
Study session memo: Kansai Java Engineers Association 8/5 --Selenium
Java Silver Study Method Memo
[Java ~ Boolean value ~] Study memo (2)
Java study memo 2 with Progate
Java Day 2018
Java memo
Study session memo: Kansai Java Engineers Association [Osaka] 7/12 --Cloud Native
Summary of in-house newcomer study session [Java]
[Java ~ Variable definition, type conversion ~] Study memo
[Java ~ Conditional branching / Iterative processing ~] Study memo (3)
[Java ~ Classes and External Libraries ~] Study Memo (6)
java anything memo
Let's study Java
Java Silver memo
Java learning day 5
java, maven memo
Oracle Java Day 2017
Java SE 7 memo
java anything memo 2
[Java] Study notes
Oracle Java Day 2017
Java 8 study (repeatable)
Java study memorandum
Java session scope
Study Java Silver 1
Java specification memo
java learning day 2
Java pattern memo
java learning day 1
Java development environment memo
java basic knowledge memo
Java learning memo (method)
Javasilver study session memorandum
[In-house study session] Basics of Java annotation (2017/11/02) ~ Under construction ~
Dot installation study memo 01
Java study # 1 (typical type)
Java learning memo (basic)
java lambda expression memo
(Memo) Java for statement
My Study Note (Java)
Java lambda expression [memo]
Java learning memo (interface)
[Java] Implicit inheritance memo
Java learning memo (inheritance)
java competitive programming memo
Muscle Java Basics Day 1
[Memo] Java Linked List
Study Java # 2 (\ mark and operator)
Java (WebSphere Application Server) memo [1]
Java memo (standard class) substring
Play Framework Study Memo Database ①
Study java arrays, lists, maps
Ruby study memo (conditional branching)
Java memo (standard class) length
4th day of java learning