Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@hrkt

hello, world in Vanilla Java~EHW2018「MVP」

More than 1 year has passed since last update.

概要

このエントリは、「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
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
hrkt

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?