コーディングスタイル– category –
-
【Java】PushbackInputStreamとPushbackReaderの使い方
はじめに Javaでストリームからデータを読み込む際、「一度読み込んだ内容を処理前に戻したい」という場面があります。たとえばファイル形式を先頭数バイトで判定したり、構文解析中にトークンを先読みして分岐処理を行ったりするケースです。 このような... -
【Java】ConsoleとScannerの違いとは?
はじめに Javaでユーザーの入力を受け取る方法としてよく使われるのが、「Console」クラスと「Scanner」クラスです。一見似たような役割を持っていますが、使い方や適用シーンには大きな違いがあります。 この記事では、これら2つのクラスの特徴や違いを、... -
プログラムのメッセージ管理法
はじめに プログラムにおける出力メッセージは、ただの文字列ではありません。ユーザー体験(UX)、保守性、そして将来的な多言語対応まで、大きな影響を与える重要な要素です。 開発の初期段階では、ついコード内に直接書いてしまいがちです。しかし、こ... -
【Java】String.formatとMessageFormatの違い
はじめに Javaで文字列を整形する方法として、String.format と MessageFormat のどちらを使うべきか迷ったことはありませんか? たとえば、ログ出力やデバッグ用のメッセージには String.format、多言語対応が必要なUIメッセージには MessageFormat が適... -
【Java】Files系Streamはcloseが必要?
はじめに Javaでファイルやディレクトリを扱う際に、Files.find や Files.lines などの便利なメソッドを使ったことがある方は多いと思います。 しかし、こうしたメソッドが返す Stream は、実は内部でファイルやディレクトリにアクセスするリソースを保持... -
Javaが遅い原因と対策(コレクション編)
はじめに Javaでシステムを開発していると、「Listの処理がやたら遅い」「Mapの検索がボトルネックになっている」──そんな場面に遭遇したことはないでしょうか。 実はその多くは、コレクションの使い方や選び方が適切でないことが原因です。Javaは非常に高... -
Javaが遅い原因と対策(文字列操作編)
はじめに Javaでアプリケーションを開発していて、「処理が遅い」「メモリを食う」と感じたことはありませんか?その原因のひとつが、何気なく書いている文字列操作にあるかもしれません。 たとえば、ログ出力やデータ整形といった処理は、一見シンプルで... -
【Java】AutoCloseableとCloseableの違い
はじめに Javaで安全かつ確実にリソースを解放するためには、AutoCloseableとCloseableという2つのインタフェースの使い分けが重要です。しかし、「それぞれの違いは何か?」「どちらを使えば良いのか?」と疑問に思ったことはないでしょうか。 この記事で... -
【Java】定数と設定値の使い分け方
はじめに Javaアプリケーションを開発していると、「この値は定数としてコードに書くべきか? それとも外部の設定ファイルにすべきか?」という場面にたびたび直面します。この判断を誤ると、保守性やパフォーマンスに悪影響を与えかねません。 この記事で... -
【Java】配列とListの使い分け方
はじめに Javaで複数のデータを扱うときに登場する代表的な選択肢が「配列(Array)」と「List」です。しかし、どちらを使うべきか迷った経験はないでしょうか?特に初心者の方にとっては、両者の違いや使い分けの基準が曖昧に感じられることも多いはずで...