Java

スポンサーリンク
Java

Java | オブジェクト指向:implements

implements とは何かimplements は「クラスがインターフェースの契約を実装します」という宣言です。インターフェースが定めるメソッドの“名前・引数・戻り値”を、クラス側で実体として提供...
Java

Java | オブジェクト指向:インターフェースとは

インターフェースとはインターフェースは「クラスが満たすべき契約(メソッドの型だけ)を定義するもの」です。実装は持たず、まず“名前・引数・戻り値”を決めることで、呼び出し側は契約だけに依存できます。クラ...
Java

Java | オブジェクト指向:抽象クラスの使いどころ

抽象クラスの狙いどころ抽象クラスは「共通の骨格と不変条件を親で固定し、差し替えたい部分だけ子に実装させる」ための道具です。インターフェースが“契約(メソッドの型)”だけなのに対し、抽象クラスは“状態(...
Java

Java | オブジェクト指向:抽象メソッド

抽象メソッドとは抽象メソッドは「中身(実装)がないメソッド」で、宣言だけを持ちます。abstract を付けて宣言し、具体的な処理は子クラスが必ず実装します。抽象クラスに定義して、共通の“名前・引数・...
Java

Java | オブジェクト指向:抽象クラスとは

抽象クラスとは抽象クラスは「直接はインスタンス化できない、共通の骨格と契約をまとめるためのクラス」です。abstract を付けて宣言し、抽象メソッド(中身のないメソッド)を含められます。継承した子ク...
Java

Java | オブジェクト指向:final フィールド

final フィールドとは何かfinal フィールドは「一度だけ代入でき、その後は再代入できない」フィールドです。オブジェクトの生成時に値を確定し、以降は参照を変えないことで、設計の予測可能性が上がり...
Java

Java | オブジェクト指向:final メソッド

final メソッドとは何かfinal メソッドは「子クラスからオーバーライド(上書き)できないメソッド」です。継承関係にあっても、その振る舞いを固定し、契約を壊されないようにします。親が守るべき安全...
Java

Java | オブジェクト指向:final クラス

final クラスとは何かfinal クラスは「継承を禁止したクラス」です。extends して子クラスを作ることができません。目的は、クラスの振る舞いを固定して“改変の余地”をなくし、設計の安全性・...
Java

Java | オブジェクト指向:多段継承の概念

多段継承とは何か多段継承は「親→子→孫…と継承が階層的に連なっている状態」を指します。AをBが継承し、BをCが継承する、といった“何段も連なる継承”です。Javaは「単一継承」なのでクラスを複数同時に...
Java

Java | オブジェクト指向:親クラスのコンストラクタ呼び出し

親コンストラクタ呼び出しとは何か子クラスのコンストラクタが、親クラス(スーパークラス)のコンストラクタを呼び出して「親の状態を先に正しく初期化する」仕組みです。Java では super(...) を...
Java

Java | オブジェクト指向:super キーワード

何をするキーワードかsuper は「親クラス(スーパークラス)のメンバーを参照する」ためのキーワードです。子クラスでオーバーライドしたメソッドから、親の元の実装を呼びたいときや、親のコンストラクタを明...
Java

Java | オブジェクト指向:継承のデメリット

まず、継承のデメリットとは何か継承は便利ですが、「親と子が強く結び付く」ため、変更や保守の難易度を上げる要因になりがちです。意図しない依存が広がり、拡張やテストが難しくなる“落とし穴”が複数あります。...
Java

Java | オブジェクト指向:継承のメリット

継承のメリットを一言で継承の最大のメリットは「共通の契約を共有しながら、振る舞いだけを差し替えて再利用できる」ことです。コードの重複を減らし、拡張しやすく、呼び出し側は共通型で扱えるため、全体の設計が...
Java

Java | オブジェクト指向:継承(extends)

まず、継承(extends)とは何か継承は「既存のクラスの性質(フィールドやメソッド)を受け継ぎ、必要な部分だけを差し替えたり足したりする」仕組みです。extends で親クラスを指定すると、子クラス...
Java

Java | オブジェクト指向:@Override アノテーション

何をするアノテーションか@Override は「このメソッドは親のメソッドをオーバーライド(上書き)しています」とコンパイラに伝えるための印です。付けておくと、シグネチャの食い違いやタイプミス、オーバ...
Java

Java | オブジェクト指向:メソッドのオーバーライド

何が「オーバーライド」かメソッドのオーバーライドは、親クラスが持つメソッドの「振る舞いを、子クラスで置き換える」ことです。継承関係にあるとき、同じメソッド名・同じ引数(シグネチャ)を子クラスで再定義す...
Java

Java | オブジェクト指向:toString のオーバーライド

toString をオーバーライドする意味toString は「そのオブジェクトを人間が読める文字列にする」ためのメソッドです。デフォルトはクラス名+ハッシュ(例: com.example.User@...
Java

Java | オブジェクト指向:equals と == の違い

ざっくり結論== は「同じ実体(同じ場所)か」を比べる演算子、equals は「中身(値)が同じか」を比べるメソッドです。プリミティブでは == が値比較、参照型(オブジェクト)では == が参照比較...
Java

Java | オブジェクト指向:hashCode のオーバーライド

なぜ hashCode をオーバーライドするのかhashCode は「オブジェクトのハッシュ値」を返すメソッドで、HashMap・HashSet などのハッシュ構造が「どのバケットに入れるか」を決める...
Java

Java | オブジェクト指向:equals のオーバーライド

equals をオーバーライドする意味equals は「同じモノかどうか」を値の観点で判定するためのメソッドです。デフォルトの equals は「同じインスタンス(同一性)」しか比較しませんが、値オブ...
Java

Java | オブジェクト指向:値オブジェクトとは

値オブジェクトとは何か値オブジェクトは「値そのものを表す小さな不変の型」です。金額、メールアドレス、期間、座標、IDなど、意味とルールを持つ“ただの値”をクラス化して、検証・整合性・振る舞い(比較や計...
Java

Java | オブジェクト指向:不変オブジェクトの考え方

不変オブジェクトとは何か不変オブジェクトは「生成後に状態が一切変わらない」オブジェクトです。フィールドは初期化時に確定され、その後は再代入されません。外から見ても中から見ても、値が変化しないので、並行...
Java

Java | オブジェクト指向:getter / setter

全体像getter / setter は「フィールド(内部状態)を外から安全に読み書きするための窓口」です。直接フィールドを公開せず、メソッド経由にすることで、読み取りは意図を伝え、書き込みは検証や前...
Java

Java | オブジェクト指向:カプセル化の目的

まとめて言うと何かカプセル化は「内部の状態や仕組みを隠し、外からは安全な窓口だけを見せる」設計のことです。目的は3つに絞られます。整合性の保護(壊れない)、変更容易性(中身を差し替えても外が壊れない)...
Java

Java | オブジェクト指向:パッケージプライベート

全体像パッケージプライベート(package-private)は「アクセス修飾子を何も付けない」状態の可視性で、同一パッケージ内からだけ見える(使える)という意味です。クラス・メソッド・フィールド・コ...
Java

Java | オブジェクト指向:protected の意味

全体像protected は「同じパッケージ内から見える」ことに加えて「別パッケージでも、継承したサブクラスからは自分自身を通して見える」アクセス修飾子です。外部に完全公開する public と、クラ...
Java

Java | オブジェクト指向:private の意味

全体像private は「同じクラスの中からだけ見える」というアクセス修飾子です。外部のクラスはもちろん、継承したサブクラスからも直接は触れません。目的はカプセル化——内部の状態や実装詳細を隠し、外部...
Java

Java | オブジェクト指向:public の意味

全体像public は「どこからでも見える・使える」という意味のアクセス修飾子です。パッケージが違っても、クラス外からでも、他のモジュールからでも、public にしたメンバー(クラス・メソッド・フィ...
Java

Java | オブジェクト指向:アクセス修飾子の種類

全体像アクセス修飾子は「どこからそのクラス・フィールド・メソッドが見えるか(使えるか)」を制御するための言語機能です。公開範囲を絞ることで、意図しない使われ方や整合性の破壊を防ぎ、APIの進化に強くで...
Java

Java | オブジェクト指向:static フィールドの用途

全体像static フィールドは「クラスに属する共有の状態」を表します。インスタンス(個体)ごとに違う値ではなく、クラス全体で1つだけ存在する値です。用途は「定数」「設定」「生成数のカウンタ」「共有キ...
Java

Java | オブジェクト指向:static メソッドの制約

概要static メソッドは「クラスに属する処理」で、インスタンス(オブジェクト)に依存しない計算や共通ユーティリティを表します。インスタンスがなくても呼べる一方で、インスタンス特有の情報には触れられ...
Java

Java | オブジェクト指向:static とインスタンスの違い

全体像static は「クラスに属するもの」、インスタンスは「オブジェクト(個体)に属するもの」です。static フィールドやメソッドは全インスタンスで共有され、クラスがロードされた時点で使えます。...
Java

Java | オブジェクト指向:インスタンス変数のスコープ

全体像インスタンス変数(フィールド)は「オブジェクトがずっと覚えている状態」で、クラスの中に宣言します。スコープは「どこからその変数が見えるか」を意味し、インスタンス変数は基本的に同じクラスの全メソッ...
Java

Java | オブジェクト指向:メソッド内ローカル変数

ローカル変数の全体像メソッド内ローカル変数は「メソッドの中だけで使える一時的なメモ」。メソッドが呼ばれている間だけ存在し、終わったら消えます。オブジェクトの状態(フィールド)とは別物で、外から見えませ...
Java

Java | オブジェクト指向:フィールド初期化

フィールド初期化の全体像フィールド初期化は「オブジェクトの状態を安全に立ち上げる」ための最初の設計作業です。Java では、フィールドは宣言時の初期化式、インスタンス初期化子、コンストラクタの順で整え...
Java

Java | オブジェクト指向:this キーワード

this の全体像this は「今まさに動いている、そのオブジェクト自身」を指すキーワードです。インスタンスメソッドやコンストラクタの中で使えて、フィールドへのアクセス、他のコンストラクタの呼び出し、...
Java

Java | オブジェクト指向:引数付きコンストラクタ

引数付きコンストラクタの全体像引数付きコンストラクタは、生成時に必要な情報を受け取って「正しい初期状態」を確立するための入口です。クラス名と同名で定義し、new クラス名(必要な値…) の形で呼びます...
Java

Java | オブジェクト指向:デフォルトコンストラクタ

デフォルトコンストラクタの全体像デフォルトコンストラクタは「引数なしのコンストラクタ」です。クラスにコンストラクタを1つも定義していない場合、Javaコンパイラが自動で用意します。役割は「そのクラスの...
Java

Java | オブジェクト指向:コンストラクタの役割

コンストラクタの全体像コンストラクタは「オブジェクトの初期状態を正しく確立するための特別なメソッド」です。返り値型を書かずクラス名と同名で定義し、new とともに呼ばれます。役割は「必要な値を受け取り...
Java

Java | オブジェクト指向:メソッド(振る舞い)

メソッドの全体像メソッド(振る舞い)は、オブジェクトが「何ができるか」を表す動作の定義です。フィールド(状態)に対して、検証しながら安全に操作したり、結果を計算して返したりします。Java では「イン...
Java

Java | オブジェクト指向:フィールド(メンバ変数)

フィールドの全体像フィールド(メンバ変数)は、オブジェクトが「覚えておく状態」です。クラスの中に宣言し、各オブジェクトがそれぞれの値を持ちます。Java では「インスタンスフィールド(個体ごと)」と「...
Java

Java | オブジェクト指向:インスタンス生成(new)

インスタンス生成の全体像インスタンス生成は「クラスという設計図から、具体的な“もの”をメモリ上に作る」行為です。Java では new クラス名(引数…) を呼ぶと、必要なメモリが確保され、フィールド...
Java

Java | オブジェクト指向:クラス定義の構文

クラス定義の全体像クラスは「状態(フィールド)と振る舞い(メソッド)」をひとまとめにする設計図です。基本構文は「パッケージ宣言→import→クラス宣言→フィールド→コンストラクタ→メソッド→ネスト型...
Java

Java | オブジェクト指向:クラスとオブジェクトの違い

全体像「クラス」は設計図、「オブジェクト」は設計図から作られた実体です。クラスはフィールド(状態)とメソッド(振る舞い)を定義し、new でインスタンス化すると、その時点の具体的な状態を持つオブジェク...
Java

Java | オブジェクト指向:オブジェクト指向とは何か

オブジェクト指向の全体像オブジェクト指向は「もの(オブジェクト)に状態と振る舞いを持たせ、役割ごとに分けて協調させる」考え方です。ものの設計図がクラスで、実体がオブジェクト。複雑さは“責務の分割”で小...
Java

Java | 基礎文法:小さなアプリの構築

小さなアプリ構築の全体像小さなアプリは「起動の配電盤(main)」「入力(CLI/ファイル)」「ドメインロジック」「永続化(ファイル/メモリ)」「出力(標準出力/ファイル)」の5点を薄く分けると、読み...
Java

Java | 基礎文法:例題をコードに落とす練習

コードに落とす練習の全体像「例題をコードに落とす」とは、文章で書かれた問題を、入力・出力・処理手順・境界条件に分解して、テスト可能な小さな関数やプログラムに組み立てることです。重要なのは「考える順序」...
Java

Java | 基礎文法:文字コード

文字コードの全体像文字コードは「文字をバイト列に変換・復元するための規則」です。Java の内部表現は Unicode を採用し、文字列は UTF-16(コードユニット)で保持されます。一方、ファイル...
Java

Java | 基礎文法:Intellij の自動補完

自動補完の全体像IntelliJ IDEA の自動補完は、書いている途中で「次にあり得る候補」を提示して、入力を短縮し、ミスを防ぎます。基本は Ctrl+Space(Mac は ⌃Space)で起動し...
Java

Java | 基礎文法:コマンドライン引数

コマンドライン引数の全体像Java のプログラムは main(String[] args) から始まり、args に「起動時に渡された文字列」が順番どおり入ります。引数はすべて文字列で渡されるので、必...
Java

Java | 基礎文法:main クラスの役割

main クラスの全体像Java アプリは「エントリポイント」である main メソッドから始まります。main を持つクラス(便宜上「main クラス」)は、起動時に必要な初期化を行い、コマンドライ...
Java

Java | 基礎文法:メソッドチェーン

メソッドチェーンの全体像メソッドチェーンは「メソッドの戻り値に対して、さらにメソッドを続けて呼ぶ」書き方です。オブジェクトが「次も同じ型(または関連型)を返す」ように設計されていると、ドットを繋いで流...
Java

Java | 基礎文法:可変長引数

可変長引数の全体像可変長引数(varargs)は、メソッドに「0個以上の引数」を渡せる仕組みです。シグネチャでは Type... name と書き、呼び出し側は m()、m(a)、m(a, b, c)...
Java

Java | 基礎文法:定数クラス(軽く)

定数クラスの全体像定数クラスは「アプリ全体で共有する変わらない値」を一か所にまとめて、意味のある名前で再利用するための入れ物です。マジックナンバーや散らばった文字列を排除し、変更箇所を一か所に集約でき...
Java

Java | 基礎文法:バッドパターン例(巨大メソッドなど)

バッドパターンの全体像バッドパターンは「動くけど、壊れやすく、読みにくく、直しにくい」コードの形です。巨大メソッド、深いネスト、長すぎる引数、フラグ引数、マジックナンバー、神クラス(God Class...
Java

Java | 基礎文法:コメントの適切な量

コメントの考え方の全体像「適切な量のコメント」は、コードの理解を速め、変更を安全にするための最小限の説明です。コメントは“何をしているか”より“なぜそうしているか”を伝えるのが核で、コードで表現できる...
Java

Java | 基礎文法:コーディングスタイル

コーディングスタイルの全体像コーディングスタイルは「読みやすさ」「一貫性」「変更に強い設計」をコードに刻むための約束事です。Java では命名・インデント・括弧・行の構成・コメント(Javadoc)・...
Java

Java | 基礎文法:ブロック構造

ブロック構造の全体像ブロック構造は、波括弧 { ... } で囲まれた「まとまり」です。Java のコードはブロックの入れ子でできており、スコープ(見える範囲)とライフタイム(生きている期間)、制御の...
Java

Java | 基礎文法:ローカル変数のスコープ

ローカル変数のスコープの全体像「スコープ」は、ローカル変数が「どこから見えて、どこまで使えるか」の範囲です。Java のローカル変数は「宣言されたブロック({ })の内側」でだけ有効で、ブロックを出た...
Java

Java | 基礎文法:System.out.printf

System.out.printf の全体像System.out.printf は「書式指定子(フォーマット)」を使って、値を整形して出力するためのメソッドです。プレースホルダ(例:%d, %s, %...
Java

Java | 基礎文法:配列のソート(Arrays.sort)

配列ソートの全体像Arrays.sort は配列を「その場で」昇順に並べ替える標準APIです。プリミティブ配列(int や任意クラスの配列)で動作や拡張性が少し異なります。基本は自然順(数値の昇順、文...
Java

Java | 基礎文法:配列のコピー

配列コピーの全体像「配列のコピー」は、既存の配列から新しい配列を作って中身を複製することです。Java では System.arraycopy、Arrays.copyOf、Arrays.copyOfR...
Java

Java | 基礎文法:文字列比較

文字列比較の全体像Javaでの文字列比較は「参照が同じか(==)」と「内容が同じか(equals)」の二軸があります。日常的に必要なのは内容比較です。さらに「大文字小文字を無視」「辞書順で並べる」「ユ...
Java

Java | 基礎文法:hashCode の基礎

hashCode の全体像hashCode は「オブジェクトを整数に写像する関数」で、主に HashMap/HashSet が高速に探索するために使います。equals が「意味として同じか」を判定す...
Java

Java | 基礎文法:equals の基礎

equals の全体像Java の equals は「二つのオブジェクトが“意味として”同じか」を判定するメソッドです。参照が同じか(同一性)は ==、意味が同じか(同値性)は equals で比べま...
Java

Java | 基礎文法:ランタイムエラーとコンパイルエラー

全体像Java のエラーは大きく「コンパイルエラー」と「ランタイムエラー」に分かれます。コンパイルエラーは「プログラムに文法・型・宣言の誤りがあり、そもそも実行ファイルを作れない」状態です。ランタイム...
Java

Java | 基礎文法:VSCode / IntelliJ の基本操作

IDE の全体像VSCode と IntelliJ IDEA は、Java の開発・実行・テスト・デバッグ・リファクタリングを一気通貫で支える統合開発環境です。VSCode は拡張機能で軽量に始められ...
Java

Java | 基礎文法:break ポイント

ブレークポイントの全体像ブレークポイントは「この行で一度、必ず止まって中身を観測する」ための印(デバッグの要」です。IDE(IntelliJ IDEA、Eclipse、VS Code など)で指定した...
Java

Java | 基礎文法:ステップ実行

ステップ実行の全体像ステップ実行は、プログラムを一行ずつ進めて「流れ」と「その瞬間の状態」を目で確認するデバッグ手法です。IDE(IntelliJ IDEA、Eclipse、VS Code など)でブ...
Java

Java | 基礎文法:変数ウォッチ

変数ウォッチの全体像変数ウォッチは、プログラムを一時停止して「いまこの瞬間の変数や式の値」を安全に観測するデバッグ技法です。IDE(IntelliJ IDEA、Eclipse、VS Code など)の...
Java

Java | 基礎文法:デバッグの基本

デバッグの全体像デバッグは「バグの原因を特定して、意図どおりに直す」作業です。Javaでは、再現手順の固定、ログやスタックトレースの読み取り、IDEのブレークポイントでの実行停止・変数観察、最小化した...
Java

Java | 基礎文法:API リファレンスの読み方

API リファレンスの全体像API リファレンスは「クラスやメソッドが何をし、どう使うべきか」を正確に伝える公式資料です。Java では標準ライブラリ(java.base など)の各クラスに対して、概...
Java

Java | 基礎文法:フロー制御の設計

フロー制御の全体像フロー制御は「どの順番で、どの条件で、どこまで処理するか」を設計することです。Javaでは if/switch、for/while、break/continue、early retu...
Java

Java | 基礎文法:early return

early return の全体像early return(早期リターン)は、関数の冒頭で「前提違反・エラー・不要条件」をすぐに判定して、処理を中断し、直ちに戻り値を返す書き方です。深い if/els...
Java

Java | 基礎文法:条件分岐のネスト

条件分岐のネストの全体像条件分岐のネストは、if/else を入れ子にして複数の前提やケースを順に判定する書き方です。複雑なロジックを表現できますが、深くなるほど読みづらく、バグが入りやすくなります。...
Java

Java | 基礎文法:繰り返しのネスト

繰り返しのネストの全体像「繰り返しのネスト」は、for/while/foreach などのループを入れ子にして、2次元以上のデータ(表、グリッド、組み合わせ)を処理する書き方です。外側のループが“行”...
Java

Java | 基礎文法:IndexOutOfBoundsException

IndexOutOfBoundsException の全体像IndexOutOfBoundsException(IOBE)は「インデックスが有効範囲の外」を指したときに投げられる実行時例外です。配列、...
Java

Java | 基礎文法:ArithmeticException

ArithmeticException の全体像ArithmeticException は「算術計算が不正で続行できない」ときに投げられる実行時例外です。代表例は整数の 0 除算(割り算・剰余の分母が...
Java

Java | 基礎文法:NullPointerException

NullPointerException の全体像NullPointerException(NPE)は「参照が null のまま、メソッド呼び出しやフィールド参照など“あるはずのもの”を使おうとした時...
Java

Java | 基礎文法:throw

throw の全体像throw は「ここで例外を発生させる」という明示的な合図です。コードが不正な状態や契約違反を検知した瞬間に処理を中断し、例外オブジェクトを投げて呼び出し側へ失敗を伝えます。使いど...
Java

Java | 基礎文法:throws

throws の全体像throws は「このメソッドは特定の例外を投げる可能性がある」と呼び出し側へ宣言するための構文です。主にチェック例外(IOException など)に使われ、呼び出し側に「捕ま...
Java

Java | 基礎文法:finally

finally の全体像finally は「例外が起きても起きなくても、最後に必ず実行したい後始末」を書くための節です。try で本処理、必要なら catch で失敗時の対応を行い、最後に final...
Java

Java | 基礎文法:catch

catch の全体像catch は、try ブロックで発生した例外を「受け止めて、意味のある対処をする」ための節です。例外の型ごとに複数の catch を並べ、具体的な回復やメッセージ出力、再スロー(...
Java

Java | 基礎文法:try

try の全体像try は「失敗しうる処理を囲み、例外が起きたときに安全に対応する」ための構文です。基本は try の中に通常処理を書き、失敗したら catch で受け止め、最後の後始末を final...
Java

Java | 基礎文法:例外とは

例外の全体像例外(Exception)は「通常の処理の流れを中断して、異常事態を安全に伝える仕組み」です。ファイルがない、ネットワークが切れた、引数が不正、ゼロ除算など「このまま続けると壊れる」状況で...
Java

Java | 基礎文法:コーディング規約

コーディング規約の全体像コーディング規約は「チーム全体でコードの見た目と書き方を揃えるための約束事」です。読みやすさ、保守性、バグ回避、ツール連携を高めます。Javaでは命名、インデント、改行、波括弧...
Java

Java | 基礎文法:可読性の高い変数名

可読性の高い変数名の全体像変数名は「コードの意味を最短で伝えるラベル」です。可読性の高い名前は、型や実装に頼らず「何を表し、どの単位・範囲・状態か」を一目で分かるようにします。Java では小文字のキ...
Java

Java | 基礎文法:final

final の全体像final は「再代入や変更を禁止する」ためのキーワードです。対象は変数・フィールド・メソッド・クラスで、付ける場所によって意味が変わります。基本は「変数なら再代入不可」「メソッド...
Java

Java | 基礎文法:定数の宣言

定数の全体像定数は「値を変えない」と約束した識別子です。Javaでは final を使って再代入を禁止します。クラス全体で共有する不変の値は static final にし、インスタンスごとに不変の値...
Java

Java | 基礎文法:ガベージコレクションの概念

ガベージコレクションの全体像ガベージコレクション(GC)は「もう使われないオブジェクトを自動で見つけてメモリを回収する仕組み」です。Javaではメモリ解放を手動で書く必要がなく、プログラムは「必要なと...
Java

Java | 基礎文法:Boolean の扱い

Boolean の全体像Javaの真偽値は「プリミティブの boolean」と「ラッパー型の Boolean」の2種類があります。boolean は値そのもの(true/false)、Boolean ...
Java

Java | 基礎文法:null

null の全体像null は「参照がどのオブジェクトも指していない」ことを表す特別な値です。プリミティブ型(int、double、boolean など)には存在せず、参照型(String、配列、クラ...
Java

Java | 基礎文法:ラッパークラス

ラッパークラスの全体像ラッパークラスは、プリミティブ型(int、long、double など)をオブジェクトとして扱うためのクラス群です。代表は Integer、Long、Double、Float、S...
Java

Java | 基礎文法:型変換(キャスト)

型変換(キャスト)の全体像キャストは「コンパイラが自動で変換しない型へ、開発者の意図で変換を命じる」操作です。プリミティブ間の縮小変換(double → int など)や、参照型の上下変換(親子関係の...
Java

Java | 基礎文法:型変換(自動)

型変換(自動)の全体像Java の「自動型変換」は、コンパイラが安全だと判断できる範囲で型を広げたり(拡大変換)、式の計算前に統一の型へ昇格させたりする仕組みです。代表は「拡大プリミティブ変換(wid...
Java

Java | 基礎文法:エスケープシーケンス

エスケープシーケンスの全体像エスケープシーケンスは、文字列リテラルの中に「そのまま書けない特殊な文字」や「見えない制御文字」を埋め込むための約束です。Javaではバックスラッシュ(\)から始まる記法で...
Java

Java | 基礎文法:文字列結合

文字列結合の全体像Javaの文字列結合は「複数の値をひとつの文字列にまとめる」操作です。もっとも基本は + 演算子ですが、用途によって StringBuilder、String.join、String...
Java

Java | 基礎文法:Math クラス基礎

Math クラスの全体像Math クラスは「数値計算の基本ツール」をまとめたユーティリティです。すべて static メソッドと定数で構成され、インスタンス化せず Math.メソッド名(...) で使...
Java

Java | 基礎文法:標準出力

標準出力の全体像標準出力(stdout)は「プログラムの結果やメッセージを画面(コンソール)へ出す」ための出力先です。Java では System.out(型は PrintStream)を使って行い、...
Java

Java | 基礎文法:Scanner 入力

Scanner 入力の全体像Scanner は「テキストをトークン(単語・数値など)に分解して読み取る」ためのユーティリティです。標準入力(キーボード)だけでなく、文字列、ファイル、入力ストリームから...
Java

Java | 基礎文法:JavaDoc コメント

JavaDoc コメントの全体像JavaDoc コメントは「コードから自動生成できる公式ドキュメント」のためのコメントです。/** ... */ の形式で書き、メソッドやクラスの「目的」「前提」「戻り...
Java

Java | 基礎文法:コメントの書き方

コメントの全体像コメントは「コードの意図や背景を言葉で補う」ためのものです。Java では「行コメント」「ブロックコメント」「ドキュメンテーションコメント(Javadoc)」の3種類があり、用途に応じ...
Java

Java | 基礎文法:パッケージ

パッケージの全体像パッケージは「クラスを論理的にグループ化し、名前が衝突しないようにする仕組み」です。ファイルの先頭に package com.example.app; のように宣言し、ディレクトリ構...
Java

Java | 基礎文法:import 文

import 文の全体像import 文は「他のパッケージにあるクラスやインターフェースを、短い名前で使えるようにする宣言」です。書かなくても「完全修飾名(package.クラス名)」で使えますが、コ...
Java

Java | 基礎文法:static フィールド

Static フィールドの全体像static フィールド(クラス変数)は「クラスに属する共有の状態」です。インスタンスを何個作っても、static フィールドは1つだけ存在し、全インスタンスから同じ値...
Java

Java | 基礎文法:static メソッド

Static メソッドの全体像static メソッドは「クラスに属するメソッド」で、インスタンス(new で作るオブジェクト)を介さずに呼び出せます。数値計算や文字列整形など「個別の状態に依存しない処...
Java

Java | 基礎文法:オーバーロード

オーバーロードの全体像オーバーロードは「同じメソッド名に、引数の型・個数・並びが異なるバリエーションを定義する」仕組みです。呼び出し時の引数からコンパイラが最適な版を選びます。意味が近い処理を一つの名...
Java

Java | 基礎文法:戻り値

戻り値の全体像戻り値は「メソッドが処理の結果として外へ返す値」です。定義時に「戻り値の型」を決め、return で値を返します。値を返さない場合は型に void を指定します。戻り値は「関数型思考の中...
Java

Java | 基礎文法:引数

引数の全体像引数は「メソッドが外から受け取る入力」です。Java では、メソッド定義側で「型と名前」を宣言し、呼び出し側がその順番に値を渡します。戻り値は結果、引数は材料。設計の核心は「正しい型」「順...
Java

Java | 基礎文法:メソッド呼び出し

メソッド呼び出しの全体像メソッド呼び出しは「名前のついた処理を実行し、必要なら結果を受け取る」行為です。Java では「インスタンスメソッド(対象オブジェクトに対して呼ぶ)」と「static メソッド...
Java

Java | 基礎文法:メソッド定義

メソッド定義の全体像メソッドは「処理に名前をつけて再利用できるようにする単位」です。入力(引数)を受け取り、必要なら結果(戻り値)を返します。Java では「戻り値の型」「メソッド名」「引数の並び」「...
Java

Java | 基礎文法:for-each 文

for-each 文の全体像for-each(拡張 for 文)は「配列やコレクションの全要素を順に取り出して処理する」ための最短記法です。書式は for (要素の型 変数 : 配列またはIterab...
Java

Java | 基礎文法:2次元配列

2次元配列の全体像2次元配列は「配列の配列」です。行(外側)と列(内側)という2軸を持つ構造で、matrix のように2つの添字で要素へアクセスします。Java の2次元配列は「固定長の1次元配列を複...
Java

Java | 基礎文法:配列の長さ

配列の長さの基礎Java の配列は「固定長」です。作成時に決めた要素数は後から増減できません。長さはフィールド length で参照し、先頭の添字は 0、最後の添字は length - 1 です。配列...
Java

Java | 基礎文法:配列の要素アクセス

配列要素アクセスの全体像配列の要素アクセスは「添字(インデックス)で特定の位置の値を読み書きする」操作です。Java の配列は 0 始まりで、最後の要素の添字は length - 1。arr の形でア...
Java

Java | 基礎文法:配列の初期化

配列初期化の全体像配列の初期化は「配列オブジェクトを作る」と「要素に初期値を入れる」の2ステップです。Java の配列は長さが固定で、生成直後は型に応じたデフォルト値(数値は 0、boolean は ...
Java

Java | 基礎文法:配列の宣言

配列宣言の全体像配列は「同じ型の要素を並べて管理する入れ物」です。Java の配列は「長さが固定」「0 始まりの添字」「参照型(配列そのものはオブジェクト)」という3点が基本です。宣言は「型+角括弧+...
Java

Java | 基礎文法:無限ループ

無限ループの全体像無限ループは「終了条件が永遠に満たされず、ループが止まらない状態」です。Java では while (true) や for(;;) のように意図的に書くこともできますが、初心者が陥...
Java

Java | 基礎文法:do-while

do-while の全体像do-while は「本体を必ず1回実行してから条件を判定し、条件が true の間は繰り返す」構文です。通常の while と違い、最初の1回は無条件で実行されます。ユーザ...
Java

Java | 基礎文法:while 文

while 文の全体像while 文は「条件が true のあいだ、繰り返し続ける」ための基本構文です。回数が決まっていない繰り返し(入力が尽きるまで、成功するまで、条件が変わるまで)に向いています。...
Java

Java | 基礎文法:for 文

for 文の全体像for 文は「繰り返し」を最もコンパクトに書ける基本構文です。回数を決めて処理する、配列やリストを順番に処理する、といった場面で頻出します。伝統的な for (初期化; 条件; 更新...
Java

Java | 基礎文法:三項演算子

三項演算子の全体像三項演算子(条件演算子)は「条件に応じて値を一つ選ぶ」ための最短記法です。書式は 条件 ? 真のときの値 : 偽のときの値。if-else を1行で「値として」書けるのが強みで、変数...
Java

Java | 基礎文法:continue

continue の全体像continue は「現在の反復(1周)をスキップして、すぐ次の周回へ進む」ための制御文です。ループ本体の途中で「この条件なら残りは処理しなくていい」と判断したときに使います...
Java

Java | 基礎文法:break

break の全体像break は「いま実行中の繰り返し(ループ)や switch の処理を、途中でただちに打ち切る」ための制御文です。よく使う場面は「条件を満たした瞬間に探索終了」「エラー検知でそれ...
Java

Java | 基礎文法:switch 文

switch 文の全体像Java の switch 文は「ある値に応じて複数の分岐から一つを選んで実行する」ための構文です。if-else if 連鎖を簡潔に書けるのが特徴で、特に「定数や列挙値に応じ...
Java

Java | 基礎文法:else if

else if の全体像else if は「複数の条件を上から順に評価して、最初に一致した処理だけを実行する」ための構文です。if と else の間に挟み、分岐を段階的に重ねられます。評価は上から下...
Java

Java | 基礎文法:else 文

else 文の役割と基本else 文は、if の条件が false のときに実行する「もう一方の手」を明示します。分岐は「A ならこうする、そうでないなら別のこうする」という二者択一をシンプルに書ける...
Java

Java | 基礎文法:if 文

If 文の全体像Java の if 文は「条件が true のときだけ処理を実行する」ための最基本の制御構文です。条件は必ず boolean 型(true/false)で、C のように数値を真偽として...
Java

Java | 基礎文法:デクリメント

デクリメントの全体像デクリメントは「数値を 1 減らす」最短記法で、-- を使います。Java では「前置(--n)」と「後置(n--)」があり、式として使ったときの結果が異なります。対象は数値プリミ...
Java

Java | 基礎文法:インクリメント

インクリメントの全体像インクリメントは「数値を1つ増やす」ための最短記法です。++ を使うと、x = x + 1; を1文字で書けます。Java では「前置」と「後置」の2種類があり、式として使ったと...
Java

Java | 基礎文法:複合代入演算子

複合代入演算子の全体像複合代入演算子は「計算して、その結果を同じ変数に代入する」操作を一行で書ける記法です。x += y は x = x + y、x *= y は x = x * y と同義で、読みや...
Java

Java | 基礎文法:代入演算子

代入演算子の全体像代入演算子は「右側の式を評価して、その結果を左側の変数に入れる」ための基本ツールです。最も基本は =(代入)で、派生として「加算して代入」の += や「乗算して代入」の *= などの...
Java

Java | 基礎文法:論理演算子

論理演算子の全体像Java の論理演算子は条件を組み合わせて真偽を計算するための道具です。中心は短絡評価の &&(AND)と ||(OR)、反転の !(NOT)で、結果は必ず boolean(true...
Java

Java | 基礎文法:比較演算子

比較演算子の全体像Java の比較演算子は「式の真偽を判定して boolean を返す」ための基本ツールです。代表は ==、!=、<、>、<=、>= で、数値や文字の大小、同値性を判定します。重要なの...
Java

Java | 基礎文法:算術演算子

算術演算子の全体像Java の算術演算子は、足し算・引き算・掛け算・割り算・余り(剰余)を行うための基本ツールです。整数と小数で挙動が異なる点、型の自動拡張やオーバーフロー、ゼロ割りの結果など、初心者...
Java

Java | 基礎文法:真偽値

真偽値の全体像Java の真偽値は boolean 型で、取りうる値は true と false の二つだけです。C 言語のように 0 や非 0 を真偽として扱うことはできません。条件分岐(if)、繰...
Java

Java | 基礎文法:文字列リテラル

文字列リテラルの全体像Java の文字列リテラルは、ダブルクォートで囲んだ "..." の形でコードに直接書くテキストです。型は String クラスで、不変(immutable)なので作成後の内容は...
Java

Java | 基礎文法:数値リテラル

数値リテラルの全体像Java の「数値リテラル」は、コードに直接書く数値のことです。たとえば 42 や 3.14 のように書いたものがリテラルです。整数リテラルのデフォルト型は int、小数リテラルの...
Java

Java | 基礎文法:文字列型

文字列型の全体像Java の文字列は String クラスで表現され、テキストを扱うための最重要型です。String は不変(immutable)で、一度作った文字列の内容は変わりません。この不変性に...
Java

Java | 基礎文法:データ型(プリミティブ)

データ型(プリミティブ)の全体像Java のプリミティブ型は「値そのもの」を扱う最小単位のデータ型です。メモリ効率が良く、速度も速いので、数値計算やフラグ管理などの基礎に使われます。プリミティブは参照...
Java

Java | 基礎文法:変数の定義

変数の定義の全体像Java で「変数の定義」は、値にラベルを貼ってプログラム中で再利用できるようにする作業です。基本形は「型 名称 = 値;」で、型が先に来るのがポイントです。たとえば int age...
Java

Java | 基礎文法:コンパイルと実行

コンパイルと実行の全体像Java のプログラムは「ソースコード(.java)→ バイトコード(.class)→ JVM で実行」という三段構成で動きます。まず javac がソースをコンパイルして O...
Java

Java | 基礎文法:main メソッド

Main メソッドの役割Java の「プログラムの入口」は main メソッドです。JVM は指定されたクラスを読み込み、最初に public static void main(String[] ar...
Java

Java | 基礎文法:JDK と JRE

JDK と JRE の全体像Java を動かすには「実行環境」と「開発のための道具」が必要です。ここで登場するのが JRE(Java Runtime Environment)と JDK(Java De...
Java

Java | 基礎文法:Java の特徴

Java の特徴Java は「一度書けばどこでも動く(Write Once, Run Anywhere)」を目指して設計された言語です。プログラムはまず「バイトコード」にコンパイルされ、Java 仮想...
Java

Java 逆引き集 | ストリーム処理の設計ガイドライン(副作用禁止等) — 保守性向上

ねらいと基本原則ストリーム処理の保守性は「副作用を禁じる」「遅延評価を味方にする」「結合可能な集約を選ぶ」の三本柱で決まります。中間操作は純粋関数(入力だけに依存し、外部状態を変更しない)に徹し、副作...
Java

Java 逆引き集 | Stream を用いたデータ整形パイプライン設計 — パイプラインアーキテクチャ

ねらいと基本方針データ整形パイプラインは「取り込み → 正規化 → 検証 → 集約/変換 → 出力」の流れを、安全に、短く、遅延評価で組み立てる設計です。Stream を軸にすると、巨大データでもメモ...
Java

Java 逆引き集 | parallelStream のベンチマーク方法 — 実運用での検証

ねらいと前提parallelStream は「並列化すれば常に速い」魔法ではありません。効果が出る条件と落とし穴を理解し、順次と並列を同じ環境・同じ入力で比較するのが基本です。並列ストリームは For...
Java

Java 逆引き集 | Stream を使った CSV → オブジェクト変換 — ETL の簡潔化

ねらいと前提CSV をオブジェクトへ変換する ETL は「読み取り → クリーニング → 変換 → 検証 → 出力」の流れです。Stream を使えば、行を遅延で処理しながら宣言的に書けるため、巨大フ...
Java

Java 逆引き集 | lazy evaluation の理解(中間操作は遅延) — 無駄な処理回避

ねらいと前提Stream の中間操作(filter, map, sorted など)は「遅延評価」です。つまり、終端操作(collect, forEach, count など)が呼ばれるまで実行されま...
Java

Java 逆引き集 | Stream と Optional の良い組み合わせ — 値の有無ハンドリング

ねらいと前提値が「あるかもしれない/ないかもしれない」場面で、Optional は null 安全を保ちながら表現できます。Stream は「たくさんの値」を宣言的に流せます。この二つをうまく組み合わ...
Java

Java 逆引き集 | Stream API によるツリー/グラフ探索(再帰を使わないパターン) — 非再帰探索

ねらいと前提ツリー/グラフ探索は「親→子(隣接)」へ辿る処理です。再帰は直感的ですが、スタックあふれや制御の難しさが出ます。非再帰パターンでは、キュー(BFS)やスタック(DFS)を使って自分で「探索...
Java

Java 逆引き集 | reduce で複合オブジェクト集約 — ドメイン集計

ねらいと前提reduce は「ストリームの全要素をひとつの結果へ畳み込む」終端操作です。ドメイン集計では単なる数値の和ではなく、複数フィールドを持つ複合オブジェクト(件数・合計・最小・最大・補助メモな...
Java

Java 逆引き集 | ストリームでの並列グループ化(groupingByConcurrent) — 並列集計

ねらいと前提並列ストリームで「キーごとに集計」するなら、Collectors.groupingByConcurrent が最短で安全です。並列対応の ConcurrentHashMap を内部に使い、...
Java

Java 逆引き集 | キャッシング Collector(memoizing)パターン — 重い計算の最適化

目的と前提「重い計算」をストリームの中で何度も呼ぶと、CPUが燃え、待ち時間が伸び、並列化しても効果が出ません。キャッシング(memoizing)パターンは、同じ入力に対する結果を再利用して、計算を最...
Java

Java 逆引き集 | ストリームのデバッグ技(ログ出力・中間確認) — トラブルシュート

ねらいと前提「ストリームがどこでどう変わっているか」を素早く可視化できると、原因特定が一気に速くなります。中間確認の王道は peek と「小さく材質化(toList など)」の使い分けです。重要なのは...
Java

Java 逆引き集 | Stream と SQL の比較(いつ DB で処理すべきか) — 負荷分散判断

目的と前提「アプリ側で Stream に流すか、DB 側で SQL に任せるか」を正しく判断できると、性能・コスト・保守性が一気に安定します。根本の考え方はシンプルです。データ量が大きいほど「近いとこ...
Java

Java 逆引き集 | 組み合わせ生成(combinatorics via stream) — テストデータ作成

ねらいと基本指針テストデータを作るとき、組み合わせ(直積・順列・組合せ)を手早く生成できると検証の幅が一気に広がります。Java の Stream は「宣言的・短絡・遅延実行」が武器。巨大な結果を丸ご...
Java

Java 逆引き集 | Windowing(スライディング窓)パターン実装 — 時系列処理

目的と前提大量データを Stream で処理するとき、ボトルネックは「CPUよりメモリ」になりがちです。推定でも十分なので、どれだけメモリを消費するかを見積もり、材質化(toList/toMap)を最...
Java

Java 逆引き集 | Windowing(スライディング窓)パターン実装 — 時系列処理

目的と前提時系列処理で「連続 N 件」「直近 N 秒」のように、一定範囲のデータを滑らせながら集計するのがスライディング窓(windowing)です。Java 標準の Stream API には専用ウ...
Java

Java 逆引き集 | イテレータ→ストリームの変換(StreamSupport) — 外部API統合

目的と前提外部APIが Iterator(または Iterable)しか返さないときでも、Stream に変換すれば filter・map・collect などの強力な処理を宣言的に書けます。鍵になる...
Java

Java 逆引き集 | 並列 reduce の適切な設計(結合可能な演算) — 正しさの担保

目的と前提並列 reduce を正しく設計する鍵は「結合可能(結合律を満たす)な演算」と「適切な単位元(identity)」、そして「accumulator と combiner の整合性」です。並列...
Java

Java 逆引き集 | Stream サプライヤーパターン(Supplier を用いる) — 再生成可能性

目的と前提ストリームは「一度流したら終わり」の一回性を持ちます。同じパイプラインで複数の終端操作(count と toList など)をしたい、あるいは同じフィルタや変換を繰り返し適用したい場面では、...
Java

Java 逆引き集 | ストリームチェーンの分割と再利用 — 可読性/保守性

ねらいと基本原則ストリームは「1回流して終わり」の使い捨てモデルです。可読性と保守性を高めたいなら、再利用すべきはストリームそのものではなく「処理の定義(Predicate/Function/Coll...
Java

Java 逆引き集 | ストリームでのランダムアクセスの落とし穴 — パフォーマンス評価

概要と本質ストリームは「順次走査」に強く、「ランダムアクセス」に弱い仕組みです。配列や ArrayList のようなランダムアクセス向きのデータ構造でも、ストリームに乗せるとインデックス指定は基本的に...
Java

Java 逆引き集 | サードパーティライブラリ(jOOλ 等)の活用 — ストリーム拡張

ポイントまとめJava 標準の Stream API は便利ですが、制約もあります。サードパーティライブラリ jOOλ(jOOL) を使うと、タプル型や拡張関数、例外処理の簡略化などが可能になり、St...
Java

Java 逆引き集 | Stream を使った行列変換(transpose) — データ整形

Stream を使った行列変換(transpose) — データ整形「行列の転置(transpose)」とは、行と列を入れ替える操作です。例えば 2×3 の行列を転置すると 3×2 になります。Str...
Java

Java 逆引き集 | Stream の例外リカバリ戦略(fallback) — 途中失敗の処理

Stream の例外リカバリ戦略(fallback) — 途中失敗の処理ストリーム処理の途中で I/O や変換が失敗しても、処理全体を止めずに「回復」させるのが fallback。目的は「止めるべき失...
Java

Java 逆引き集 | IntSummaryStatistics の活用 — 集計情報取得の便利型

IntSummaryStatistics の活用 — 集計情報取得の便利型IntSummaryStatistics は「int の集計情報」をひとまとめに持つユーティリティです。件数・合計・最小値・最...
Java

Java 逆引き集 | Collector joining with delimiter/prefix/suffix — レポート生成

Collector.joining with delimiter/prefix/suffix — レポート生成Stream の要素を文字列としてまとめたいときに便利なのが Collectors.joi...
Java

Java 逆引き集 | flatMap を用いたネスト解除(OptionalやListのネスト) — 構造フラット化

flatMap を用いたネスト解除(OptionalやListのネスト) — 構造フラット化Stream API の flatMap は「入れ子になった構造をフラットにする」ための中間操作です。初心者...
Java

Java 逆引き集 | 並列ストリームでのコンテキスト保持(ThreadLocal の注意) — 意図しない挙動回避

並列ストリームでのコンテキスト保持(ThreadLocal の注意) — 意図しない挙動回避Java の並列ストリームは内部的に ForkJoinPool を使って複数スレッドで処理します。このとき「...
Java

Java 逆引き集 | ストリームの短絡(short-circuit)操作 — パフォーマンス最適化

ストリームの短絡(short-circuit)操作 — パフォーマンス最適化短絡操作は「必要な分だけ処理したら早めに打ち切る」ための仕組みです。無駄な計算や I/O を避け、スループットを上げる実戦テ...
Java

Java 逆引き集 | 並列ストリームと ForkJoinPool のチューニング — スループット向上

並列ストリームと ForkJoinPool のチューニング — スループット向上並列ストリームは「書き換え少なくCPUを使い切る」ための強力な選択肢。ただし闇雲な並列化は遅くなったり結果が壊れます。安...
Java

Java 逆引き集 | Collector.of でカスタム Collector 作成 — 特殊な集約

Collector.of でカスタム Collector 作成 — 特殊な集約Stream API の Collectors には便利な標準 Collector が多数ありますが、特殊な集約処理をした...
Java

Java 逆引き集 | ストリームでの例外処理パターン(ラップ処理) — checked 例外の扱い

ストリームでの例外処理パターン(ラップ処理) — checked 例外の扱いStream のラムダは基本的に checked 例外を投げられません。ファイルやネットワークなどの I/O をストリームの...
Java

Java 逆引き集 | Optional を返すストリーム処理パターン — null 安全

Optional を返すストリーム処理パターン — null 安全Java の Stream API は「結果があるかどうか分からない」処理をするときに Optional を返すメソッドを備えています...
Java

Java 逆引き集 | ファイルの行ストリーム処理(Files.lines) — 大規模ファイル処理

ファイルの行ストリーム処理(Files.lines) — 大規模ファイル処理Java NIO の Files.lines(Path) は、テキストファイルを 1行ずつストリームとして処理できる便利なメ...
Java

Java 逆引き集 | peek の使い方(デバッグ) — 中間ログ

peek の使い方(デバッグ) — 中間ログストリームの「途中」を覗いて、要素がどう変わっているかを確認するのが peek。中間操作としてログを差し挟めるので、フィルタや変換の結果を安全に観察できます...
Java

Java 逆引き集 | Stream 並列化の落とし穴(副作用) — スレッド安全性

Stream 並列化の落とし穴(副作用) — スレッド安全性Java の Stream API は .parallelStream() や .parallel() を使うと簡単に並列化できます。しかし...
Java

Java 逆引き集 | Collectors.toMap の衝突解決(mergeFunction) — Map 化での安全対策

Collectors.toMap の衝突解決(mergeFunction) — Map 化での安全対策Stream を Map に変換するとき、キー重複があると例外になります。Collectors.t...
Java

Java 逆引き集 | Stream.iterate(Java 9 の変化) — シーケンス生成

Stream.iterate(Java 9 の変化) — シーケンス生成Java 8 から導入された Stream.iterate は「初期値から次の値を生成していく」ための便利なメソッドです。Jav...
Java

Java 逆引き集 | range / rangeClosed(数値ストリーム) — 反復生成

range / rangeClosed(数値ストリーム) — 反復生成IntStream/LongStream には数値の連続を作るための range 系メソッドがあり、for ループより短く安全に「...
Java

Java 逆引き集 | IntStream/LongStream/DoubleStream(プリミティブストリーム) — オートボクシング回避

IntStream / LongStream / DoubleStream(プリミティブストリーム) — オートボクシング回避Java の Stream API には、Stream<Integer> ...
Java

Java 逆引き集 | anyMatch/allMatch/noneMatch — 条件検査

anyMatch / allMatch / noneMatch — 条件検査Stream API の終端操作である anyMatch / allMatch / noneMatch は、ストリームの要素...
Java

Java 逆引き集 | max/min/findFirst/findAny — 候補抽出

max / min / findFirst / findAny — 候補抽出Stream API には「候補をひとつ取り出す」ための便利な終端操作がいくつかあります。max/min は「最大値・最小値...
Java

Java 逆引き集 | summarizingInt/Long/Double — 統計情報を一発取得

summarizingInt / summarizingLong / summarizingDouble — 統計情報を一発取得Stream API の Collectors.summarizingI...
Java

Java 逆引き集 | partitioningBy(true/false に分割) — 二分集計

partitioningBy(true/false に分割) — 二分集計Stream API の Collectors.partitioningBy は「条件に合うかどうか」で true/false...
Java

Java 逆引き集 | joining(Collectors.joining) — 文字列結合

joining(Collectors.joining) — 文字列結合Stream API の Collectors.joining は、ストリームの要素を 文字列として結合するための便利な終端操作で...
Java

Java 逆引き集 | collect(Collectors.groupingBy(…)) — グルーピング集計

collect(Collectors.groupingBy(...)) — グルーピング集計Stream API の collect(Collectors.groupingBy(...)) は「キーご...
Java

Java 逆引き集 | reduce の使い方(集約) — 合算や累積計算

reduce の使い方(集約) — 合算や累積計算Stream の「結果をひとつに畳み込む」終端操作が reduce。合計・積・最大最小・連結・カスタム集約まで、柔軟に一行で書けます。初心者が迷う「初...
Java

Java 逆引き集 | distinct / limit / skip — 重複排除・ページング処理

distinct / limit / skip — 重複排除・ページング処理Stream API の中間操作でよく使うのが distinct(重複排除)、limit(先頭から指定件数だけ残す)、ski...
Java

Java 逆引き集 | filter・map・flatMap の使い分け — 条件絞りと展開

filter・map・flatMap の使い分け — 条件絞りと展開「要素を絞る・変換する・入れ子をほどく」をそれぞれ得意とするのが filter、map、flatMap。違いが腹落ちすると、無駄な中...
Java

Java 逆引き集 | Intermediate / Terminal 操作の理解 — パイプライン設計

Intermediate / Terminal 操作の理解 — パイプライン設計ストリームは「中間操作で加工し、終端操作で結果を取り出す」流れで動きます。中間は“つなぐ”、終端は“決着させる”。この違...
Java

Java 逆引き集 | Stream API の基本(stream(), filter, map, collect) — データ変換

Stream API の基本(stream(), filter, map, collect) — データ変換Java 8 以降で導入された Stream API は「コレクションを宣言的に処理する」た...
Java

Java 逆引き集 | Iterator vs Stream の使い分け(遅延評価・メモリ) — 性能設計

Iterator vs Stream の使い分け(遅延評価・メモリ) — 性能設計「大量データをどう処理するか」は設計の肝。Iterator は手続き的で軽量、Stream は宣言的で強力(遅延評価・...
Java

Java 逆引き集 | バッチ処理用チャンク分割(partitioning) — メモリ制御

バッチ処理用チャンク分割(partitioning) — メモリ制御大量データを「少しずつ」処理することで、メモリ使用量と失敗リスクを抑えるのがチャンク分割です。固定サイズで区切って読み・変換・書き込...
Java

Java 逆引き集 | 多次元配列と List<List<T>> の使い分け — 可変性と利便性

多次元配列と List<List<T>> の使い分け — 可変性と利便性Java では「二次元以上のデータ構造」を表す方法が大きく分けて2つあります。多次元配列(int, String など)入れ子の...
Java

Java 逆引き集 | Guava / Apache Commons Collections の利用(拡張ユーティリティ) — 実務ツール

Guava / Apache Commons Collections の利用(拡張ユーティリティ) — 実務ツール標準 Java コレクション API は基本的な機能を提供しますが、実務では「もう少し...
Java

Java 逆引き集 | Collections.newSetFromMap(Map を Set に変換) — カスタム Set 実装

Collections.newSetFromMap(Map を Set に変換) — カスタム Set 実装Java には Collections.newSetFromMap(Map<E,Boolea...
Java

Java 逆引き集 | ThreadLocal を使ったスレッド依存データ管理 — スレッド単位の状態

ThreadLocal を使ったスレッド依存データ管理 — スレッド単位の状態同じ変数名でも、各スレッドが「自分専用の値」を持てるのが ThreadLocal。リクエスト単位のトレースID、フォーマッ...
Java

Java 逆引き集 | Map の null キー/値対応(実装差) — 入出力検証

Map の null キー/値対応(実装差) — 入出力検証Map は実装ごとに「null を許すか」が違います。キーに null を入れると検索や equals/hashCode まわりで混乱しやす...
Java

Java 逆引き集 | コレクション間の差分(removeAll, retainAll) — 差分集計

コレクション間の差分(removeAll, retainAll) — 差分集計差分を取りたいときの定番が removeAll(差集合の除去)と retainAll(共通部分の保持)。どちらも「破壊的(...
Java

Java 逆引き集 | バッファ付きコレクション(LinkedList の代替) — メモリ/性能の考慮

バッファ付きコレクション(LinkedList の代替) — メモリ/性能の考慮「バッファ用途(キュー、先頭・末尾の出し入れ、スライディングウィンドウ)」で LinkedList を選びがちですが、実...
Java

Java 逆引き集 | トポロジカルソート(グラフ→依存解決) — ビルド順や依存解決

トポロジカルソート(グラフ→依存解決) — ビルド順や依存解決「依存関係を持つタスクを順序付けする」典型アルゴリズムが トポロジカルソート。Java での実装は、有向非巡回グラフ(DAG) を前提に、...
Java

Java 逆引き集 | Stream の無限ストリーム(iterate, generate) — データ生成

Stream の無限ストリーム(iterate, generate) — データ生成無限ストリームは「必要なだけ動的に作る」ための道具です。Stream.iterate は「前の値から次を作る連続生成...
Java

Java 逆引き集 | Map のビュー(keySet, values, entrySet)の使い分け — 効率的操作

Map のビュー(keySet, values, entrySet)の使い分け — 効率的操作Map の「ビュー」は中身をコピーせず、元の Map に直接つながった見え方を返します。ビュー経由での操作...
Java

Java 逆引き集 | Immutable wrappers と defensive copy パターン — API 安全性

Immutable wrappers と defensive copy パターン — API 安全性API 設計で「外部から渡されたコレクションや配列を勝手に書き換えられてしまう」問題を防ぐために使う...
Java

Java 逆引き集 | Arrays.copyOf / copyOfRange — 配列操作と拡張

Arrays.copyOf / copyOfRange — 配列操作と拡張配列を「丸ごとコピー」「サイズ変更」「一部だけ取り出す」を、安全に簡潔に書けるのが Arrays.copyOf と Array...
Java

Java 逆引き集 | Collections.swap / replaceAll — リスト操作の簡潔化

Collections.swap / replaceAll — リスト操作の簡潔化リスト要素の入れ替えや一括置換を「短く安全に」書けるのが Collections.swap と Collections...
Java

Java 逆引き集 | ListIterator(双方向反復) — 位置ベースの操作

ListIterator(双方向反復) — 位置ベースの操作ListIterator は List を前後どちらの方向にも走査でき、走査しながら安全に「挿入・削除・置換」ができる反復子です。カーソルは...
Java

Java 逆引き集 | Iterator.remove の正しい使い方 — ループ中の安全な削除

Iterator.remove の正しい使い方 — ループ中の安全な削除拡張 for 文で走査中に remove すると例外になりがち。安全に要素を削除したいときは、Iterator を使い、next...
Java

Java 逆引き集 | Stream の並列化(parallelStream)と注意点 — スレッド安全性

Stream の並列化(parallelStream)と注意点 — スレッド安全性並列 Stream は「ForkJoinPoolで要素を分割・並列処理・結合」する仕組みです。速くなることもありますが...
Java

Java 逆引き集 | コレクションの初期容量指定(負荷低減) — パフォーマンスチューニング

コレクションの初期容量指定(負荷低減) — パフォーマンスチューニング「どれくらい要素が入るか」をあらかじめ見積もれるなら、初期容量を指定しておくと再割り当て(拡張)や再ハッシュを減らせます。結果とし...
Java

Java 逆引き集 | Immutable key の要件(hashCode/equals 安定) — Map の鍵設計

Immutable key の要件(hashCode/equals 安定) — Map の鍵設計Map のキーは「一度入れたら同じまま」であることが大前提です。途中で変化すると検索できなくなったり、誤...
Java

Java 逆引き集 | サブリスト(subList)の注意点(ビュー) — 変更の影響範囲

サブリスト(subList)の注意点(ビュー) — 変更の影響範囲Java の List.subList(from, to) は「部分リスト」を返しますが、これは コピーではなく元リストのビュー(見え...
Java

Java 逆引き集 | 自然順序付け(Comparable) — デフォルトソート

自然順序付け(Comparable) — デフォルトソートJava の「自然順序付け」は、クラスが Comparable インターフェースを実装している場合に使われる「デフォルトの並び替えルール」です...
Java

Java 逆引き集 | Comparator の作り方(comparing, reversed, thenComparing) — ソートルール

Comparator の作り方(comparing, reversed, thenComparing) — ソートルール「主キー→副キー→さらに副キー」と、明快に並び替えルールを書けるのが Compa...
Java

Java 逆引き集 | FlatMap を使ったネスト解除 — ネスト構造展開

FlatMap を使ったネスト解除 — ネスト構造展開「配列の中に配列」「リストの中にリスト」「Optional の中に Optional」など、入れ子になった構造を一段に平らにするのが flatMa...
Java

Java 逆引き集 | PartitioningBy / GroupingBy(Collectors) — 集計・グループ化

PartitioningBy / GroupingBy(Collectors) — 集計・グループ化Stream の終端操作 collect における定番が partitioningBy(2分割)と ...
Java

Java 逆引き集 | Stream.collect(Collectors.toList()/toSet()/toMap()) — ストリーム結果変換

Stream.collect(Collectors.toList()/toSet()/toMap()) — ストリーム結果変換Stream の終端操作である collect は、加工した要素を Lis...
Java

Java 逆引き集 | Collections.frequency / disjoint などユーティリティ — コレクション比較

Collections.frequency / disjoint などユーティリティ — コレクション比較配列やリスト、セット同士を「重複数の比較」「共通要素の有無」「部分一致」などで比べたいとき、j...
Java

Java 逆引き集 | CopyOnWriteArrayList(読み取り多い並列環境) — 読み取り優先

CopyOnWriteArrayList(読み取り多い並列環境) — 読み取り優先書き込み時に「配列のコピー」を作って更新し、読み取りや反復を常に安全にするのが CopyOnWriteArrayLis...
Java

Java 逆引き集 | ConcurrentLinkedQueue(ロックフリーキュー) — 高スループット

ConcurrentLinkedQueue(ロックフリーキュー) — 高スループット複数スレッドから同時に追加・取得しても待ち時間がほぼ発生しない、ロックフリーな待ち行列が ConcurrentLin...
Java

Java 逆引き集 | IdentityHashMap(== でキー比較) — 特殊用途

IdentityHashMap(== でキー比較) — 特殊用途IdentityHashMap は Java の特殊な Map 実装で、キーの比較に equals() ではなく ==(参照同一性) を...
Java

Java 逆引き集 | WeakHashMap の利用ケース(キャッシュと GC) — メモリリーク防止

WeakHashMap の利用ケース(キャッシュと GC) — メモリリーク防止WeakHashMap は「キーを弱参照で保持する Map」。キーへの強参照が外部で途切れると、GC(ガベージコレクショ...
Java

Java 逆引き集 | NavigableMap / NavigableSet(近傍検索) — 前後関係の取得

NavigableMap / NavigableSet(近傍検索) — 前後関係の取得NavigableMap と NavigableSet は、ソート済みのデータ構造に「近傍検索(前後関係の取得)」...
Java

Java 逆引き集 | Deque(ArrayDeque) — 両端操作、高速スタック/キュー

Deque(ArrayDeque) — 両端操作、高速スタック/キューJava の Deque(Double Ended Queue)は「両端から追加・削除できる」データ構造です。代表的な実装が Ar...
Java

Java 逆引き集 | PriorityQueue(優先度キュー) — ジョブスケジューラ

PriorityQueue(優先度キュー) — ジョブスケジューラ優先度で「先に処理すべきもの」から取り出せるのが PriorityQueue。デフォルトでは最小値が先頭の最小ヒープ構造で、自然順また...
Java

Java 逆引き集 | イミュータブルコレクション(List.of, Map.of) — 不変の集合

イミュータブルコレクション(List.of, Map.of) — 不変の集合Java 9 以降では、List.of, Set.of, Map.of などの イミュータブル(不変)コレクション を簡単に...
Java

Java 逆引き集 | MultiMap パターン(Map <K, List<V>>) — 1対多管理

MultiMap パターン(Map<K, List<V>>) — 1対多管理Java の標準ライブラリには「MultiMap」というクラスはありません。しかし「1つのキーに複数の値を紐付けたい」場面は...
Java

Java 逆引き集 | Map のストリーム処理(entrySet→stream) — キー/値単位処理

Map のストリーム処理(entrySet→stream) — キー/値単位処理Mapは「キー→値」のペアを扱う構造。Stream APIと組み合わせると、条件抽出、並べ替え、集計が短く安全に書けます...
Java

Java 逆引き集 | Map.computeIfAbsent / compute / merge — 集計ロジック簡潔化

Map.computeIfAbsent / compute / merge — 集計ロジック簡潔化「存在チェック→取得→更新→再格納」の冗長なコードを、1行の原子操作で置き換えるのが computeI...
Java

Java 逆引き集 | Collections.synchronizedList 等(同期ラッパー) — 古い同期方法

Collections.synchronizedList 等(同期ラッパー) — 古い同期方法読み書きが同時に起きる環境で、既存の可変コレクションを「ひとまず安全に」使いたいときに使うのが同期ラッパー...
Java

Java 逆引き集 | Arrays クラスユーティリティ(sort / binarySearch) — 配列操作

Arrays クラスユーティリティ(sort / binarySearch) — 配列操作配列の並べ替えと検索は「まずソートしてから二分探索」が基本。Java の java.util.Arrays は...
Java

Java 逆引き集 | Collections.shuffle / sort / reverse — リスト操作ユーティリティ

Collections.shuffle / sort / reverse — リスト操作ユーティリティリストの「並び替え」「逆順」「ランダム化」を一発でやれるのが Collections ユーティリテ...
Java

Java 逆引き集 | Collections.unmodifiableList 等(読み取り専用ラッパー) — API 返却時の安全性

Collections.unmodifiableList 等(読み取り専用ラッパー) — API 返却時の安全性外部にコレクションを返すとき「勝手に書き換えられない」ようにするのが読み取り専用ラッパー...
Java

Java 逆引き集 | ConcurrentHashMap (スレッド安全な Map) — マルチスレッド環境

ConcurrentHashMap(スレッド安全な Map) — マルチスレッド環境並行処理で「キー→値」を共有したいなら、まずは ConcurrentHashMap。ロックを最小限に抑えた設計で、高...
Java

Java 逆引き集 | EnumMap / EnumSet の活用(enum 最適化) — 小さい高速マップ/集合

EnumMap / EnumSet の活用(enum 最適化) — 小さい高速マップ/集合Java には「列挙型(enum)」専用に最適化されたコレクションが用意されています。それが EnumMap ...
Java

Java 逆引き集 | HashSet の特性と重複排除 — 一意性保持

HashSet の特性と重複排除 — 一意性保持Java の HashSet は「重複を許さない集合」を表すクラスです。初心者が理解すべきポイントは「一意性保持」「順序が保証されない」「検索が速い」と...
Java

Java 逆引き集 | TreeMap(ソートされた Map) — 範囲検索

TreeMap(ソートされた Map) — 範囲検索TreeMap は Java の Map 実装のひとつで、キーを自動的にソートして保持するのが特徴です。初心者が理解すべきポイントは「キーが常に昇順...
Java

Java 逆引き集 | LinkedHashMap(挿入順/アクセス順保持) — LRU 実装の簡易版

LinkedHashMap(挿入順/アクセス順保持) — LRU 実装の簡易版Java の LinkedHashMap は、HashMap に「順序保持機能」を追加したものです。初心者が理解すべきポイ...
Java

Java 逆引き集 | HashMap の基本(キーのハッシュ化) — 索引付き検索

HashMap の基本(キーのハッシュ化) — 索引付き検索Java で「キーと値のペア」を効率的に管理する代表的なコレクションが HashMap です。初心者が理解すべきポイントは「キーをハッシュ化...
Java

Java 逆引き集 | LinkedList の使いどころ(頻繁な先頭/中間挿入) — キュー実装

LinkedList の使いどころ(頻繁な先頭/中間挿入) — キュー実装Java で「リスト構造」を扱うとき、ArrayList と LinkedList が代表的です。初心者が理解すべきポイントは...
Java

Java 逆引き集 | ArrayList の使いどころと性能(ランダムアクセス重視) — 一覧管理

ArrayList の使いどころと性能(ランダムアクセス重視) — 一覧管理Java で「一覧管理」をする際によく使うのが ArrayList。初心者がまず理解すべきは「どんな場面で使うか」「性能の特...
Java

Java 逆引き集 | コードスタイルとフォーマッタ(一定の規約) — チーム開発品質

コードスタイルとフォーマッタ(一定の規約) — チーム開発品質チーム開発では「コードの書き方が人によってバラバラ」だとレビューや保守が大変になります。そこで コードスタイルの統一 と フォーマッタの利...
Java

Java 逆引き集 | 単体テストを意識した設計(DI, インターフェース分離) — テスト容易性

単体テストを意識した設計(DI, インターフェース分離) — テスト容易性単体テストをしやすくするための設計の基本が 依存注入(DI: Dependency Injection) と インターフェース...
Java

Java 逆引き集 | バージョン互換(Java のメジャーアップでの注意) — 移行計画

バージョン互換(Java のメジャーアップでの注意) — 移行計画大きな Java のアップグレードでは「非互換のポイント」を見逃すと本番障害に直結します。LTSの選び方、削除・非推奨機能、セキュリテ...
Java

Java 逆引き集 | Javadoc コメントの書き方 — API ドキュメント化

Javadocコメントの書き方 — APIドキュメント化Javadocは「コードからAPIドキュメント(HTML)を自動生成するためのコメント形式」。読み手に意図や契約を伝え、再利用性と保守性を高めま...
Java

Java 逆引き集 | サニタイズ(入力検証) — セキュリティと整合性

サニタイズ(入力検証) — セキュリティと整合性サニタイズ (sanitize) とは「外部から受け取った入力を安全に整える」こと。Webアプリや業務システムでは、ユーザー入力をそのまま使うと SQL...
Java

Java 逆引き集 | 最小特権の原則(アクセス制御) — セキュリティ基本

最小特権の原則(アクセス制御) — セキュリティ基本最小特権の原則 (Principle of Least Privilege) とは、「プログラムやユーザーに必要最小限の権限だけを与える」ことで、セ...
Java

Java 逆引き集 | toString の実装方針 — ログ/デバッグの可視化

toString の実装方針 — ログ/デバッグの可視化toString は「オブジェクトの状態を文字列で見える化」するための最重要メソッド。ログやデバッグで素早く状況把握できるよう、読みやすく・安全...
Java

Java 逆引き集 | equals / hashCode の正しい実装 — コレクションでの動作保証

equals / hashCode の正しい実装 — コレクションでの動作保証コレクション(HashSet/HashMap/HashTableなど)で正しく動かすには、equals と hashCod...
Java

Java 逆引き集 | 不変オブジェクトの作り方(Immutable) — スレッド安全

不変オブジェクトの作り方(Immutable) — スレッド安全「一度作ったら状態が変わらない」オブジェクトが不変(Immutable)。予期せぬ書き換えが起きないので、並行処理でも扱いやすく、コード...
Java

Java 逆引き集 | 依存注入(コンストラクタ注入の利点) — テスト容易性

依存注入(コンストラクタ注入の利点) — テスト容易性Javaでよく使われる設計パターンの一つが 依存注入(Dependency Injection, DI)。その中でも「コンストラクタ注入」は、テス...
Java

Java 逆引き集 | 簡単なユーティリティクラス作成(static メソッド) — 共通処理集約

簡単なユーティリティクラス作成(static メソッド) — 共通処理集約Javaでは「よく使う処理」を一箇所にまとめておくと便利です。そのために ユーティリティクラス を作り、static メソッド...
Java

Java 逆引き集 | 入出力のエンコーディング(UTF-8 など) — 文字化け防止

入出力のエンコーディング(UTF-8 など) — 文字化け防止文字化けの原因は「保存時の文字コード」と「読み込み時の文字コード」が一致していないこと。Javaでは 明示的にエンコーディングを指定するこ...
Java

Java 逆引き集 | 配列→コレクション変換(Arrays.asList 等) — API 互換

配列→コレクション変換(Arrays.asList 等) — API 互換Javaでは「配列」と「コレクション(List, Set, Mapなど)」がよく登場します。配列は固定長・基本的な構造、コレク...
Java

Java 逆引き集 | アルゴリズム基礎(ソート/検索の考え方) — パフォーマンス判断

アルゴリズム基礎(ソート/検索の考え方) — パフォーマンス判断プログラムでよく使う処理が ソート(並べ替え) と 検索(探す)。初心者がまず理解すべきは「どういう方法があるか」「どのくらい速いか(計...
Java

Java 逆引き集 | アサーション(assert) — デバッグ補助

アサーション(assert) — デバッグ補助Javaの アサーション(assert) は「プログラムの前提条件が正しいか」を実行時にチェックする仕組みです。バグを早期に発見するための補助機能であり、...
Java

Java 逆引き集 | リフレクション基礎(Class, Method) — フレームワーク開発/DI

リフレクション基礎(Class, Method) — フレームワーク開発/DIJavaの リフレクション(Reflection) は「クラスやメソッドを動的に調べたり呼び出したりする仕組み」です。通常...
Java

Java 逆引き集 | シリアライズ(Serializable の注意点) — 永続化/送受信

シリアライズ(Serializable の注意点) — 永続化 / 送受信Javaの シリアライズ は「オブジェクトをバイト列に変換して保存や送受信できるようにする」仕組みです。ファイル保存、ネットワ...
Java

Java 逆引き集 | リソース自動クローズ(try-with-resources) — リソース漏れ防止

リソース自動クローズ(try-with-resources) — リソース漏れ防止「使い終わったら必ず閉じる」を、言い忘れなく自動でやってくれる構文が try-with-resources。Java ...
Java

Java 逆引き集 | ロギングの基本(slf4j + Logback 等) — 運用ログ

ロギングの基本(slf4j + Logback 等) — 運用ログアプリケーションの「動作記録」を残すのがロギング。print文でのデバッグから卒業し、slf4j + Logback を使うと、運用に...
Java

Java 逆引き集 | 日付時間API(java.time: LocalDate/LocalDateTime/Duration) — 日時処理

日付時間API(java.time: LocalDate / LocalDateTime / Duration) — 日時処理日時は「正しく扱えるか」で品質が決まります。java.time(Java ...
Java

Java 逆引き集 | 文字列の正規表現(Pattern / Matcher) — テキスト検証

文字列の正規表現(Pattern / Matcher) — テキスト検証正規表現は「文字列がルールに合っているか」「欲しい部分だけ抜き出す」ための強力な道具。Javaでは java.util.rege...
Java

Java 逆引き集 | 型推論(var) — ローカル変数の簡潔化(Java 10+)

型推論(var) — ローカル変数の簡潔化(Java 10+)Java 10から導入された var は、ローカル変数の型をコンパイラに推論させる仕組みです。「型を明示しなくても、右辺から自動的に型が決...
Java

Java 逆引き集 | 可視性とパッケージ設計 — モジュール分離

可視性とパッケージ設計 — モジュール分離Javaでは アクセス修飾子(public / private / protected / default) と パッケージ構造 を組み合わせることで、コード...
Java

Java 逆引き集 | ワイルドカード(? extends / ? super) — API 汎用性

ワイルドカード(? extends / ? super) — API 汎用性Javaのジェネリクスには ワイルドカード という仕組みがあります。「型を柔軟に受け取る」ための記法で、APIの汎用性を高め...
Java

Java 逆引き集 | ジェネリクス基礎(型パラメータ) — 型安全なコレクション

ジェネリクス基礎(型パラメータ) — 型安全なコレクションJavaの ジェネリクス(Generics) は「型をパラメータ化」する仕組みです。コレクション(List, Map, Setなど)を使うとき...
Java

Java 逆引き集 | アノテーションの基礎(@Override 等) — メタ情報

アノテーションの基礎(@Override 等) — メタ情報Javaの アノテーション は「コードに付けるメタ情報(補足情報)」です。コンパイラやフレームワークに「この要素はこう扱ってほしい」と伝える...
Java

Java 逆引き集 | Enum の使い方(プロパティとメソッド) — 定数管理

Enum の使い方(プロパティとメソッド) — 定数管理「限られた選択肢」を型として安全に扱うのが enum。単なる定数集ではなく、プロパティやメソッドを持てる“小さなクラス”です。業務コードの「状態...
Java

Java 逆引き集 | 内部クラス(static / 非static / 匿名) — 小さなヘルパー実装

内部クラス(static / 非static / 匿名) — 小さなヘルパー実装Javaではクラスの中にさらにクラスを定義できます。これを 内部クラス(nested class) と呼びます。「外部ク...
Java

Java 逆引き集 | 抽象クラス vs インターフェース — API 設計の選択

抽象クラス vs インターフェース — API 設計の選択「共通の型をどう表すか」を決めるのが抽象クラスとインターフェース。どちらも“契約”を提供しますが、設計の狙いが少し違います。初心者でも迷わない...
Java

Java 逆引き集 | 継承とポリモーフィズム — 拡張性のある設計

継承とポリモーフィズム — 拡張性のある設計Javaのオブジェクト指向の柱が 継承 と ポリモーフィズム(多態性)。「共通部分を親にまとめる」「違いは子で表現する」ことで、拡張性と保守性が高まります。...
Java

Java 逆引き集 | クラス設計の基本(単一責任) — 保守性を高める

クラス設計の基本(単一責任) — 保守性を高める「クラスは、変わる理由を一つだけ持つ。」単一責任の原則は、この一文に尽きます。役割を一つに絞ると、変更の影響が限定され、読みやすくテストもしやすいコード...
Java

Java 逆引き集 | アクセス修飾子(public/private/protected/default) — カプセル化

アクセス修飾子(public / private / protected / default) — カプセル化Javaの アクセス修飾子 は「どこからそのクラスやメンバにアクセスできるか」を制御する仕...
Java

Java 逆引き集 | final の使い方(変数・クラス・メソッド) - 不変性確保

final の使い方(変数・クラス・メソッド) — 不変性確保Javaの final は「これ以上変更できない」という意味を持ちます。対象が 変数 か クラス か メソッド かによって効果が変わります...
Java

Java 逆引き集 | static とインスタンスの違い - 状態管理

Static とインスタンスの違い — 状態管理「static はクラスに属する」「インスタンスはオブジェクトに属する」。この一言が本質です。どの状態を“全体共有”にするか、“個別”にするかで、設計の...
Java

Java 逆引き集 | インスタンス生成(new)とファクトリパターンの基礎 - オブジェクト管理

インスタンス生成の基本(new)Javaでオブジェクトを作る最も基本的な方法は new。コンストラクタを呼び、必要な初期化を済ませて“使える状態”のインスタンスを得ます。class User { pr...
Java

Java 逆引き集 | 可変引数メソッド(…) - 汎用ユーティリティ

可変引数メソッド(...) — 汎用ユーティリティJavaでは、メソッドの引数の数が決まっていない場合に 可変長引数(varargs) を使えます。これにより「0個以上の引数」を柔軟に受け取ることがで...
Java

Java 逆引き集 | forEach とラムダの基本(簡単な処理) - 可読性向上

forEach とラムダの基本 — 可読性向上ラムダは「短く書ける無名の関数」、forEachは「コレクションの各要素に処理を当てる」ためのメソッドです。従来の for 文より読みやすく、意図が伝わり...
Java

Java 逆引き集 | List / Map / Set の基本概念(インターフェース) - データ構造選択

List / Map / Set の基本概念(インターフェース) — データ構造選択Javaのコレクションフレームワークには「データをどう扱うか」を決める基本インターフェースが用意されています。代表的...
Java

Java 逆引き集 | 配列(一次元・多次元) - 固定長データ処理

配列(一次元・多次元) — 固定長データ処理Javaの配列は「同じ型のデータをまとめて扱う箱」。サイズは固定で、宣言時に決めた長さを変えることはできません。一次元配列は「横一列」、多次元配列は「表や行...
Java

Java 逆引き集 | StringBuilder / StringBuffer - 文字列連結の効率化

StringBuilder / StringBuffer — 文字列連結の効率化文字列を何度も結合・加工する処理では、Stringの「不変性」が足かせになりがちです。StringBuilder と S...
Java

Java 逆引き集 | String 操作 - 表示・ログ処理

String 操作(concat, substring, format) — 表示・ログ処理文字列は「表示」「ログ」「メッセージ生成」で毎日のように使います。Javaの代表的な操作である concat...
Java

Java 逆引き集 | null/Optional の使い分け - NPE 回避、意図の明示

null/Optional の使い分け — NPE 回避、意図の明示Javaでよくあるバグの一つが NullPointerException (NPE)。「変数が null なのにメソッドを呼んでしま...
Java

Java 逆引き集 | カスタム例外の作り方 - 明確なエラー伝搬

カスタム例外の作り方 — 明確なエラー伝搬「何が問題か」を正確に伝えるのが例外の役割。標準例外だけでは業務の意図が伝わりにくい場面で、カスタム例外が活躍します。APIレイヤでは、呼び出し側が“何をどう...
Java

Java 逆引き集 | 例外処理(try / catch / finally) - 安定性と後始末

例外処理(try / catch / finally) — 安定性と後始末プログラムは「想定外のエラー」に出会うことがあります。ファイルが見つからない、数値が不正、ネットワークが切れる…。こうしたとき...
Java

Java 逆引き集 | 戻り値(参照/プリミティブ) - API レイヤ設計

戻り値(参照/プリミティブ) — API レイヤ設計メソッドは「処理の結果」を返すことができます。この結果を 戻り値 と呼びます。戻り値には プリミティブ型(int, double, boolean ...
Java

Java 逆引き集 | メソッド定義と引数(可変長引数) - 再利用可能ロジック

メソッド定義と引数(可変長引数) — 再利用可能ロジックプログラムを整理して「同じ処理を何度も使えるようにする」のが メソッド。引数は「外から渡す材料」。可変長引数は「材料の数が決まっていないとき」に...
Java

Java 逆引き集 | ループ(for / enhanced for / while) - 集合処理とレコードループ

ループ(for / enhanced for / while) — 集合処理とレコードループ同じ処理を繰り返すとき、Javaでは主に for、enhanced for(拡張 for)、while を使...
Java

Java 逆引き集 | 条件分岐(if / switch) - ビジネスロジックの分岐

条件分岐(if / switch) — ビジネスロジックの分岐プログラムは「状況に応じて処理を変える」ことが多いです。Javaでは代表的に if文 と switch文 を使います。初心者向けに「どんな...
Java

Java 逆引き集 | 型変換(キャスト、ボクシング/アンボクシング) - データ受け渡し時

型変換の概要(キャスト/ボクシング/アンボクシング)異なる型どうしでデータを受け渡すとき、Javaは「キャスト(型変換)」で数値型を変えたり、「ボクシング/アンボクシング」でプリミティブ型とラッパー型...
Java

Java 逆引き集 | 変数宣言(プリミティブ/参照型) - 型選びと初期化

変数宣言の基本Javaの変数は「型 名称 = 初期値;」の形で宣言します。型は“何を入れる箱か”を決めるもの。プリミティブ型は値そのものを、参照型は“モノが置いてある場所(アドレス)”を持ちます。//...
Java

Java | 「配列+ArrayList+多次元配列+toString / deepToString」総合バグ修正問題集

では今回は、「配列+ArrayList+多次元配列+toString / deepToString」総合バグ修正問題集(50問)」 を紹介します。初心者~中級者向けに、「間違いを見つけて修正する形式」...
Java

Java | 多次元配列+ArrayList:バグ修正問題集

では今回は、「多次元配列+ArrayList版のバグ修正問題」20問 を紹介します。配列と ArrayList を混ぜた問題で、初心者〜中級者向けに 間違いを見つけて修正する形式 にしています。問題 ...
Java

Java | Java初心者向け 配列操作 総まとめ教材

では、Java初心者向け「配列操作 総まとめ教材」 を作ります。対象は これから配列を学ぶ人 で、1次元・2次元・多次元・ArrayList・表示方法・よくある間違い を全部まとめた教材です。例題・図...
Java

Java | 配列と List の複雑ネストをまとめた ASCII 図+出力例付きの一覧

では、配列と List の複雑ネストをまとめた ASCII 図+出力例付きの一覧を作ります。これで「多次元・ネスト構造での println / toString / deepToString の挙動」...
Java

Java | フォールスルーのある switch を戦略パターンで安全に置き換える 練習問題

「フォールスルーのある switch を戦略パターンで安全に置き換える練習問題集」を用意しました。複数条件をまとめたいケースを題材にして、switch文のフォールスルーを戦略パターンへリファクタリング...
Java

Java | switch文リファクタ手法の比較

では「switch → 戦略パターン → enum+戦略 → Map+ラムダ」の流れを整理して、どの場面でどの手法を選ぶべきかを比較表にまとめますね。switch文リファクタ手法の比較手法特徴メリット...
Java

Java | switch文を戦略パターンにリファクタリングする練習問題

「switch文を戦略パターンにリファクタリングする練習問題」をいくつか用意しました。実務でありがちなケースを題材にしています。練習問題1:注文ステータス管理元コード(switch)switch (s...
Java

Java | フォールスルーを使わないで同じ挙動を実現するリファクタ例(戦略パターンなど)

「フォールスルーを使って複数条件をまとめる」代わりに、戦略パターン(Strategy Pattern)などの設計パターンを使うと、より柔軟で保守性の高いコードになります。戦略パターンでのリファクタ例元...
Java

Java | switch文のデバッグでフォールスルーを見つける方法

「switch文のデバッグでフォールスルーを見つける方法」ですね。実務でよくハマるポイントなので、整理してコツをまとめます。フォールスルーとは?breakを書き忘れると次のcaseまで処理が流れる現象...
Java

Java | 実務で使う switch 文のテンプレート集(例外・ログ対応つき)

「実務で使える switch 文のテンプレート集」を、例外処理やログ出力を組み込んだ形でまとめてみます。業務コードでは「ただ分岐する」だけでなく、異常系の扱いやログ記録が重要になるので、それを意識した...
Java

Java | if文・switch文の書き換えトレーニング

if文で書いた処理をswitch文に書き換える」ことで、条件分岐の理解が深まります。ここではトレーニング用の例題をいくつか用意して、if文 → switch文の変換を見ていきましょう。例題1:曜日表示...
Java

Java | 例外階層 × ロギング設計ベストプラクティス

では以下に、「例外階層 × ロギング設計ベストプラクティス」〜例外種別に応じたログレベル設計・運用テンプレート〜を、実務教材スタイル(クラス構造+設計思想+コード表+運用方針表) でまとめます。1. ...
Java

Java | 例外階層の設計テンプレート(アプリ全体で統一する例外方針)

「例外階層の設計テンプレート(アプリ全体で統一する例外方針)」は、チーム開発や長期運用の現場で必須の“例外ポリシー設計”です。ここでは、アプリ全体で共通化する例外階層図分類ルール(業務/システム/基盤...
Java

Java | 例外と早期returnの組み合わせテンプレート

「例外と早期 return の組み合わせテンプレート(業務クラス構造つき)」は、実務で“安全で読みやすくメンテしやすい”コードを書くための基本骨格です。ここでは、3層構造(Controller/Ser...
Java

Java | 三次元版ライフゲーム(セルオートマトン)

三次元版ライフゲーム(セルオートマトン)の例題「ライフゲーム」は二次元の格子でよく知られていますが、三次元に拡張すると「立方体の中で細胞が生きたり死んだりする」シミュレーションになります。初心者向けに...
Java

Java | 早期 return のベストパターン集

「早期 return のベストパターン集(実務例5選)」は、**「ネストを浅くして読みやすく、安全にする」**ための超重要テクニックです。初心者でも実務で即使えるように、👀 図解(ASCII)+ 💻 ...
Java

Java | 安全設計ベストプラクティス:returnで抜ける vs 例外を投げる

実務では「return で抜けるべきか」「throw(例外)で止めるべきか」は非常に重要な設計判断ポイントです。ここでは、安全設計ベストプラクティスとして、初心者でも理解できるように図+コード+判断基...
Java

Java | 実務対応版:「安全なリトライ処理テンプレート集(ログ+例外対応)」

これは「break を使ったループ制御+安全設計」を実務テンプレート化したものです。Java+SLF4J/Spring Boot想定で、そのまま業務コードに組み込みやすい形にしてあります。すべて 例外...
Java

Java | 実務でよく使う for → Stream 書き換え10パターン

ここでは、実務でよく使う「for文 → Stream API」書き換え10パターンを、初心者でも理解できるように、「for文(Before) → Stream(After)」形式でコード付きにまとめま...
Java

Java | 「Stream構文早見表(map/filter/groupingBy/sorted)」図解版

ここでは、Stream API の主要構文(map / filter / sorted / groupingBy など)を図解で理解できる早見表を作ります。「操作の意味」「処理の流れ」「例」を視覚的に...
Java

Java | Stream API 安全設計ベストプラクティス(例外・ログ対応)

ここでは、実務で使う Stream API の安全設計ベストプラクティスをまとめます。特に、例外処理・ログ出力・副作用回避・大規模データ対応にフォーカスしています。1️⃣ 基本ルール:副作用は極力避け...
Java

Java | for文 vs Stream API + 実務パターン集(図解ビジュアル版)

「for文フロー + Streamフロー + 実務パターン集」を 矢印・アイコン・カラー付きで一目で理解できる形 にします。┌───────────────┐│ データ入力 ││ List<Emplo...
Java

Java | 拡張 for 文 vs Stream API の処理フロー横並び比較図

では、「拡張 for 文 vs Stream API の処理フロー横並び比較図」 を作ります。これで どの処理がどこで行われているかを一目で理解できる教材 にします。例題:社員リストから「年齢 ≥ 2...
Java

Java | Stream API パイプライン図解

では、「filter → map → sorted → groupingBy」の一連パイプラインを図解で直感理解」できる教材を作ります。例題:社員リストを加工して部署ごとに名前を並び替え集計する入力デ...
Java

Java | 同じ処理を拡張 for 文と Stream API 両方で比較する図解

ここでは 「拡張 for 文」と 「Stream API」 で同じ処理を行った場合の流れを図解で比較します。初心者でも「どっちが何をしているか」を直感的に理解できるようにしました。例題:社員リストから...
Java

Java | for文 vs Stream API の比較+よく使うパターン集

では、これまで作った for文 vs Stream API の比較フロー と 実務でよく使う Stream API パターン集 を統合して、「現場でよくある処理例をすべて1枚で見れる初心者向け教材」 ...
Java

Java | 実務でよく使う Stream API パターン(filter/map/sorted/groupingBy)

では、実務でよく使う Stream API のパターン(filter / map / sorted / groupingBy / collect など)をまとめた1枚図 を作ります。初心者でも現場コー...
Java

Java | 「map/filter/sorted/groupingBy」だけを図解で理解する教材

では、「map / filter / sorted / groupingBy」を図解で直感的に理解する教材を作ります。文章だけでなく、処理の流れを矢印で表す図解スタイルで解説します。1. filter...
Java

Java | 「for-each+例外処理+ログ」のテンプレートをクラス構造で整理(実務クラス設計例)

ここでは「拡張for文(for-each)+例外処理+ログ出力」を組み合わせた、実務的なクラス構造テンプレートを示します。実際のプロジェクトでよく使う「データ処理+エラー対応+ログ管理」の構成をベース...
Java

Java | フラグ管理を使ったメニューのON/OFFを作るステップ実装

では ビット演算でフラグ管理をする実践例 を、ステップごとに初心者向けに作ってみましょう。今回は「メニューの ON/OFF」を管理する例です。1. 何を作るか3つの機能(メニュー)があります:音楽効果...
Java

Java | ビット演算・シフト演算の練習問題セット

それでは、プログラミング初心者向けにビット演算・シフト演算の練習問題セットを作り、採点付きWebテスト(HTML+JavaScript)形式にします。このテストのポイントビット演算(&, |, ^, ...
Java

Java | 逆順処理でよくあるバグ集

では「逆順処理でよくあるバグ(境界条件ミスや IndexOutOfBounds)」を整理してみます。1. 境界条件の off-by-one エラーfor (int i = arr.length - 1...
Java

Java | 実務で for文 と foreach/Stream をどう使い分けるか

for文 vs foreach / Stream の使い分けでは「実務で for文 と foreach/Stream をどう使い分けるか」の判断基準を整理します。1. インデックスが必要かどうか必要な...
Java

Java | 論理演算子を使った「採点付きミニ演習プログラム」

では、Java の論理演算子を使った「採点付きミニ演習プログラム」を作りましょう。このプログラムは、ユーザーが入力した点数をもとに「合格/不合格」や「特待生」などを判定します。論理演算子 &&, ||...
Java

Java | インクリメント/デクリメント理解度チェックテスト

Java理解度チェックテスト(インクリメント/デクリメント)ではこの「インクリメント/デクリメント理解度チェックテスト」を、Java コンソールアプリ形式でつくりましょう。初心者でもそのまま コピペし...
Java

Java | Java の型推論 var を使った実践例

ここでは、Java の型推論 var を使った実践例 5つを、初心者にも分かりやすく・実用的にまとめます。各サンプルはすぐ動かせるコード付きです。(Java 10以降対応)① ループ(for文)での ...
Java

Java | インクリメント/デクリメントを使わずに済ませる、よりモダンで安全な書き方

インクリメントを使わないモダンな書き方では「インクリメント/デクリメントを使わずに済ませる、よりモダンで安全な書き方」を紹介します。1. 拡張 for文(foreach)配列やリストを順番に処理するな...
Java

Java | レビューで「褒められる」インクリメントの使い方

レビューで褒められるインクリメントの使い方では「レビューで“褒められる”インクリメント/デクリメントの使い方(良い例集)」をまとめます。1. for文の基本形for (int i = 0; i < l...
Java

Java | 実際の現場でレビューで指摘されやすい「インクリメントのアンチパターン集」

インクリメント/デクリメントのアンチパターン集では「実務でレビューでよく指摘されるインクリメント/デクリメントのアンチパターン集」をまとめます。1. 条件式に直接書くwhile (i++ < arr....
Java

Java | インクリメント/デクリメントを安全に使うためのリファクタリング例(悪いコード → 良いコード)

インクリメント/デクリメントのリファクタリング例では「悪いコード → 良いコード」のリファクタリング例を紹介します。実務でありがちな“インクリメント/デクリメントの危険な使い方”を、安全で読みやすい形...
Java

Java | 実務でよくあるインクリメント関連のバグパターン

実務でよくあるインクリメント関連のバグパターンでは「実務でありがちなインクリメント忘れや境界条件ミス」の典型例を整理してみましょう。1. インクリメント忘れによる無限ループint i = 0;whil...
Java

Java | 実務でよく使うインクリメントの具体的なパターン集

実務でよく使うインクリメントのパターン集では「実務でよく使うインクリメントの具体的なパターン集」を整理してみましょう。1. for文のカウンタ最も典型的な使い方。配列やリストを順番に処理する。for ...
Java

Java | 実務で安全にインクリメント/デクリメントを使うための最善の方法

インクリメント/デクリメントのベストプラクティス集実務で安全にインクリメント/デクリメントを使うためのベストプラクティス集を整理しました。1. ループのカウンタは i++ に統一for (int i ...
Java

Java | オーバーフローを実験するJavaプログラム

では「オーバーフローを実験するJavaプログラム」を、初心者でも理解しやすいように作ってみましょう。(「オーバーフロー」とは、変数に入る最大の値を超えてしまったときに、値が反対側に回り込んでしまう現象...
Java

Java | 「オートボクシングでのパフォーマンス」や「キャッシュ範囲の仕組み(-128〜127)」をコードで実験

では ①キャッシュの仕組みの確認(-128〜127) と ②オートボクシングのパフォーマンス比較(プリミティブ vs ラッパー) を実験するための Java の実行可能なコード を用意します。手元のJ...
Java

Java | 複数の入力をまとめて List に格納するサンプル

ここでは 複数の入力をまとめて List<Integer> に格納するサンプル を紹介します。「Scannerで文字列として入力 → 数値に変換 → Listに追加」という流れです。サンプルコード:複...
Java

Java | 実際の入力処理(Scannerで文字列を読み込んで数値に変換する例

実際に ユーザー入力(文字列)を Scanner で受け取り → 数値に変換 → オブジェクトとして扱う 流れをまとめます。入力処理の基本(Scannerを使う)例1: 整数入力 → int と In...
Java

Java | 「NaN」「Infinity」など特殊値

Javaの特殊値とは?Javaでは、浮動小数点型(floatやdouble)に以下の特殊値が存在します:特殊値説明生成例Double.POSITIVE_INFINITY正の無限大1.0 / 0.0Do...
Java

Java | 全ラッパークラス(Integer, Double, Boolean, etc.)ごとの変換例まとめ表

Javaの 全ラッパークラス(基本型と対応するクラス)について、「文字列 ⇄ 数値 ⇄ オブジェクト」変換の代表例 を一覧表にまとめました。ラッパークラス変換パターン一覧基本型ラッパークラス文字列 →...
Java

Java | 文字列 ⇄ 数値 ⇄ ラッパークラスのオブジェクト

Javaの 「文字列 ⇄ 数値 ⇄ ラッパークラスのオブジェクト」 の変換パターンを、初心者でも見やすいように表にまとめました。変換パターン一覧表変換方向サンプルコード説明文字列 → 数値(基本型)i...
Java

Java | 小数の丸め誤差

では、Javaの 小数の丸め誤差(浮動小数点誤差) を、初心者でも理解できるように 簡単なコードと図イメージ で説明します。背景:丸め誤差とは?Javaの float / double は 二進数で小...
Java

Java | 桁区切りの正しい書き方と数値の意味を同時に学習できるツール

このツールを使えば、初心者でも 桁区切りの正しい書き方と数値の意味を同時に学習できます。import java.util.Scanner;public class UnderscoreLearning...
Java

Java | break と continue の使い分け方

両方とも「ループの流れを制御する」ための命令ですが、役割が違います。初心者が混乱しやすいポイントなので、実務的な観点も交えて整理します。break の特徴役割: ループを「完全に終了」する。イメージ:...
Java

JavaScript | 「値渡し」と「参照渡し」

主な内容の要点1. 値渡し(プリミティブ型)対象:数値、文字列、真偽値、null、undefined、シンボル など特徴:変数に代入すると「値そのもの」がコピーされる別の変数に代入しても、それぞれ独立...
Java

Java | 面接・筆記試験・コーディングテストで非常によく聞かれる Java Tips

以下は、面接・筆記試験・コーディングテストで非常によく聞かれる Java Tips を、出題頻度が高い順・実務視点で体系的にまとめたものです。(丸暗記ではなく「なぜそうなるか」を説明できるレベルを想定...
Java

Java | 3D 迷路を作って自動で探索するサンプル

3D 迷路(立体迷路)を作って、自動で探索(探索アルゴリズムでゴールへ到達)する Java サンプルを、プログラミング初心者向けに“超かみ砕いて”説明します。以下の内容がセットになっています:✅ 3D...
Java

Java | 配列操作・多次元配列・ファイル・ユーザー入力・表示の複合処理

では「上級の実務アプリ」として、配列操作・多次元配列・ファイル・ユーザー入力・表示の複合処理 を含むサンプルを作ります。プログラミング初心者から上級者までのステップアップに役立つ内容です。上級実務アプ...
Java

Java | ミニアプリ課題:ユーザー入力→多次元配列→ArrayList→表示

ミニアプリ課題:学生の成績管理では、初心者向けのミニアプリ課題を作ります。ポイントは以下です:ユーザーから 入力 を受け取る多次元配列+ArrayList を活用配列の内容を表示する課題内容目的ユーザ...
Java

Java | toString / deepToString の理解を深めるために、配列構造を図解で可視化

では、toString / deepToString の理解を深めるために、配列構造を図解で可視化した教材 を作ります。初心者でも 「配列の中身がどう格納されているか」「toString と deep...
Java

Java | 実務レベルの配列出力ユーティリティ

/* * ArrayUtils.java * * 実務レベルの配列出力ユーティリティ * - プリミティブ配列・オブジェクト配列・多次元配列を安全に文字列化 * - null 安全 * - 深さ制限、...
Java

Java | 配列の文字列表示 実務風 応用問題セット

ここでは 「現場で本当に起こりやすいミス」だけを集めた、“バグ修正形式” の実務風応用問題セット(10 問) を紹介します。初心者〜中級者がハマりやすいポイントを中心にしています。すべて 「誤ったコー...
Java

Java | 配列操作・2次元配列:バグ修正問題集

では今回は、「配列操作」と「2次元配列」版のバグ修正問題(初心者〜中級向け)」 を 20問 用意。各問題は 間違いを見つけて修正する形式 です。問題 1(1次元配列操作)int[] arr = {10...
Java

Java | null や部分表示、配列と List の比較などを ASCII 図で視覚化

null 配列配列の一部だけ表示(部分表示)配列と List の比較1. null 配列int[] a = null;System.out.println(a); // → nullSystem.ou...
Java

Java | Spring Bootでよく使う実務的なコード例

ここでは Spring Bootでよく使う実務的なコード例 をいくつか紹介します。単なる「Hello World」ではなく、実際の業務システムでよく出てくるパターンをまとめます。1. REST API...
Java

Java | DBから取得したデータを返すサンプル

では、Spring BootでDBからデータを取得してWeb APIのレスポンスとして返すサンプルを紹介します。実務でよく使う「ユーザー一覧」を返す例です。サンプル構成Userエンティティ(DBのテー...
Java

Java | 「配列ではなくオブジェクトのリストを返す」サンプル

実務では「単なる配列」よりも オブジェクトのリストを返すことが圧倒的に多いです。例えば「ユーザー一覧」や「商品一覧」など。Spring Boot を使ったサンプルを示しますね。サンプル: ユーザー一覧...
Java

Java | Web APIのレスポンスで配列を返すサンプル

では、Java(Spring Boot)で Web API のレスポンスとして配列を返すサンプルコードを紹介します。実務でよく使う形にしています。サンプル1: 一次元配列を返す APIimport o...
Java

Java | 実務でそのまま使えるレベルの「配列表示ユーティリティ」

ここでは 実務でそのまま使えるレベルの「配列表示ユーティリティ」コード を提供します。実務でよくある要件を満たしています:✔ ログに大量データを丸ごと出さない(可読性確保)✔ null 安全✔ 1次元...
Java

Java | Comparator をクラス化してテスト可能にする実務パターン

実務では Comparator を無名クラスやラムダで書き捨てるのではなく、専用クラス化してテスト可能にすることがよくあります。これにより、ソートロジックを単体テストで検証でき、保守性も高まります。実...
Java

Java | データベースの結果リストを複数キーでソート

データベースから取得した結果リスト(例えば List<Entity>)を 複数キーでソートする方法を解説します。実務では「部署 → 年齢 → 名前」や「日付 → 金額」など複数条件で並べ替えることがよ...
Java

Java | Stream API を使ったファイル情報のソート

Java 8 以降で導入された Stream API を使うと、ファイル情報のソートをより宣言的に書けます。ここでは「ファイル一覧を取得して、サイズや更新日時でソートする」例をいくつか紹介します。基本...
Java

Java | 「フォルダ優先 → ファイル」の Windows Explorer 風ソート

Windows Explorer 風の「フォルダを先に → ファイルを後に」並べるソートを Java で実現する方法を紹介します。実務的なシナリオディレクトリを一覧表示するとき、フォルダが先に並び、そ...
Java

Java | ファイルサイズを「MB単位」で整形して表示しつつソート

「ファイルサイズを MB 単位で整形して表示しつつソート」する完全な Java プログラム例を紹介します。プロジェクト概要目的: 指定フォルダ内のファイルを取得し、サイズを MB 単位で表示しながらソ...
Java

Java | レベル別のArrayListを使ったソート練習問題

では、ArrayListを使ったソート練習問題をレベル別に作りました。配列より柔軟に扱えるので、実践的な練習になります。レベル1(基礎:昇順ソート)問題ArrayList<Integer> に {5,...
Java

Java | 複数の ArrayList をまとめて1つのリストに連結するユーティリティ関数

こちらが、複数の ArrayList をまとめて1つのリストに連結するユーティリティ関数のサンプルです。Javaのジェネリクスを使って、どんな型のリストでも使えるようにしています。ユーティリティ関数:...
Java

Java | ファイルから読み込んだ配列を一部だけ書き出す例(IOと組み合わせる)

ここでは 「ファイル → 配列に読み込み → 一部だけ抜き出す(copyOfRange) → 別ファイルに書き出す」 という初心者向けの流れを、できるだけシンプルなコードで丁寧に説明します。 実現する...
Java

Java | Arrays.copyOfRange と同じことを List(特に ArrayList)でやる方法

Arrays.copyOfRange と同じことを List(特に ArrayList)でやる方法 を、初心者向けに丁寧に説明します。ポイントは Java の List が持つ subList() メ...
Java

Java | 三次元配列でゲーム盤を表す練習問題

三次元配列は「層 × 行 × 列」でデータを管理できるので、複数の盤面や立体的なゲームを表現するのに使えます。ここでは、初心者でも理解しやすいように ゲーム盤を三次元配列で扱う練習問題を用意しました。...
Java

Java | 三次元配列の練習問題

三次元配列は「立方体」や「箱の中に箱がある」イメージで、配列の中に配列があり、それがさらに配列を持つ構造です。ここでは初心者が段階的に理解できるように、基礎 → 応用 → 発展 の順で練習問題を用意し...
Java

Java | 多次元配列の練習問題

多次元配列は「表」や「グリッド」のように、行と列でデータを管理できる仕組みです。ここでは 2次元配列 を中心に、初心者が段階的に練習できる問題を用意しました。すべてに 解答例と解説 をつけています。基...
Java

Java | 配列の練習問題

初心者がステップアップできるように、基礎 → 応用 →発展 の順で10問を用意しました。すべてに 解答例と解説 をつけています。基礎編(1〜3)問題1:配列の作成と代入int 型の配列を3つ作り、10...
Java

Java | ArrayList 応用問題集

配列の次のステップとして ArrayList を使った応用問題集を用意しました。配列より柔軟に扱えるので、実用的な練習になります。問題1:要素の追加と表示問題: 空の ArrayList<String...
Java

Java | 配列の ソート・文字列配列 を中心に学ぶ練習問題

では、配列の応用問題(ソートや文字列配列)を10問用意しました。基礎から一歩進んだ練習になるので、配列の理解がさらに深まります。問題1:昇順ソート問題: {5, 2, 8, 1} を昇順に並べ替えて表...
Java

Java | 配列の length を中心に学ぶ練習問題

Java配列の基礎をしっかり練習できるように、初心者向けの問題集(10問)+解答例を用意しました。問題1:配列の長さを表示問題: 要素数5の配列を作り、長さを表示してください。解答例:int[] a ...
Java

Java | 配列:レベル別の練習問題

配列の理解を深めるために、レベル別の練習問題を用意しました。だんだん難しくなるようにステップアップしてみましょう。初級(基礎を確認)配列の作成と代入int型の配列を5個作り、1〜5の数字を代入して表示...
Java

Java | 初心者向け 練習帳(配列表示編)

では、これまで作ってきた 配列の文字列表示を中心に、初心者向けに単元別に整理した練習帳 を作ります。ポイントは:単元ごとに 概念 → サンプルコード → 練習問題 の順で構成初心者が読みやすく、手を動...
Java

Java | ユーザー入力で3D配列を作るミニアプリ

ユーザー入力で 3D 配列(層 × 行 × 列) を作り、いくつかの集計(層ごとの合計・平均、全体の合計・平均)と可視化(層ごとの表表示)を行う 完全なコンソールアプリ(Scanner 使用) を用意...
Java

Java | ジャグな3D配列の可視化ツール(ASCII)を実装

ジャグ(行や列の長さが行ごと・層ごとにバラバラ)な3次元配列を 層ごとに読みやすい ASCII テーブル として表示する実用的な Java 実装を出します。特徴:各層(layer) を別々のテーブルと...
Java

Java | 3次元配列(配列の配列の配列)

主な内容の要点基本イメージ一次元配列 → 直線(リスト)二次元配列 → 表(行×列)三次元配列 → 立方体(層×行×列)添字の指定は の順番で行う例: maze → 層1・行2・列0の要素作り方(初期...
Java

Java | 配列の要素をファイルに書き出す/読み込む

「配列の要素をファイルに書き出す/読み込む」 を プログラミング初心者向けに、できるだけかみ砕いて、丁寧に解説します。実用的な 完全コードつき(保存 → 読み込み)、さらに 応用例(2D 配列・CSV...
Java

Java | コピーを使った Undo 機能

では「Undo機能をもっと本格的に作る」例を、初心者でも理解できるように段階的に紹介します。ここでは 配列のコピーを履歴として保存し、複数回のUndoができる仕組み を作ります。基本アイデア状態(配列...
Java

Java | 文字列配列をパターンで埋める方法

数値だけでなく、文字列配列も規則的なパターンで埋めることができます。曜日や月名を繰り返す例で見てみましょう。1. 曜日を繰り返すimport java.util.Arrays;public class...
Java

Java | 三次元配列をパターンで初期化

三次元配列は「層 × 行 × 列」で構成されます。ここでは 立方体の外側を1、内側を0 にする方法を紹介します。コード例import java.util.Arrays;public class Mai...
Java

Java | 配列をパターンで埋める方法

配列を「全部同じ値」ではなく、規則的なパターンで埋めたいときは、Arrays.fill だけでは足りません。for文や条件分岐を組み合わせることで、繰り返しや交互のパターンを作れます。1. 交互パター...
Java

Java | 三次元配列での部分的な初期化

Javaの三次元配列は「配列の配列の配列」です。つまり、一次元配列を三重にネストした構造になっています。Arrays.fill は一次元配列専用なので、三次元配列を部分的に初期化する場合は 二重・三重...
Java

Java | 配列をリセットするテクニック

「配列をリセットする」とは、配列の中身を初期状態に戻すことを指します。Javaでは配列のサイズを変えることはできないので、リセットは「要素の値を再設定する」形になります。初心者向けに代表的な方法をまと...
Java

Java | 多次元配列で部分的に埋める方法

JavaのArrays.fillは 一次元配列専用 なので、二次元以上の配列を扱うときは「行ごと」に処理します。つまり、多次元配列の一部を埋めたいときは、対象の行を選んで Arrays.fill を使...
Java

Java | 配列の一部だけを埋める方法

Javaでは、配列の一部だけを同じ値で埋めたいときに Arrays.fill の範囲指定版 を使います。基本構文Arrays.fill(配列, 開始位置, 終了位置, 値);Arrays.fill(配...
Java

Java | 配列(Array)と ArrayList の違い

初心者向けに 配列(Array)と ArrayList の違い を図解で整理します。ASCII 図でイメージしやすくしてみます。1. 基本イメージ普通の配列(Array) ArrayList-----...
Java

Java | ArrayListで配列を連結する方法

主な内容の要点配列はサイズ固定→ 連結するには新しい配列を作ってコピーが必要。ArrayListはサイズ可変→ 要素を自由に追加・削除できる。連結も簡単。配列からArrayListへ変換→ Array...
Java

Java | 配列の中身を一部だけ表示する小さなユーティリティ(サンプル実装)

/* * ArrayPreview.java * * 小さな配列プレビュー/スライス用ユーティリティ(初心者向け) * - 任意の配列(プリミティブ配列/Object配列)に対応 * - 先頭 N 要...
Java

Java | 配列の文字列表現 難問バージョン(深い多次元配列 + null 混在)

では、これまでの基礎~応用の問題を踏まえて、難問バージョン(深い多次元配列 + null 混在) の練習問題を作ります。特徴は以下の通りです:3〜4 次元以上の配列配列の途中に null が混在Obj...
Java

Java | 配列の文字列表現 間違い探し問題集

配列の表示方法(println / toString / deepToString)に関する 間違い探し(バグ修正)20問 を、初心者向けに「どこがバグか → 正しい書き方」にフォーカスして作成します...
Java

Java | 図(ASCII 図)で println → toString → deepToString の違いを視覚化

視覚でぱっと分かるように ASCII 図 を使って println(array) → Arrays.toString(array) → Arrays.deepToString(array) の違いをま...
Java

Java | 配列の文字列表現 練習問題

初心者〜中級者が実際に手を動かして学べるよう、練習問題 10 問+模範解答(動くコード例+出力例+短い解説) を作りました。順にやれば Arrays.toString / Arrays.deepToS...
Java

Java | 「配列の出力」をテーマに、実務でよく使うサンプルコード

「配列の出力」をテーマに、実務でよく使うサンプルコードを紹介しますね。単なる学習用ではなく、実際の開発現場で役立つ形にしています。1. ログ出力で配列を確認する業務システムでは「配列の中身をログに出し...
Java

Java | 配列の文字列表示

主な内容の要点Javaで配列を画面に出力するときは、そのまま System.out.println(配列) とすると「配列の参照情報」しか表示されます。中身を見たいときは Arrays.toStrin...
Java

Java | ソートをユーティリティメソッドとして再利用化

実務では「ソート処理を毎回書き捨てる」のではなく、ユーティリティメソッド化して再利用するのが定石です。これにより、複数のサービスや画面で同じソートロジックを使い回せ、テストも容易になります。基本方針U...
Java

Java | Comparator を使った実務例(ファイル名・日付でソートなど)

ここでは ユーザー入力(Scanner)で数値を受け取り、ソートして表示する完全な Java プロジェクト を示します。初心者でもそのままコピーして動かせる形にしています。プロジェクト概要ファイル名:...
Java

Java | Comparator を使った実務例(ファイル名・日付でソートなど)

Comparator は「並べ替えのルール」を自由に定義できるので、実務では ファイル名順・日付順・サイズ順などのソートに多用されます。ここでは代表的な例をいくつか紹介します。例1:ファイル名でソート...
Java

Java | 配列を「昇順・降順」に並び替えする

主な内容の要点Javaで配列を並べ替えるには Arrays.sort() メソッドを使います。これで 昇順(小さい→大きい)に並べ替えができます。降順(大きい→小さい)にしたい場合は、昇順で並べ替えた...
Java

Java | ソートアルゴリズムの図解(バブルソート/選択ソート/高速ソートのイメージ)

ここでは バブルソート・選択ソート・クイックソート(高速ソート) の イメージ図解(ASCII 図) を使って、初心者でも「何が起きてるか」が一瞬でわかるように説明します。1. バブルソート(Bubb...
Java

Java | レベル別の配列のソート練習問題

初心者から少しずつステップアップできるように、レベル別のソート練習問題を作りました。各問題に「課題 → ステップ解説 → 解答コード」をつけています。レベル1(基礎)問題整数の配列 {5, 2, 8,...
Java

Java | 配列を逆順に並べ替える方法

主な内容の要点Javaで配列の要素を逆順に並べ替えるには、先頭と末尾の要素を入れ替えながら中央に向かって進めるという方法を使います。初心者でも理解しやすいのは、for文を使って一つずつ入れ替えるやり方...
Java

Java | 配列比較メソッド

主な内容の要点Javaで配列を比べるときは、==ではなく Arrays.equals や Arrays.deepEquals を使うのが基本です。==は「同じ配列オブジェクトかどうか」しか見ないので、...
Java

Java | 配列の連結

主な内容の要点Javaには「配列を連結する専用メソッド」はありませんが、System.arraycopy を使えば2つの配列をつなげて新しい配列を作ることができます。ポイント解説Java標準には「配列...
Java

Java | 配列のコピー応用編

ここまで「コピーの基本」と「浅い/深いコピー」を理解したので、さらに一歩進んだ 応用編 を紹介します。実際のプログラムで遭遇する「コピーの落とし穴」や「便利な使い方」を題材にしますね。コピーの基本の応...
Java

Java | レベル別練習問題:配列のコピー

レベル別に練習問題を増やしてみましょう。配列コピーの理解を深めるために、初級・中級・上級の3段階で課題を用意しました。初級(基本を確認)コピーと代入の違いを確認int b = a; と int[] c...
Java

Java | 配列のコピー

主な内容の要点Javaで配列をコピーする方法にはいくつか種類があり、単純な代入では「同じ配列を共有」してしまうので注意が必要です。独立した配列を作りたい場合は、要素ごとにコピーするか、専用メソッドを使...
Java

Java | 配列の全部(または一部)を同じ値で一気に埋める

主な内容の要点JavaのArrays.fillを使うと、配列のすべての要素を一気に同じ値で埋められる。初心者は「for文で1つずつ代入するより簡単」と覚えるとよいです。初心者向けポイント配列の初期値数...
Java

Java | ミニ課題(配列の分割→合成→出力) のコード一式

初心者が “配列を分割 → 必要な部分を抜き出す → 合成(結合) → 出力” の一連の流れをまとめて理解できる 実践ミニ課題 を作ります。「整数配列を2つに分割し、一部だけ組み合わせて新しい配列を作...
Java

Java | 配列の一部だけを取り出して新しい配列を作る

主な内容の要点Arrays.copyOfRange を使うと、配列の一部だけを取り出して新しい配列を作れる。初心者は「配列の切り出し」に便利な方法として覚えると良い。初心者向けポイント目的配列の全部で...
Java

Java | 多次元配列の長さを取得する(length フィールド)

主な内容の要点多次元配列の「長さ」を調べるには length フィールドを参照します。外側の配列の要素数と、内側の配列の要素数をそれぞれ確認できるのがポイントです。初心者向けの整理配列変数.lengt...
Java

Java | 多次元配列(2次元配列)の作り方と使い方

主な内容の要点Javaの多次元配列の初期化は「配列の中に配列を入れる」イメージで書くことができる。初心者は「二次元配列=表のようなもの」と理解するとわかりやすいです。 初心者向けポイント一次元配列の初...
Java

Java | 配列を使ったミニゲーム課題

「配列を使ったミニゲーム課題」をいくつかレベル別に提案します。ゲーム要素を取り入れると、配列の理解がぐっと楽しくなります。初級編:じゃんけんゲーム課題内容プレイヤーとコンピュータがじゃんけんをする。手...
Java

Java | レベル別の練習問題:多次元配列(2次元配列)

では「多次元配列(特に2次元配列)」を題材に、レベル別の練習問題 → 解答例 → 解説を用意しました。初心者からステップアップできるように構成しています。初級編問題1:合計を求める次の配列の全要素の合...
Java

Java | 多次元配列(2次元配列)

主な内容の要点Javaで「多次元配列」を扱う方法を解説しているページです。ポイントは「配列の中にさらに配列を入れることができる」という考え方で、2次元配列や3次元配列を作れるということです。多次元配列...
Java

Java | 配列の「長さ」を取得する

主な内容の要点Javaで配列の長さを調べる方法は「配列変数.length」を使うことです。これにより、配列に含まれる要素の数を簡単に取得できます。初心者がよく使う場面は「for文で配列の全要素を順番に...
Java

Java | 配列の初期化

主な内容の要点Javaの配列は「作った瞬間に値が入る」ことと「初期化の方法」が大事です。初心者は「配列を作ると自動で決まった値が入る」「好きな値で最初から埋める方法がある」という2点を覚えると理解が進...
Java

Java | 配列の「要素へのアクセス」と「インデックス」

主な内容の要点Javaの配列は「複数の値をまとめて管理できる箱」であり、各値には インデックス(番号) が付いています。インデックスは 0から始まる ので注意が必要です。インデックスを指定することで、...
Java

Java | 配列

主な内容の要点Javaで配列を使うには「宣言」と「作成」が必要です。宣言で型を指定し、作成で要素数を決めます。初心者向けポイント配列の宣言配列を使う前に「どんな型の値を入れるか」を指定します。書き方は...
Java

Java | フォールスルーのある switch を戦略パターンで安全に置き換える練習問題集

では、「フォールスルーのある switch を戦略パターンで安全に置き換える練習問題集」 を作ります。初心者でも順を追って学べるように 問題+ヒント+ステップ例 形式にします。問題1:管理者・ユーザー...
Java

Java | 「switch → 戦略パターン」リファクタ練習問題

ここでは、switch 文を戦略パターンに置き換える練習問題を用意しました。初心者でもステップを追って考えられるように、問題+ヒント+解答例を用意しています。問題1:ユーザー権限ごとの処理要件ユーザー...
Java

Java | フォールスルーを使わないで同じ挙動を実現するリファクタ例

「意図的フォールスルー」は、簡単な条件まとめには便利ですが、規模が大きくなると可読性が下がるため、デザインパターン(特に戦略パターン)などを使って置き換えることが実務的にはよくあります。フォールスルー...
Java

Java | 意図的フォールスルーが使われる実務の例

意図的フォールスルーは「見た目は危険だけど、設計上便利に使える場面」があります。ここでは実務で使われる代表的パターン ➜ 何を期待しているか ➜ 実例コード ➜ 安全に使うための注意点、を順に示します...
Java

Java | 「switch 文」実際のデバッグのコツ(フォールスルーを見つける方法)

switch 文を使うときに初心者が一番つまづくのが「フォールスルー(break抜け忘れ)」です。ここでは、実際の開発現場でも使われる デバッグのコツと安全対策 を、具体例つきで紹介します。フォールス...
Java

Java | ミニアプリ:メニュー選択プログラム(switch文)

では今回は、ユーザー入力で動くミニアプリを作りながら、switch文の実践力を鍛えましょう。初心者でも実務に近い「メニュー制御の考え方」が身につきます。学べることユーザーの入力を Scanner で受...
Java

Java | 実務で使う switch 文テンプレート集

ここでは「実務で使う switch 文のテンプレート集(例外・ログ対応つき)」を、業務アプリ開発でそのまま使える構成でまとめます。ンプレート1:基本構造+ログ+デフォルト例外「switchの基本形」に...
Java

Java | if-else → switch 書き換えのレベルアップ練習問題

ここでは「if-else → switch 書き換え」のレベルアップ練習問題(メニュー処理編)を紹介します。実際に入力を使う形で、コンソールメニューアプリ風に練習できます。レベルアップ問題:入力値で動...
Java

Java | if-else → switch 書き換え練習問題集

if-else から switch への書き換えは、「条件の構造を整理して頭の中をスッキリさせる」最高の練習です。ここでは、初級〜中級レベルの練習問題(全6問)+解答 をセットで紹介します。すべて J...
Java

Java | if-else と switch の書き換え例

「if-else と switch はどう書き換えられるの?」を理解すると、コードの見やすさ・整理の仕方が一気に上達します。if-else → switch 書き換えの考え方比較方法向いている構文「範...
Java

Java | switch文 練習問題セット

では、switch文の練習問題集(レベル別:初級 → 中級 → 実務応用)を紹介します。すべて Java 初心者向けに、ステップ式・解答例つきで解説します。【初級編】基本ルールをマスターしよう!問題1...
Java

Java | switch文

主な内容の要点Javaのswitch文は、複数の条件をシンプルに書ける条件分岐構文です。if-elseの代わりに使うと、コードが見やすく整理されます。基本の使い方書き方: switch (式) { c...
Java

Java | 早期リターン(ガード節)のメリットと注意点

「早期リターン(ガード節)」とは、条件を満たさない場合にすぐに処理を終了して、残りのコードをシンプルに保つ書き方です。ネストが深くなるのを防ぐための代表的なリファクタリング手法です。✅ メリット1. ...
Java

Java | ネストが深くなりすぎたときのリファクタリング(改善方法)

初心者がよくつまずくのが「if の入れ子がどんどん深くなって、コードが読みにくくなる」問題です。これを防ぐために、リファクタリング(書き直しの工夫)を覚えておくと、コードがぐっと読みやすくなります。ネ...
Java

Java | ネストと複合条件のどちらを選ぶべきか

ネストと複合条件のどちらを選ぶべきか:書き方の工夫if文は「条件分岐」を書くための基本ですが、ネスト(入れ子)と複合条件(&&や||)のどちらを使うかでコードの読みやすさが大きく変わります。ネストを選...
Java

Java | 複雑な条件を簡潔に書くテクニック(主に三項演算子)

三項演算子(?:)は if–else の短くて式として使えるバージョンです。式なので値として使え、代入や戻り値、他の式の中にそのまま書けます。けれど「短い=読みやすい」ではないので、使いどころを押さえ...
Java

Java | ネストした if 文(if の中に if)

ネストとは「入れ子構造」のこと。if の中にさらに if を書くことで、条件を細かく分けて処理を制御できます。初心者は「まず大きな条件を判定して、その中でさらに細かい条件を判定する」とイメージするとわ...
Java

Java | if 文を使って「条件を判定して、条件に応じた処理を行う」

主な内容の要点if文は「条件によって処理を分ける」ための基本構文です。初心者は「もし〜なら〜する」と覚えると理解しやすいです。if文の基本役割: 条件式を評価して、結果がtrueなら処理を実行、fal...
Java

Java | 「二重 for 文(ネスト)」を Stream API に置き換える実務例

ではここでは、「二重 for 文(ネスト)」を Stream API に置き換える実務例を、初心者にもわかるように図+コード+実務パターンで解説します。1. 基本構造の違いを図で理解しよう● for文...
Java

Java | break/continue/return の使い分け 早見表+練習問題

ではここでは、《break/continue/return の使い分け 早見表+練習問題セット》を初心者〜実務者まで理解できるテキスト教材スタイル(図+コード表+練習問題付き)でまとめます。1. まず...
Java

Java | for文 → Stream版 書き換え練習10問

《for文 → Stream版 書き換え練習10問(break対応・実務例付き)》を示します。各問題は:🧠 学習ポイント🏗️ for文版コード(with break)⚙️ Stream版コード(書き換...
Java

Java | ネストforのリファクタリング(安全設計・例外・ログ対応)

では次に、「ネストforのリファクタリング(安全設計・例外・ログ対応)」を、実務レベルで分かりやすく整理します。目的ネストfor(forの入れ子)は便利ですが、実務コードでは「例外」「ログ」「早期re...
Java

Java | for文のネスト(入れ子)処理

では、テーマ:「for文のネスト(入れ子)処理」を、プログラミング初心者向けにかみ砕いた テキスト教材スタイル(ASCII図+コード+表)で解説します。for文のネスト(入れ子)とはある for 文の...
Java

Java | 「break」「continue」を実務でよく使うコードサンプル

「break」「continue」を実務でよく使うコードサンプルをいくつか紹介します。単なる学習用ではなく、実際の業務コードでありがちな場面を想定しています。1. データ検索処理(break)大量デー...
Java

Java | 「どの場面で break/continue を使うべきか」を具体例で

「break」と「continue」をどんな場面で使うと便利かを、初心者向けに具体例で整理してみましょう。break を使う場面「もうループを続ける必要がない」ときに使います。検索処理→ 配列やリスト...
Java

Java | continue文 練習問題セット

基礎編問題1:偶数をスキップして表示しよう目的: continue文の基本動作を理解する。🔹説明1〜10までの数を順に表示します。ただし、「偶数」のときは表示せずスキップしてください。💻 サンプルコー...
Java

Java | ラベル付きcontinue

ラベル付きcontinueは、多重ループの中で「内側のループを飛ばすだけじゃなく、外側のループの次の繰り返しへ進みたい」ときに使います。ラベル付きcontinueが役立つ場面1. ネストした検索処理で...
Java

Java | continue文を実務でよく使うコードサンプル

では、初心者にもわかりやすい形で、業務でありがちなシナリオを例にしてみます。1. CSVデータの読み込みで不正行をスキップ例えば顧客データをCSVから読み込むとき、空行やフォーマット不正な行は処理せず...
Java

Java | continue 文

主な内容の要点continue文は「その回の残り処理を飛ばして次の繰り返しへ進む」ための命令です。初心者は「スキップして次へ進む」と覚えると理解しやすいです。continue文の基本役割:ループ(fo...
Java

Java | break文:エントリ〜中級向け 練習問題セット

以下は、《break文:エントリ〜中級向け 練習問題セット(解答+ステップ解説付き)》です。プログラミング初心者が「読む → 考える → 動かす」で理解を深められる構成にしています。各問題には👉「学習...
Java

Java | break 文の使い方

主な内容の要点break文は、ループ処理(forやwhile)を途中で強制終了するための命令です。条件を満たしたらループを抜けて次の処理に進むことができます。基本の使い方書き方:break;動き:br...
Java

Java | 「for文 → Stream API」構文変換チートシート

以下は、Java の「for文 → Stream API」構文変換チートシートです。プログラミング初心者でも直感的に理解できるように、「目的別」で並べ、Before(for) / After(Stre...
Java

Java | Stream API の落とし穴と安全設計

ここでは、Stream APIの「落とし穴(注意点)」と「安全に使うための設計・ベストプラクティス」を、実務コード例とともに解説します。Stream API の落とし穴と安全設計落とし穴①:副作用(外...
Java

Java | 実務で避けるべき Stream のアンチパターン集

ここでは 実務でよくある Stream API のアンチパターン集 を、初心者でも理解できるように「やってはいけない例 → 理由 → 改善例」のセットでまとめます。1. 副作用を持つ forEach ...
Java

Java | Stream API のよく使う構文一覧

ここでは Java の Stream API の「よく使う構文」一覧 を、初心者にも分かりやすく「何ができるか」「どう書き換えるか」「実務での使いどころ」付きでまとめます。Stream API のよく...
Java

Java | 拡張for と Stream API の書き換え比較(for→stream)

拡張 for 文(for-each)と Stream API(ラムダ式) の違い・使い分けは、実務で必ず押さえておくべきポイントです。ここでは以下の流れで分かりやすく整理します。全体構成【基礎】for...
Java

Java | 拡張 for 文を実務で「安全・堅牢」に使う最良の事例集

ここでは、拡張 for 文(for-each)を実務で「安全・堅牢」に使うベストプラクティス集を、実際の業務コードの形で紹介します。目的は、「きれいに動く」だけでなく「安全で保守しやすいコード」を書く...
Java

Java | 拡張for文(for-each文)の実務コード例

拡張for文(for-each文)が「実務」でよく使われる場面を想定して、サンプルコードをいくつか示します。ポイントは「配列やリストの全要素を順番に処理する」ケースです。1. 売上データの合計・平均を...
Java

Java | 拡張for文(for-each文)

主な内容の要点Javaの「拡張for文(for-each文)」は、配列やコレクションの要素を順番に取り出すための簡単な書き方です。インデックスを意識せずに、要素を1つずつ処理できます。基本の書き方fo...
Java

Java | 「メニュー・リトライ・入力」の3例を1枚の図+表で比較

では、「メニュー・リトライ・入力 の3パターンを 1枚の図+表で比較」して、一目で違いと使いどころが分かるように整理します。do...while 実務パターン比較パターン目的条件チェックのタイミング特...
Java

Java | 実務で使える do…while ループのテンプレート

ここでは、実務で使える do...while ループのテンプレートを、Javaクラス構造メニュー・リトライ・入力のパターンを組み合わせて整理します。そのままコピーして使いやすい形です。実務向け do....
Java

Java | 「リトライ処理」を安全に書く最善の方法

では、実務でよくある 「リトライ処理」を安全に書くベストプラクティス を整理して解説します。目的は「安全に何度か再試行しつつ、無限ループや例外落ちを防ぐこと」です。1️⃣ 基本ルール最大試行回数を必ず...
Java

Java | 実務での while と do…while の使い分け

では、実務での while と do...while の使い分けを簡単に判断できるフローチャートを作りました。テキストベースでわかりやすく整理します。while vs do...while 選び分けチ...
Java

Java | while / for / do…while 比較表 と 図解

初心者向けに、違いが一目で分かる比較表と図解を用意しました。1. 一目でわかる比較表観点forwhiledo...while構文for(init; cond; step){ ... }while(co...
Java

Java | do..while文の実務コード例

「実務で使う」場面を想定すると、単なる学習用の繰り返しではなく ユーザー入力の確認 や 処理の再試行 に do-while が役立ちます。最低1回は必ず処理を実行するので、業務アプリの「入力チェック」...
Java

Java | while / for と do…while の使い分け表

以下は違いをパッと比較できる「使い分け表」と、実践的な判断ルール・例です。初心者が迷いやすいポイントを中心にまとめました。概要for:回数が分かっている時や初期化・更新が決まっている反復に最適。whi...
Java

Java | 実務で使う do…while の応用3選

ここでは、実務でよく登場する do...while の3大パターンを、・動作のイメージ・実際のコード・ポイント解説をセットでわかりやすく紹介します。① メニュー処理(ユーザー操作を繰り返す)よくある場...
Java

Java | do…while文の練習問題

では、ここからは「do...while 文の練習問題(レベル別)+模範解答&ステップ解説」を紹介します。すべて Java で実行できるサンプルです。【レベル1】基本構文を理解しよう問題1:1から5まで...
Java

Java | do..while文

主な内容の要点Javaのdo..while文は、必ず1回は処理が実行される繰り返し構文です。条件判定が「最後」に行われるため、最低1回はループが動くのが特徴です。基本の書き方do { // 繰り返した...
Java

Java | while文の実務コード例

では、実務でよく使う「while文」のコード例をいくつか紹介します。初心者でもイメージしやすいように、現場でありがちなケースを選びました。例1:ユーザー入力チェックユーザーが正しい値を入力するまで繰り...
Java

Java | while文の練習問題

では while 文の練習問題を 6 問 用意して、それぞれに「解答(実行可能な Java コード)」「ステップごとの解説」「よくあるミス」「発展課題」を付けます。手を動かして確かめやすいように、入出...
Java

Java | while文

主な内容の要点Javaのwhile文は、条件が「true」の間だけ繰り返し処理を行うための構文です。繰り返す回数をあらかじめ決めずに、条件次第で処理を続けたり止めたりできるのが特徴です。基本の書き方w...
Java

Java | レベル別練習問題:for文の繰り返し処理

では、「for文(繰り返し)」の内容をもとに、プログラミング初心者が実務レベルまでステップアップできるように、以下の3段階で「練習問題・解答・解説」を作ります。主な学習ポイントfor文 の基本構造(初...
Java

Java | for文の実務コード例

「実務コード例」といっても分野によって色々ありますが、ここでは Javaのfor文を使った、業務でよくある処理 をいくつか紹介します。初心者でも理解しやすいように、シンプルな形にしています。例1: 売...
Java

Java | for文(繰り返し処理)

主な内容の要点Javaのfor文は「決められた回数だけ繰り返す処理」を書くための仕組みです。基本形は 初期化式 → 条件式 → 変化式 → 繰り返し処理 の流れで動きます。基本構造for (初期化式;...
Java

Java | 文字列の連結(+演算子)

主な内容の要点1. + 演算子の役割+ は 数値同士なら足し算 をする。片方が 文字列なら「文字列の連結」 を行う。例: "東京" + "港区" → "東京都港区"例: "本棚" + 504 → "本...
Java

Java | 条件演算子(三項演算子)

要点まとめ1. 条件演算子とは?3つの値を使う特別な演算子書き方は次の形です:条件式 ? 式1 : 式2条件式 ? 式1 : 式2Java条件式が true なら「式1」の結果を返す条件式が fals...
Java

Java | 短絡評価 vs 非短絡評価の違い

このテーマ(短絡評価 vs 非短絡評価の違い)は、Java を本格的に書くようになるとバグを防ぐための重要ポイントになります。では、実際の挙動を「見て理解できる」ように、副作用(インクリメント)を含ん...
Java

Java | 論理演算子(AND・OR・NOT) について

主な内容の要点Javaでは、条件式を組み合わせて「複雑な条件判定」を作るときに論理演算子を使います。結果は必ず true(真) か false(偽) になります。主な論理演算子演算子読み方意味例&&論...
Java

Java | 「関係演算子」と「等価演算子」 について

主な内容の要点関係演算子とは?関係演算子は、2つの値を比較し、結果としてtrueまたはfalseを返す演算子です。主な関係演算子演算子意味使用例<より小さいa < b<=以下a <= b>より大きいa...
Java

Java | 代入演算子

主な内容の要点代入演算子(=)右辺の値を左辺の変数に入れるために使う。 int a, b; a = 10; // aに10を代入 b = a; // bにaの値(10)を代入他の演算子と組み合わせた代...
Java

Java | ビット演算とシフト演算を使ったメニューのON/OFF管理(フラグ管理)

では、ビット演算とシフト演算を使ったメニューのON/OFF管理(フラグ管理)を、初心者向けにJavaで実装例を作ります。実際に動かせるサンプルで、ステップごとに解説します。これを作ると「実用でビット演...
Java

Java | 負の数を右シフトしたときに符号をどう保つか

では、右シフト演算で負の数がどう扱われるかを図で丁寧に解説します。Javaの >> と >>> の違いも含めて、初心者向けに段階的に説明します。1. 符号付き右シフト >>(Arithmetic Sh...
Java

Java | 2の補数を図で丁寧に説明(負の数がどう表現されるか)

では 2の補数(two’s complement) を図で丁寧に説明して、Javaの負の数の扱いが理解できるように解説します。初心者向けに、段階的にわかりやすく進めます。1. 正の整数の二進数表現まず...
Java

Java | 演算子の優先順位と結合規則

「ビット演算子」「シフト演算子」は、0と1の並び(ビット列)がどのように動くかを目で見て理解するのがいちばん早いです。ここでは、Javaの整数を例に、「視覚的にどう動くか」を図で示します。基本:ビット...
Java

Java | ビット演算子とシフト演算子

要点まとめビット演算子(整数を2進数で扱う演算)整数を ビット単位(0と1) で処理するための演算子です。演算子名前動作のイメージ&AND(論理積)両方が1なら1、それ以外は0|OR(論理和)どちらか...
Java

Java | x = x++ の内部的な挙動を JVM レベルで詳しく知る

x = x++; は一見「xを1増やして代入している」ように見えますが、JVMレベルのバイトコードの動きを追うと「結局値が変わらない」という挙動になります。内部的にどう処理されているかを詳しく見ていき...
Java

Java | インクリメント/デクリメントを条件式に入れたときの落とし穴

条件式に入れたときの落とし穴では「インクリメント/デクリメントを条件式に入れたときの落とし穴」をまとめてみますね👇1. while文での違いint i = 0;while (i++ < 5) { Sy...
Java

Java | インクリメント/デクリメントのよくあるバグパターンループとインクリメントの関係

では「ループの中でのインクリメント(i++ / ++i)」について整理してみましょう。1. for文での使い方for (int i = 0; i < 5; i++) { System.out.prin...
Java

Java | インクリメント/デクリメントのよくあるバグパターン

インクリメント(++)やデクリメント(--)は便利ですが、初心者がつまずきやすい「バグの温床」でもあります。代表的なパターンを整理しました。1. 前置と後置の混同前置(++a) → 先に増えてから使う...
Java

Java | インクリメント・デクリメント演算子

主な内容の要点1. 基本の意味インクリメント演算子(++)変数の値を 1増やす。デクリメント演算子(--)変数の値を 1減らす。例:int num = 5;num++; // numは6になるnum-...
Java

Java | 演算子の優先順位と結合規則

要点まとめ1. 演算子の優先順位とは?複数の演算子が並んだとき、どれを先に計算するかを決めるルール例:10 + 5 * 4* の方が + より優先順位が高いので、先に 5 * 4 = 20 を計算 →...
Java

Java | 図解で学ぶ単項マイナスと演算子優先順位

ここからは、図解で学ぶ単項マイナスと演算子優先順位を解説します。単項マイナス(-)の動きインクリメント/デクリメント(++ / --)との組み合わせ式中での優先順位や括弧の影響を視覚的に理解できる内容...
Java

Java | 単項マイナス演算子

主な内容の要点単項演算子とは?演算の対象が1つだけの演算子のことJavaでは「+」と「-」が単項演算子として使える使い方+(単項プラス)値をそのまま使う(実質的には何もしない)例: +10 → 10-...
Java

Java | 算術演算子

主な内容の要点基本の演算子Javaで数値を計算するときに使う演算子は次の通りです:演算子例意味+A + B足し算-A - B引き算*A * B掛け算/A / B割り算%A % B割った余り(剰余)サン...
Java

Java | ラッパークラス一覧と代表的メソッド

ここでは、Java の 代表的なラッパークラス 8 種類(Boolean, Character, Byte, Short, Integer, Long, Float, Double)について、初心者で...
Java

Java | ラッパークラス

主な内容の要点1. ラッパークラスとは?Javaには int や double などの 基本データ型 があるでも基本データ型は「ただの値」で、メソッド(便利な機能) を持っていないそこで、基本データ型...
Java

Java | 演算時の自動型変換(暗黙の型変換/型昇格)

主な内容の要点1. 型が違うときは自動で変換されるJavaでは int や double など、異なる型の値を一緒に計算するとき、自動的に型変換(型の統一)が行われる。例: 16 / 2.0 // i...
Java

Java | 型変換とキャスト演算子

要点まとめ基本ルールJavaでは変数の型を決めてから値を入れる必要がある型が違うとそのまま代入できない場合がある例:int i; i = "Hello"; → エラー自動型変換(拡大変換)小さい型 →...
Java

Java | 変数名(識別子)のルールと慣習

主な内容の要点こちらは Java の「変数名(識別子)の付け方」についての説明を、プログラミング初心者向けにわかりやすくまとめたものです。変数名(識別子)とは?プログラム内で「この変数はこれ」「このク...
Java

Java | static final を使った定数の定義

では今回は、前回の「final(変わらない変数)」の発展編として、「static final を使った定数の定義」を、初心者向けにやさしく説明します。1. 「static final」とは?stati...
Java

Java | final変数(定数のように使う)

要点まとめ1. finalをつけるとどうなる?一度だけ値を代入できる変数になるつまり「定数」として扱える代入後に値を変えようとするとコンパイルエラーになるfinal int NUMBER = 10;N...
Java

Java | Java 10から使える var を使った変数宣言(型推論)について

要点まとめ1. varとは?Java 10から使える機能変数を宣言するときに型を書かなくてもOK代入する値から自動的に型を決めてくれる(これを「型推論」という)var num = 10; // int...
Java

Java | 変数に格納されている値を取り出す

主な内容の要点1. 値を取り出すには「変数名」を書く例えば:int num;num = 10;System.out.println(num);int num;num = 10;System.out.p...
Java

Java | 変数の初期化と代入の基本

主な内容の要点1. 変数に値を代入する書き方: 変数名 = 値;= は「イコール」ではなく「代入演算子」→ 右側の値を左側の変数に入れる、という意味。例:int num;num = 10; // nu...
Java

Java | 基本のデータ型

要点まとめJavaの基本データ型まとめJavaには「基本データ型」と呼ばれる、あらかじめ用意されたデータの種類があります。変数を使うときは「どんな種類のデータを入れるか」を決める必要があります。整数を...
Java

Java | 「変数」の宣言の基本

主な内容の要点Javaでの変数の宣言の基本変数を使う前に必ず宣言が必要→ 「この名前の箱を用意して、この種類のデータを入れるよ」とコンピュータに伝える作業。書き方の基本データ型 変数名;データ型 変数...
Java

Java | 「変数」の基本

主な内容の要点Javaにおける「変数」の基本変数とは?値を入れておく「箱」のようなもの。→ 数値や文字列などを一時的に保存して、必要なときに取り出して使える。変数の宣言変数を使う前に「この箱を用意しま...
Java

Java | 「論理値リテラル」(true / false)

主な内容の要点論理値リテラルとはJava では true と false の2つだけが「論理値(boolean型)」として使える文字列 "true" や "false" と書くと 文字列型 になってし...
Java

Java | 数値リテラルに桁区切り文字(_)を使う方法

主な内容の要点1. Javaの数値リテラルにおける桁区切り大きな数字を読みやすくするために「_(アンダースコア)」を使える例: int num = 1_234_567; // 1234567 と同じ意...
Java

Java | 数値リテラルとサフィックスの基礎

主な内容の要点1. 基本ルール整数リテラル(例: 100)は、特に指定しないと int型 として扱われる小数リテラル(例: 3.14)は、特に指定しないと double型 として扱われる2. 整数リテ...
Java

Java | 浮動小数点数の丸め誤差(限界)

浮動小数点数の丸め誤差(限界) について解説します。これは実際にプログラムを書いていくと必ず出会う落とし穴です。1. 丸め誤差とは?コンピュータは数値を 2進数(0と1) で表現します。ところが、10...
Java

Java | 整数と小数の混在計算

1. 整数型と浮動小数点型の違い整数型(int など) → 小数点を持たない数(例: 5, -3, 100)浮動小数点型(double, float) → 小数点を持つ数(例: 3.14, 0.5, ...
Java

Java | 浮動小数点リテラル(小数の書き方)

主な内容の要点1. 浮動小数点数リテラルとは?小数を含む数値のこと。例: 3.14, 12.5, 0.001Java では「実数」を表すときに使う。2. 書き方の基本小数点を使う: 3.1415指数表...
Java

Java | 整数リテラルの基本

主な内容の要点整数リテラルとは整数リテラル = プログラム中に直接書く「整数の値」のこと例: 10, 200, 0表記できる進数Javaでは整数をいろいろな進数で書けます。10進数(普段の数字): 1...
Java

Java | エスケープシーケンスについて

主な内容の要点エスケープシーケンスとは?普段キーボードから直接入力できない特殊な文字を表すための仕組み。「バックスラッシュ(\)」+「特定の文字」で表現する。よく使うエスケープシーケンス一覧書き方意味...
Java

Java | 「文字列リテラル」の基本

主な内容の要点1. 文字列リテラルとは?文字列リテラル = 「"Hello"」や「"こんにちは"」のように、ダブルクォーテーション " で囲んだ文字の並びのこと。画面にメッセージを表示したり、変数に代...
Java

Java | 「文字リテラル」と「文字コード」

主な内容の要点1. 文字リテラルとは1文字だけを表す値のこと'a' や 'あ' のように シングルクォーテーション ' ' で囲んで書く2文字以上(例: 'ab')や空文字('')はエラーになる文字リ...
Java

Java | import文の使い方

主な内容の要点import文とは?Javaでは、あらかじめ用意されたクラス(例えば、日付を扱うLocalDateなど)を自分のプログラムで使うことができます。これらのクラスを使うためには、クラス名の前...
Java

Java | System.out.printlnについて

主な内容の要点System.out.printlnとは?Javaで画面(コンソール)に文字や数値を表示するための命令。例: int sum = 10 + 5 + 8;System.out.printl...
Java

Java | 予約語(キーワード)

主な内容の要点予約語とは?予約語(キーワード)は、Java言語で特定の目的に使われる単語であり、変数名やクラス名などの識別子として使用することはできません。予約語の一覧(JDK 15基準)Javaには...
Java

Java | コメント(プログラム中の説明)

主な内容の要点初心者向けに、Javaで「コメント(プログラム中の説明)」を書く方法を整理します。コードを読みやすく・保守しやすくするために大切です。コメントとは?プログラム中に「この変数はこう使う」「...
Java

Java | 「文」と空白・改行の扱い

主な内容の要点1. 文(ステートメント)とはJavaプログラムは「文(ステートメント)」の集まりでできている文の終わりは必ず セミコロン ( ; ) で区切る文は上から順番に実行される例:System...
Java

Java | mainメソッドの基本

主な内容の要点1. 最初に実行される特別なメソッドJavaプログラムを実行すると、必ず最初に呼び出されるのがmainメソッド。これがないとプログラムは実行できない。2. 書式(必須の形)public ...
Java

Java | クラス、メソッド、フィールドとは

主な内容の要点1. クラスとはJavaプログラムの基本単位特定の目的を達成するために必要なメソッドやフィールドをまとめたもの定義方法: class クラス名 { // メソッドやフィールド}class...
スポンサーリンク
タイトルとURLをコピーしました