0
0

More than 5 years have passed since last update.

hello, world in Vanilla Java~EHW2018「MVP」

Last updated at Posted at 2018-12-03

概要

このエントリは、「Enterprise "hello, world" 2018 Advent Calendar 2018」の12/3向けのものです。このAdvent Calendarでは、複数個のエントリにまたがる話の流れも鑑みつつ、なるべく1エントリで1つのトピックをカバーできるようにする予定です。

このエントリで記載するトピックは、「仕様を決める」と「MVP(Minimum Viable Product)を作ってみよう」です。

前提

Advent Calendar全体のお断りは、Enterprise hello, world 2018のサイトを参照ください。

想定読者

「Enterprise "hello, world" 2018」的なネタとしては、下記のような状況を想定しています。

Day1で、移行しなければいけない古いプログラムの様子はつかんだので、移行に向かって仕事を進めなくてはいけない。
実現にあたっては、EHW2018の前提によって活動することを心に決めている。

仕様

  • ユーザのインターフェースに「hello, world」という文字列を表示する

以上となります。では、実装しましょう。

MVPを作る

まず書く。

前提

OpenJDK 11.0.1を使用します。Windows10 バージョン1803でお送りします。

>C:\Java\jdk-11.0.1\bin\java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)

書きます!

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello, world");
    }
}

即時実行する(JEP 330)

Java11では、".java"ファイルを直接実行できるのでした。わほー。

>C:\Java\jdk-11.0.1\bin\java HelloWorld.java
hello, world

コンパイルして実行する(JEP 304)

コンパイルして実行します。JDK11からの実験機能、「GCなしで実行する(EpsilonGC)」で実行してみます。

>C:\Java\jdk-11.0.1\bin\java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xlog:gc  HelloWorld
[0.028s][info][gc] Resizeable heap; starting at 250M, max: 4011M, step: 128M
[0.030s][info][gc] Using TLAB allocation; max: 4096K
[0.033s][info][gc] Elastic TLABs enabled; elasticity: 1.10x
[0.035s][info][gc] Elastic TLABs decay enabled; decay time: 1000ms
[0.036s][info][gc] Using Epsilon
hello, world
[0.325s][info][gc] Total allocated: 881 KB
[0.325s][info][gc] Average allocation rate: 1391734 KB/sec

GCなしの実行は、パフォーマンスに振った(例:Log4jのガベージなしへのトライアル)方面のチャレンジの道にトライする面では、興味深いですね。

まとめ

このエントリでは、「Enterprise "hello, world" 2018 Advent Calendar 2018」(EHW2018)の3日目として、Java11の機能をなるべく使ってhello, worldを書いてみることをトピックとして取り上げました。

EHW2018のネタとしては、このあと、インフラまわりの明日がために向かう見込みです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0