Twitterでこれ↓が流れてきて、あれーあのクラスは無いんだー、まぁ最低限と言われると違うかもなー。と思うのがあったので便乗。
java.util.Objects
recordの導入で不要になってきたメソッドも多いが、引数の検証などでまだ出番がある。防御的な書き方を簡単にしてくれるのでおすすめ。
java.util.Scanner
標準入力を受け取ってゴニョゴニョするツールを書くのに便利。競技プログラミング御用達。
java.util.concurrent.Executors
スケジュール実行とか、スレッドを立ち上げてなんかするとか、そういうときに役立つ。
java.util.concurrent.CompletableFuture
JavaにPromiseって無いんですか、と言われたらCompletableFuture があるよ!と返してます。
java.time.Instant
時刻を表すのに便利。でもInstant.now() は使わずに Clock#instant() を使うんじゃよ。
java.time.Clock
Instant.now() や System.currentTimeMillis() などを使いたくなったら、代わりに Clock をコンストラクタインジェクションして使うようにしよう。テストが書きやすくなるので。
java.lang.AutoCloseable
このインタフェースを実装しておくとtry-with-resourcesでお片付けできるようになる。
状態を持つクラスで、かつ依存先を開放するclose() や stop() というメソッドがある場合に便利に使える。
まとめ
java.util パッケージは便利なクラスが多いので眺めておくと良さそう。