ブログ

JDK

Java 18リリース

Java 18がリリースされました。新機能は以下のようなものがアナウンスされていますが,目立った機能追加はないようです。

https://openjdk.java.net/projects/jdk/18/

  • JEP-400 UTF-8がデフォルトに
  • JEP-408 シンプルウェブサーバ
  • JEP-413 Java APIドキュメントにおけるコードスニペット
  • JEP-416 メソッドハンドルを用いたコアリフレクションの再実装
  • JEP-417 ベクターAPI(3次インキュベーター)
  • JEP-418 インターネットアドレス解決SPI
  • JEP-419 外部関数と外部メモリAPI(2次プレビュー)
  • JEP-420 switchにおけるパターンマッチング(2次プレビュー)
  • JEP-421 削除のためのfinalize()非推奨

UTF-8がデフォルトに

他の言語では既に多くがUTF-8がデフォルトになっていますが,JavaにおいてもようやくUTF-8がデフォルトのエンコーディングになったようです。Javaでテキストファイルを扱う時には毎回エンコーディングを指定していました。今後はUTF-8を用いる場合は省略できるでしょう。標準入出力は対象外となっているので,コンソールの扱いには影響はなさそうです。

シンプルウェブサーバ

SDKに簡易なウェブサーバが同梱されるようになりました。jwebserverという新たなコマンドが導入されます。静的なファイルを提供するプロトタイピング,デバッグ,テスト用のサーバと説明されています。–helpオプションでヘルプを表示させることができます。

Java APIドキュメントにおけるコードスニペット

{@snippet …} によってJavaDocコメントにJavaコードを埋め込めるようになります。

メソッドハンドルを用いたコアリフレクションの再実装

java.lang.reflectパッケージのMethod, Constructor, Fieldの実装が見直されました。43%-57%高速化されたそうです。

ベクターAPI(3次インキュベーター)

SIMD命令により効率的にベクトル演算を行うことができるAPIのようです。

インターネットアドレス解決SPI

インターネット上のアドレスを解決するためのインタフェースを提供するAPIのようです。java.net.InetAddressというクラスが提供されています。

外部関数と外部メモリAPI(2次プレビュー)

JNIに替わる新たな外部関数を呼び出すAPIです。

switchにおけるパターンマッチング(2次プレビュー)

switch文が拡張されます。当初は数値のみという制約がありましたが,オブジェクトの型によって分岐できるよう拡張され,記述方法も変更されます。従来の書き方も可能なようです。次のような書き方ができます。

private void(Object arg) {
    switch(arg) {
        case String s -> System.out.println("String");
        case int[] a -> System.out.println("Integer Array");
}

削除のためのfinalize()非推奨

finalize()メソッドが非推奨になります。GCによりオブジェクトが破棄される直前に呼び出されるのですが,GCが行われるまで実行されず,そのタイミングが制御できないため使わない方がよいと言われていました。ついに削除されます。

雑記

ウクライナ軍支援

ウクライナ軍をサポートしているNGOへ寄付することができました。先日Patron経由で送金したものの,Patronの規約に違反するとしてアカウントが削除されてしまったようです(注1)。”TO CONTRIBUTE”というボタンから直接送金しようとしましたが,クレカの追加認証が通りませんでした。そこで,FONDYから送金してみたところ,ようやく送金できました。

https://savelife.in.ua/en/donate/


まずは上のURLへアクセスします。図の赤枠で囲んであるFondy.euというリンクをクリックします。

画面が表示されたら,右上のセレクトボックスで言語を選択します。日本語は選択肢にないので,英語を選びましょう。

英語の表示になったらクレジットカード情報とメールアドレス,金額を入力してCHECKOUTボタンを押します。2月25日のレートで1UAH = 3.8946JPYでした。


カード会社によっては追加の認証が入ります。成功するとPayment is approvedと表示されます。

注1)https://www.businessinsider.in/politics/world/news/patreon-took-down-an-account-run-by-one-of-ukraines-biggest-charitable-foundations-because-the-organization-uses-donations-to-supply-equipment-for-the-countrys-military/articleshow/89839104.cms


雑記

所得税確定申告

今日から所得税の確定申告が始まりました。早速e-taxでマイナンバーカードを使って申告を行い,PayEasyで納付しました。自宅からすべてできるのはありがたいです。

雑記

物理メモリ故障

メインで使っているLenovo製PCのメモリが故障しました。有償保守契約があったので修理工場に「入院」して検査をしてもらったところ,2枚装填されているメモリのうちの1枚が故障しているということでした。メモリも購入後3年間の保証がついているものだったので,交換部品を送ってもらうことになりました。

新型コロナウイルス関連

COVID-19新規感染者1万人超(東京)

東京の1日の新規感染者数が今日1万人を超えて11,227人となりました。病床使用率は34.3%で小池知事が緊急事態宣言発出要請の基準としてあげた50%には至っていませんが,このペースで増え続ければ今月末には緊急事態宣言発出に至ると予想されます。

第5波の際の緊急事態宣言発出時(2021年7月12日)の入院者数1947人,第4波の緊急事態宣言発出時(2021年4月25日)の入院者数は1812人,第3波の緊急事態宣言発出時(2021年1月8日)は年末年始を挟んだためか入院者数3178人です。入院者数が2000人が緊急事態宣言の目安と言えそうです。昨年秋以降の小康期にどれだけ病床を増やせたかによって今後の病床逼迫状況が変わりますが,医療スタッフを短期間に増員することは不可能であることから,大きく変わることは考えにくく,近く緊急事態宣言発出となろうかと予想しています。

東京都のCOVID-19新規感染者数と入院者数の推移
東京都のCOVID-19新規感染者数と入院者数の推移
新型コロナウイルス関連

COVID第6波

東京都の新規感染者数とその7日移動平均,入院者数をグラフ化してみました。第6波はかなりの急なカーブとなっています。

政治的な要因で多少の前後はあるにせよ,これまでは入院者数が2千人を超えたあたりで緊急事態宣言の発出となっています。第6波の場合は,1月末には二千人に達してしまうスピードです。覚悟しておいた方がよいでしょう。

データは東京都福祉保健局のオープンデータを使用しました。

新型コロナウイルス関連

ワクチンパスポート使えず・・・

12月20日にデジタル庁からワクチンパスポートアプリ(名称「新型コロナワクチン接種証明書アプリ」)が出されましたが,私のモバイル端末(Apple製 iPad Pro,HUAWEI製Nova lite 3)はいずれも非対応でした。仕方がないので,紙の証明書を区役所に申請しました。

https://www.digital.go.jp/policies/posts/vaccinecert