エンジニアになるまでの道標

大手日系企業に勤めて3年目、仕事について色々と語ります。

勘所を掴む練習

Java 19が正式リリースされたようだ。自分は初学者であるため、JVMの仕組みや基本的な構文を理解しているとは言えないが、Javaは初めて触れた言語であるため、少し思い入れがある。JavaチャンピオンのきしださんがJava 19の新機能を解説してくれているので、とりあえず分からなくてもいいので、一通り聞いてみようと思った。また気付いたことや不明な点をメモ書きすることで、自分の理解力が不足している箇所を知り、今後の改善に繋げようと思う。

メモ

リリースノート
  • 初めて見た。リリースする際はこう言うものを書くのね。
JEP (JDK Enhancement Proposal)
  • 今までじぇっぷと呼んでいた。じぇーいーぴーが正しい呼び方のようだ。
LTS
  • 4か6バージョンごとにLTSが設定されることは知らなかった。
  • これまで3年ごとにLTSを発表していたが、2年に1回ペースにするとOracleが宣言しているらしい。
  • Oracleがとりあえず次回のLTSは21と宣言してるらしい。
試用機能
  • 機能種別によって、試用機能の呼び名が異なるようだ。知らない単語ばかりなので、後で調べる。
  • 言語機能 Preview
  • API Incubator
  • JVM Experimental
JEP
Virtual Threads Java 21 LTSでGAか? 実行系が変わる?
  • サーバーサイドの処理は大したことやってなくて、結局通信に時間を要する
  • 通信の空き時間を何とか有効活用したい(計算を並列で実行したいわけではない)
  • これまでは色々自由にできるOSでリクエスト捌いていただけど、割り当てるスレッド間違えると辛かったりする課題を解決?
  • 計算を並列で実行したいなら(CPUを同時に実行したいなら)プラットフォームのスレッドを使う!
Record Class Java 21 LTSでGAか? 言語が変わる?
  • 宣言的
  • Sealed classと組み合わせることで、コンパイラに全パターンをチェックさせることができる?
Pattern Matching for switch
  • パターンマッチ
  • ガード節?
  • switch 式で条件式が書ける!
  • caseにnullもdefaultも使える!
Linux/RISC-V版
Structured Concurrency
  • gorourine? goの仕組みと同じ。goを起点に色んな言語で似た様な機能が取り入れられている?
小変更
  • BIGDECIMAL
  • Thread.sleep(Duration)
  • Math.TAU は流行り?
  • cafebabeとは?
  • ..etc
感想
  • jshell便利だなあ
  • jconsoleなんてものがあるのは知らなかった。JVMの挙動を理解するきっかけになりそう
  • JITの理解不足?
  • Java21 LTSでPattern Matching と Virtual Threadsを落ち着かせて、次にヴァルハラプロジェクトが来るのか?
  • 素敵な記事、動画に感謝。みんなきしださんのチャンネルに登録しよう。