最新記事一覧
-
ログ出力はプレースホルダー推奨
JavaやKotlinといったJVM系言語で開発を行う際、ログ出力はデバッグや運用時の障害調査に不可欠な要素です。しかし、ログの書き方を誤ると、パフォーマンスの低下や保守性の悪化といった問題を引き起こす可能性があります。 特に注意したいのが、ログメッ... -
【Java】Arrays.streamとStream.ofの違い
Javaで配列を扱う際、「配列をストリーム(Stream)に変換したい」というケースはよくあります。そんなときによく使われるのが Arrays.stream() と Stream.of() の2つのメソッドです。 一見似ているこの2つですが、使い方を誤ると「配列の中身を処理したい... -
【Java】this/superは毎回必要?
Javaで開発をしていると、フィールドやメソッドにアクセスする際に this や super を毎回書くべきかどうか、迷うことはありませんか? この記事では、それぞれの使い方と意味をおさらいしつつ、実務で「いつ使うべきか」「毎回書く必要があるのか」といっ... -
【Java】sunパッケージを使うべき?
Javaの開発中に sun.misc.Unsafe や sun.misc.BASE64Encoder といった sun.* パッケージのクラスを目にしたことはありませんか?これらは一見便利に見えるかもしれませんが、本来は一般の開発者が使用することを想定していない非公開APIです。 一部の古い... -
【Java】日付操作はjava.timeで!
Javaで日付や時間を扱う場面は多く、システム開発では欠かせない要素の一つです。しかし、かつての Date や Calendar は設計が古く、扱いづらさやバグの温床となることもしばしばありました。こうした背景から、Java 8以降で登場したのが java.time パッケ... -
【Java】コレクションの空判定はisEmptyが基本
JavaでCollection(ListやSetなど)の中身が空かどうかを判定する場面は、日常的にあります。そのとき、あなたはisEmpty()を使いますか?それともsize() == 0でしょうか。 この2つは結果としては同じ動作になりますが、可読性、パフォーマンス、そしてコー... -
【Java】インスタンス初期化ブロックは使うべきか?
Javaでオブジェクトの初期化処理を行う方法としては、一般的にフィールド初期化やコンストラクタが使われます。しかし、もう一つの方法として「インスタンス初期化ブロック」と呼ばれる機能が存在します。 この構文は便利な場面もある一方で、使い方を誤る... -
【Java】配列の[]はどこに書くべき?
Javaで配列を宣言するとき、[](角括弧)を型名の後ろに書くべきか、変数名の後ろに書くべきかで迷ったことはありませんか? どちらの書き方も文法的には正しく、コンパイルエラーにはなりません。しかし、可読性や保守性、チーム開発の観点から、明確に推... -
【Java】変数宣言は抽象型で行うべき?
Javaで変数を宣言するとき、次のような書き方で迷った経験はありませんか? // 実装クラスで宣言 ArrayList<String> list = new ArrayList<>(); // 抽象型(インタフェースなど)で宣言 List<String> list = new ArrayList<>(); ... -
【Java】匿名クラスとラムダ式の違いと使い分け
Java 8以降に導入されたラムダ式により、匿名クラスを使っていたコードは、より簡潔で読みやすく記述できるようになりました。特に、関数型インターフェースを使う場面では、ラムダ式が非常に強力な選択肢となります。 しかし、「すべて匿名クラスをラムダ...