Java

スポンサーリンク
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - 動的コンテンツ

動的コンテンツを一言でいうと動的コンテンツは、「リクエストのたびにサーバー側で中身を“その場で作って返すコンテンツ」 です。誰がアクセスしたかいつアクセスしたかどんな条件でアクセスしたかによって、返す...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - 静的コンテンツ

静的コンテンツを一言でいうと静的コンテンツは、「サーバー側で中身が変わらないファイルを、そのままブラウザに配るもの」です。HTML、CSS、画像(PNG/JPEG)、JavaScript ファイル、P...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - アプリケーションサーバー

アプリケーションサーバーを一言でいうとアプリケーションサーバーは「ビジネスロジックを本気で動かすための“Java 実行プラットフォーム”」だと思ってください。Web サーバーが「HTTP を受け取って...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - Web サーバーとは

Web サーバーを一言でいうとWeb サーバーは、「ブラウザ(クライアント)からの HTTP リクエストを受け取り、HTTP レスポンスを返す“受付兼配達係”」です。ブラウザが「このページください」「...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - ブラウザの役割

ブラウザの役割を一言でいうとブラウザは、「人間と Web の世界をつなぐ“通訳兼プレイヤー”」です。人間が URL を入力したりボタンを押したりすると、ブラウザがサーバーに HTTP リクエストを送り...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - クライアントとサーバー

クライアントとサーバーを一言でいうとクライアントとサーバーは、「お願いする側」と「応える側」です。ブラウザやスマホアプリが クライアント、そのリクエストを受け取って処理するのが サーバー。Web の世...
Java

Java | Web 基礎・HTTP・REST:Web 全体像 - Web アプリの仕組み

Web 全体像をざっくりつかむまずは「ブラウザで URL を開くと、裏で何が起きているのか」をイメージでつかみましょう。あなたがブラウザに と入力して Enter を押すと、ブラウザは「サーバー」に対...
Java

Java Tips | コレクション:Stream生成

Stream生成は「データに“流れ”をつける」入り口Stream は「コレクションや配列などの要素を、流れとして扱うためのビュー」です。filter や map、collect などの“Stream ...
Java

Java Tips | コレクション:List→配列

List→配列変換は「柔らかい入れ物を“カチッとした形”にする」技Java では、業務ロジックは List で書きたいけれど、古いライブラリやフレームワークの引数が「配列(String[] など)」を...
Java

Java Tips | コレクション:配列→List

配列→List変換は「生の配列を“扱いやすいコレクション”に変える」技Java には「配列」と「List」という、よく似ているけれど性格の違う入れ物があります。配列:String[] など。古くからあ...
Java

Java Tips | コレクション:List→Map変換

List→Map変換は「一覧を“引ける辞書”に変える」技List<T> は「順番付きのただの並び」です。Map<K, V> は「キーから値を素早く引ける辞書」です。業務では、DB から List<Us...
Java

Java Tips | コレクション:安全get

「安全get」は「落ちてもおかしくない場所に、クッションを敷いておく」技List#get や Map#get は、とてもよく使う基本メソッドですが、そのまま使うと、意外と簡単に例外や NullPoin...
Java

Java Tips | コレクション:デフォルトMap取得

「デフォルトMap取得」は「なかったとき、何を返すか」を先に決めておく技Map を使っていると、ほぼ必ずこういうコードが出てきます。Integer count = map.get(key);if (c...
Java

Java Tips | コレクション:Map反転

Map反転は「矢印の向きをひっくり返す」技Map<K, V> は「K → V」という矢印の集まりです。Map反転は、この矢印の向きを「V → K」にひっくり返して、新しい Map<V, K> を作るイ...
Java

Java Tips | コレクション:Map値抽出

「Map値抽出」は“辞書の中身だけを取り出す”イメージMap<K, V> は「キー → 値」の対応表です。業務では「ユーザーID → ユーザー情報」「商品コード → 商品情報」など、ほぼ必ず出てきます...
Java

Java Tips | コレクション:Mapキー抽出

「Mapキー抽出」は“辞書の見出しだけを取り出す”イメージMap<K, V> は「キーと値のペアの集まり」です。「商品ID → 商品名」「ユーザーID → ユーザー情報」「コード → マスタ値」など、...
Java

Java Tips | コレクション:ランダム抽出

ランダム抽出は「誰を選ぶかを“公平に”決める」技ランダム抽出は、ざっくり言うと「コレクションの中から、ランダムに要素を取り出す」処理です。テスト用にランダムなユーザーを 1 人選びたい。キャンペーン当...
Java

Java Tips | コレクション:シャッフル

シャッフルは「順番に意味を持たせないために、あえてぐちゃっと混ぜる」技シャッフルは、ざっくり言うと「コレクションの要素の順番をランダムに入れ替える」処理です。テストデータの順番を毎回変えたい。おすすめ...
Java

Java Tips | コレクション:バッチ分割

バッチ分割は「一気にやると危ない処理を、小さな塊に分けて安全に回す」技バッチ分割は、ざっくり言うと「大量データを、バッチ(かたまり)単位に分けて処理する」ためのユーティリティです。1 万件のレコードを...
Java

Java Tips | コレクション:分割処理

分割処理は「大きな塊を、ちょうどいいサイズのかたまりに刻む」技分割処理は、ざっくり言うと「大きな List を、一定サイズごとの小さな List に分ける」テクニックです。一度に 1 万件のレコードを...
Java

Java Tips | コレクション:フラット化

フラット化は「入れ子の一覧を、一本の一覧に伸ばす」技フラット化は、ざっくり言うと「List<List<T>> のような“入れ子のコレクション”を、List<T> という“まっすぐなコレクション”に伸ば...
Java

Java Tips | コレクション:マッピング

マッピングは「一覧の“形”を変える」技マッピングは、ざっくり言うと「ある型の一覧を、別の型の一覧に変換する」処理です。ユーザー一覧から「名前だけの一覧」を作る。商品一覧から「価格だけの一覧」を作る。注...
Java

Java Tips | コレクション:フィルタ

フィルタは「欲しいものだけを残して、あとは流す」技フィルタは、ざっくり言うと「条件に合う要素だけを残して、それ以外を捨てる」処理です。注文一覧から「未出荷のものだけ」を残す。ユーザー一覧から「有効ユー...
Java

Java Tips | コレクション:件数カウント

件数カウントは「どれくらいあるか」を正確に言葉にする技業務では「何件あるか?」を数える場面が本当に多いです。今日の注文件数、エラー件数、未処理タスク件数、特定条件を満たすユーザー数…。だからこそ、「件...
Java

Java Tips | コレクション:平均算出

「平均算出」は“バラバラな値を代表する一つの数字”を作る技平均は、たくさんの値を「代表する一つの数字」にまとめるための道具です。売上の平均金額、テストの平均点、作業時間の平均、単価の平均…。業務では「...
Java

Java Tips | コレクション:合計算出

「合計算出」は“一覧から一つの数字にギュッと圧縮する”基本テク業務コードで一番よく出てくる集計が「合計」です。売上金額の合計、ポイントの合計、在庫数の合計、工数の合計…。どれも「たくさんの値 → ひと...
Java

Java Tips | コレクション:最小値取得

「最小値取得」は“いちばん小さいものを安全に一発で取り出す”ユーティリティ業務コードでは、「最小値」が欲しい場面もかなり多いです。最小金額、最古の日付、最小スコア、最小バージョン番号…。毎回 for ...
Java

Java Tips | コレクション:最大値取得

「最大値取得」は“いちばん大きいものを安全に一発で取り出す”ユーティリティ業務コードでは、「最大値」が欲しい場面がよく出てきます。最大金額、最新日付、最大スコア、最大バージョン番号…。毎回 for 文...
Java

Java Tips | コレクション:集計

集計は「一覧から“知りたい数字”だけを取り出す」技集計は、ざっくり言うと「たくさんのデータから、意味のある数字を取り出す」ことです。売上一覧から「合計金額」「平均単価」「件数」を出す。ユーザー一覧から...
Java

Java Tips | コレクション:グルーピング

グルーピングは「バラバラの一覧を“意味のあるかたまり”に整理する」技グルーピングは、ざっくり言うと「一覧を、あるキーごとにまとめ直す」ことです。売上一覧を「店舗ごと」にまとめる。ユーザー一覧を「都道府...
Java

Java Tips | コレクション:カスタムComparator

カスタムComparatorは「業務ルールをそのまま並び順にする道具」Comparator は「どっちが先か」を決めるための“比較ルール”です。カスタムComparatorは、そのルールを自分で定義す...
Java

Java Tips | コレクション:逆順ソート

逆順ソートは「優先度の高いものを先頭に持ってくる」ための技ソートというと「小さい順・古い順」をイメージしがちですが、業務ではむしろ「新しい順」「優先度の高い順」「金額の大きい順」が圧倒的に多いです。つ...
Java

Java Tips | コレクション:ソート

コレクションのソートは「並び順というビジネスルール」をコードにする作業ソートは単なる「小さい順・大きい順」ではありません。業務では「名前の五十音順」「日付の新しい順」「ステータス順(独自の優先度)」な...
Java

Java Tips | コレクション:重複除去

重複除去は「一意な世界にそろえてから考える」ためのユーティリティ業務コードでは、同じ値が何度も出てくることがよくあります。ユーザーIDの一覧、商品コードの一覧、タグの一覧…。そのまま処理すると、同じユ...
Java

Java Tips | コレクション:null除外

「null除外」は“混ざってしまった null を一度で掃除する”ユーティリティ業務コードを書いていると、こういうコレクションがよく生まれます。List<String> names = Arrays....
Java

Java Tips | コレクション:空Map安全取得

空Map安全取得は「null を“空の設定”にそろえる」ための小さな約束Map を返すメソッドも、業務コードに山ほど出てきます。設定値のマップ、コード→ラベルのマップ、集計結果のマップなど。そこでよく...
Java

Java Tips | コレクション:空List安全取得

空List安全取得は「null を“空”にそろえる」ための小さな約束List を返すメソッドって、業務コードに山ほど出てきますよね。検索結果、関連データ、設定値の一覧、などなど。そこでよく起きるのが、...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – モダン Java 総復習

モダン Java 総復習のゴールここまで「設計・実務視点」でいろいろ見てきましたが、モダン Java を一言でまとめると、こういう世界観になります。「Java 8 以降の機能(ラムダ、Stream、O...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 実務でよくある罠

「実務でよくある罠」とは何かここでいう「罠」は、コンパイルは通るし一見正しく動いているように見えるのに、本番や長期運用の中でじわじわ効いてきて、バグ・障害・保守地獄につながるポイントのことです。初心者...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – モダン構文の使い過ぎ問題

「モダン構文の使い過ぎ問題」とは何かJava には、ラムダ式、Stream API、Optional、record、switch 式、パターンマッチングなど、「モダンでカッコいい構文」がたくさんありま...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 公開 API の互換性

公開 API の互換性とは何か公開 API の互換性とは、「一度公開した API を、後から変更しても利用者のコードが壊れないようにすること」です。ここでいう「利用者」は、あなたのクラスを呼び出す別の...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – API 設計観点

API 設計観点とは何かAPI 設計観点とは、「他の人(他のクラス・他の開発者・他のシステム)が使いやすく、安全で、誤解されないインターフェースをどう作るか」という視点のことです。Java の API...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – ライブラリ選定基準

ライブラリ選定基準とは何かライブラリ選定基準とは、「このプロジェクトでどの外部ライブラリを使うかを判断するためのルール」 のことです。Java の世界には膨大なライブラリがあります。便利なものもあれば...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – チーム内 Java 方針

チーム内 Java 方針とは何かチーム内 Java 方針とは、「このチームでは Java をこう使う」という“共通ルール・共通思想”のことです。コーディング規約が「書き方のルール」だとすれば、チーム内...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – コーディング規約統一

コーディング規約統一とは何かコーディング規約統一とは、「プロジェクト全員が同じ“書き方のルール”でコードを書くようにすること」です。これは単なる“見た目の統一”ではありません。読みやすさ、保守性、レビ...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – LTS バージョン

LTS バージョンを一言でいうとJava の LTS(Long-Term Support)バージョンは、「長期間サポートされる“安定版”の Java」です。実務で言うと、「会社やプロジェクトが“これを...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – バージョンアップ対応

バージョンアップ対応を一言でいうとJava のバージョンアップ対応は、「今ちゃんと動いているシステムを壊さずに、新しい Java(JDK/JRE)に乗り換えるための一連の作業」です。単に「JDK を入...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 非推奨 API の扱い

「非推奨 API」とは何か非推奨 API(deprecated API)は、「今はまだ使えるけれど、将来は消えるかもしれない/使ってほしくない」と宣言された API のことです。Java では @De...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – レガシーコード対応

レガシーコード対応を一言でいうとレガシーコード対応は、「よく分からないけど本番で動いている古いコード」を、壊さずに理解し、少しずつ安全にマシな状態へ近づけていく作業です。「全部書き直したい」という気持...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 古い Java との互換性

「古い Java との互換性」とは何を指しているか「古い Java との互換性」というとき、実は複数のレイヤーの話が混ざっています。コンパイルしたクラスファイルが、どのバージョンの JVM で動くかと...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – モダン Java の書き方

「モダン Java の書き方」とは何かここでいう「モダン Java」は、Java 8 以降で手に入った機能や考え方を前提にした書き方のことだと思ってください。昔ながらの「for 文だらけ・null だ...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – 可読性とパフォーマンスのバランス

「速いコード」より「分かるコード」が先まず大前提として、実務では「とにかく速いコード」より「読んで分かるコード」の方が価値が高いです。なぜかというと、ほとんどのコードは「読む時間>書く時間>実行時間」...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – defensive programming

defensive programming を一言でいうとdefensive programming(防御的プログラミング)は、「相手(呼び出し側や外部システム)が“ちゃんとしている”と期待しすぎない...
Java

Java | Java 詳細・モダン文法:設計・実務視点 – イミュータブル設計

イミュータブル設計を一言でいうとイミュータブル(immutable)は、「一度作ったら中身が変わらないオブジェクト」のことです。Java で一番有名なのは String です。String は rep...
Java

Java Tips | コレクション:不変Map生成

不変Map生成は「絶対に変わらない対応表」をコードで保証する技術不変Map(Immutable Map)は、「一度作ったらキーと値の対応が二度と変わらないMap」です。put も remove も c...
Java

Java Tips | コレクション:不変List生成

不変List生成は「絶対に変わらない約束」をコードに刻む技術不変List(Immutable List)は、「一度作ったら中身を二度と変えられないList」です。add も remove も set ...
Java

Java Tips | コレクション:Set初期化

Set初期化は「重複を許さない集まりの“性質”を決める」作業Setは「同じ要素を二度入れない」コレクションです。だからこそ、初期化の段階で「順序は必要か」「変更できるか」「固定の集合か」を決めておくこ...
Java

Java Tips | コレクション:Map初期化

Map初期化は「キーと値の世界の“ルール決め”」から始まるMapの初期化は、単に「空のMapを作る」「最初からいくつかのキーと値を入れておく」だけの話に見えますが、その瞬間に「変更できるか」「順序を保...
Java

Java Tips | コレクション:List初期化

List初期化は「最初の一歩で“性質”を決める」作業Listの初期化は、単に「空のリストを作る」「要素入りのリストを作る」だけの話に見えますが、実はこの瞬間に「変更できるか」「スレッドセーフか」「固定...
Java

Java Tips | 文字列処理:文字列比較IgnoreNull

「文字列比較IgnoreNull」は null に振り回されないための小さなルール業務システムでは、DBの値・画面入力・外部APIのレスポンスなど、「null かもしれない String」を比較する場...
スポンサーリンク