Java

スポンサーリンク
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – Consumer

Consumer を一言でいうとjava.util.function.Consumer<T> は、「T 型の値を 1 つ受け取って“何かする”けれど、結果(戻り値)は返さない関数」 を表す関数型インタ...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – Function

Function を一言でいうとjava.util.function.Function<T, R> は、「T 型の値を 1 つ受け取って、R 型の値を 1 つ返す“変換処理”を表す関数型インターフェー...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – Predicate

Predicate を一言でいうとjava.util.function.Predicate<T> は、「T 型の値を 1 つ受け取って、true / false を返す“条件判定関数”を表す関数型イン...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – @FunctionalInterface

@FunctionalInterface を一言でいうと@FunctionalInterface は、「このインターフェースは“関数型インターフェース”として使うつもりですよ」とコンパイラに宣言するた...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – 関数型インターフェース

関数型インターフェースを一言でいうと関数型インターフェースは、「たった1つだけ“抽象メソッド”を持つインターフェースで、その1つのメソッドを“関数”として扱うための入れ物」です。ラムダ式は「単体では宙...
Java

Java | Java 詳細・モダン文法:ラムダ式・関数型 – ラムダ式の構文

ラムダ式とは何か(まずイメージから)ラムダ式は、Java 8 から入った「小さな“処理そのもの”を値として書くための記法」です。「このタイミングで、こういう処理を実行してほしい」という“やりたいこと”...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ジェネリクスの制約

「ジェネリクスの制約」を一言でいうとJava のジェネリクスには、「こう書けたら便利そうだけど、仕様上あえて禁止されていること」 がいくつもあります。new T() が書けないT[](ジェネリック配列...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ジェネリクスメソッド

ジェネリクスメソッドを一言でいうとジェネリクスメソッドは、「メソッドの“中だけ”で使える型パラメータを宣言して、そのメソッドを型安全に汎用化する仕組み」です。public static <T> T f...
Java

Java | Java 詳細・モダン文法:ジェネリクス – PECS 原則

PECS 原則を一言でいうとPECS 原則は、ジェネリクスのワイルドカードを使うときの合言葉です。Producer Extends, Consumer Super「値を“生産する(取り出す)側”には ...
Java

Java | Java 詳細・モダン文法:ジェネリクス – 下限境界(super)

下限境界(super)を一言でいうとジェネリクスの下限境界 ? super T は、「このコレクションは T か、その“親クラスたち”のどれかを要素型として持つ。だから、T を入れるのは安全だよ」と宣...
Java

Java | Java 詳細・モダン文法:ジェネリクス – 上限境界(extends)

上限境界(extends)を一言でいうとジェネリクスの上限境界(extends)は、「この型パラメータには、あるクラス T か、そのサブクラスだけを許可します」と制限をかけるための仕組みです。<T e...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ワイルドカード(?)

ワイルドカード(?)を一言でいうとジェネリクスのワイルドカード ? は、「ここには“何らかの型”が入るけど、具体的な型は気にしない・決めたくない」というときの “あいまいな型パラメータ”です。List...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ジェネリクスと配列の違い

テーマの全体像を先にまとめるジェネリクス(List<String> など)と配列(String[])は、どちらも「同じ型の要素をたくさん持つ」ために使いますが、中身のルールやチェックのタイミングがかな...
Java

Java | Java 詳細・モダン文法:ジェネリクス – 型消去の概念

型消去を一言でいうと型消去(type erasure)は、「ジェネリクスの <T> みたいな型情報は“コンパイル時だけ”に使われて、コンパイル後のクラスファイル(実行時)からは消えてしまう」という仕組...
Java

Java | Java 詳細・モダン文法:ジェネリクス – 型パラメータの宣言

「型パラメータの宣言」を一言でいうと型パラメータの宣言は、「クラスやメソッドの“名前の横に” <T> などを書いて、ここには後で具体的な型をはめ込みますよ、と宣言すること」です。class Box<T...
Java

Java | Java 詳細・モダン文法:ジェネリクス – ジェネリクスとは

ジェネリクスを一言でいうとジェネリクス(generics)は、「クラスやメソッドの中に “型の穴” を開けておいて、使うときにその穴に好きな型をはめられる仕組み」です。List<String> や M...
Java

Java | 1 日 120 分 × 7 日アプリ学習:初級編

この初級編7日間プランの全体像この「1 日 120 分 × 7 日・初級編」は、あなたがすでにmain メソッド変数・if・forメソッド配列など「超初級」で触った前提で、そこから一段階レベルを上げる...
Java

Java | 1 日 60 分 × 7 日アプリ学習:超初級編

この7日間プランの全体像このプランは「Java はまったく初めて」「プログラミングもほぼ初めて」という人を想定しています。毎日 60 分 × 7 日で、コンソール(黒い画面)で動く小さなアプリを作れる...
Java

Java | Java 標準ライブラリ:CompletableFuture 基礎

CompletableFuture を一言でいうとCompletableFuture は、「将来終わる“非同期の計算結果”を表す箱(Future)に対して、『終わったらこれをして、その後これをして…』...
Java

Java | Java 標準ライブラリ:Future

Future を一言でいうとjava.util.concurrent.Future は、「別スレッドで走っている“将来の計算結果”を受け取るための“約束の箱”」です。時間のかかる処理を Executo...
Java

Java | Java 標準ライブラリ:ExecutorService 概要

ExecutorService を一言でいうとExecutorService は、「スレッドを自分で new せずに、”仕事(タスク)だけ” を投げれば、いい感じに別スレッドで実行してくれる仕組み」で...
Java

Java | Java 標準ライブラリ:Timer / TimerTask

Timer / TimerTask を一言でいうとTimer と TimerTask は、「指定した時間後に、あるいは一定間隔で、“別スレッドで” 処理を実行してくれるシンプルなタイマー機能」です。「...
Java

Java | Java 標準ライブラリ:Base64

Base64 を一言でいうとjava.util.Base64 は、「バイナリデータ(画像・PDF・任意のバイト列)を、テキスト(英数字+記号)だけで安全にやり取りできるように変換するためのクラス」です...
Java

Java | Java 標準ライブラリ:UUID

UUID を一言でいうとjava.util.UUID は、「ほぼ絶対に重ならない“ランダムな ID” を簡単に作るためのクラス」です。データベースの主キー、ファイル名、トークン、セッションID など、...
Java

Java | Java 標準ライブラリ:Locale

Locale を一言でいうとjava.util.Locale は「このユーザー(or この処理)は、どの言語・どの国・どの地域のルールで動けばいいのか」を表すための“タグ”です。英語なら en、日本語...
Java

Java | Java 標準ライブラリ:ResourceBundle

ResourceBundle を一言でいうとjava.util.ResourceBundle は、「画面メッセージや文言を、言語ごと・国ごとに切り替えるための仕組み」です。アプリのソースコードに日本語...
Java

Java | Java 標準ライブラリ:Properties クラス

Properties クラスを一言でいうとjava.util.Properties は、「文字列のキーと文字列の値を、設定ファイル的に管理するためのクラス」です。ざっくり言うと、Map<String,...
Java

Java | Java 標準ライブラリ:StackTrace の読み方

StackTrace を一言でいうとStackTrace(スタックトレース)は、「例外が発生したときに、そのときの『呼び出し履歴』を上から順に全部並べたもの」です。どのクラスの、どのメソッドの、どの行...
Java

Java | Java 標準ライブラリ:RuntimeException を使う判断

RuntimeException を一言でいうとRuntimeException は、「“呼び出し側に明示的な例外処理を強制したくはないが、異常はちゃんと知らせたい” ときに使う例外の親クラス」です。...
Java

Java | Java 標準ライブラリ:カスタム例外

カスタム例外を一言でいうと「カスタム例外」は、自分のアプリやライブラリ専用の例外クラスを新しく定義して、エラーの意味を分かりやすく、扱いやすくするためのものです。NullPointerExceptio...
Java

Java | Java 標準ライブラリ:非チェック例外

非チェック例外を一言でいうと「非チェック例外(unchecked exception)」は、“コンパイラが try-catch や throws 宣言を強制してこない例外”かつ“たいていはプログラマー...
Java

Java | Java 標準ライブラリ:チェック例外

チェック例外を一言でいうと「チェック例外(checked exception)」は、“この失敗は普通に起こりうるから、呼び出し側でちゃんと対処を考えろ” とコンパイラが迫ってくる例外です。ファイルがな...
Java

Java | Java 標準ライブラリ:例外階層構造

例外階層構造を一言でいうとJava の「例外階層構造」は、「エラーの種類を、親子関係(クラスの継承)で整理した“族譜”」です。この“族譜”を理解しておくと、どの例外をキャッチすべきかどこで throw...
Java

Java | Java 標準ライブラリ:NIO と IO の違い

「IO」と「NIO」をざっくり一言でいうとまず一番上のイメージだけ先に置きます。従来の java.io は、「ストリームを通して、データを順番に流す I/O(線でつながったイメージ)」java.nio...
Java

Java | Java 標準ライブラリ:BufferedWriter

BufferedWriter を一言でいうとBufferedWriter は、「文字をいったんバッファ(メモリ)に貯めてから、まとめて出力ストリームに書き込むことで、高速にテキストを書き込むためのクラ...
Java

Java | Java 標準ライブラリ:BufferedReader

BufferedReader を一言でいうとBufferedReader は、「文字をまとめて内部バッファに貯めながら、“行単位で”効率よく読み取るための Reader」です。ファイルやネットワークか...
Java

Java | Java 標準ライブラリ:try-with-resources

try-with-resources を一言でいうとtry-with-resources は、「使い終わったら必ず close() しなきゃいけないものを、自動で確実に閉じてくれる try 文の書き方...
Java

Java | Java 標準ライブラリ:Files.copy

Files.copy を一言でいうとFiles.copy は、「ファイル(またはディレクトリ)の中身を、別の場所にコピーするためのメソッド」です。「あるパスのものを、別のパスへコピーしたい」「入力スト...
Java

Java | Java 標準ライブラリ:Files.lines

Files.lines を一言でいうとFiles.lines は、「テキストファイルを 1 行ずつ“ストリームとして”読み出すためのメソッド」です。Files.readAllLines が「全部いっぺ...
Java

Java | Java 標準ライブラリ:Files.readAllLines

Files.readAllLines を一言でいうとFiles.readAllLines は、「テキストファイルを“まるごと読み込んで”、1行ずつ List<String> にして返してくれるメソッド...
Java

Java | Java 標準ライブラリ:Path / Paths

Path / Paths をざっくり一言でいうとPath は、「ファイルやディレクトリまでの“道順(パス)”を表すオブジェクト」です。Paths は、「Path を作るための “工場(ファクトリ)クラ...
Java

Java | Java 標準ライブラリ:File クラス

File クラスをざっくり一言でいうとjava.io.File は、「ディスク上の “ファイル or ディレクトリ” を指し示すための “住所カード”」です。ここがとても大事で、File 自体は「中身...
Java

Java | Java 標準ライブラリ:ファイル入出力概要

Java のファイル入出力をざっくり一言でいうとJava の「ファイル入出力(I/O)」は、「ディスク上のファイルに、プログラムから文字やバイトを読み書きするための仕組み」です。初心者のうちに、まず次...
Java

Java | Java 標準ライブラリ:Period と Duration

Period と Duration をざっくり一言でいうとPeriod と Duration は、どちらも「時間の長さ」を表すクラスですが、何を基準にしているかがまったく違います。Period … 年...
Java

Java | Java 標準ライブラリ:DateTimeFormatter

DateTimeFormatter をざっくり一言でいうとDateTimeFormatter は、「LocalDate / LocalTime / LocalDateTime / ZonedDateT...
Java

Java | Java 標準ライブラリ:ZonedDateTime

ZonedDateTime をざっくり一言でいうとZonedDateTime は、「日付(年・月・日)+時刻(時・分・秒)+タイムゾーン」をまとめて表現するクラスです。LocalDateTime が「...
Java

Java | Java 標準ライブラリ:LocalDateTime

LocalDateTime をざっくり一言でいうとLocalDateTime は、「日付(年・月・日)+時刻(時・分・秒)」を、タイムゾーンなしで表すクラスです。LocalDate が「日付だけ」Lo...
Java

Java | Java 標準ライブラリ:LocalTime

LocalTime をざっくり一言でいうとLocalTime は、「日付もタイムゾーンもいらない、“純粋な時刻(時・分・秒だけ)”」を表すクラスです。朝 9 時に開店、12 時に休憩開始、18 時に閉...
Java

Java | Java 標準ライブラリ:LocalDate

LocalDate をざっくり一言でいうとLocalDate は、「タイムゾーンも時刻も持たない、“純粋な日付(年・月・日だけ)”」をあつかうためのクラスです。誕生日、締切日、営業日、請求日など、「そ...
Java

Java | Java 標準ライブラリ:Date の問題点

なぜ「Date の問題点」を知っておくべきかJava の古い日付・時刻 API(java.util.Date / java.util.Calendar)は、長年「バグを生みやすい」「直感とズレている」...
Java

Java | Java 標準ライブラリ:parallelStream の注意点

parallelStream を一言でいうと何かparallelStream() は、「Stream の処理を、CPU の複数コアを使って“自動で並列実行してくれるモード”」です。list.strea...
Java

Java | Java 標準ライブラリ:Stream の再利用不可性

Stream が「再利用できない」ってどういうことかまず結論から言うと、Java の Stream は「一度“流して”終端操作を呼んだら、そのストリームは二度と使えない(使い捨て)」という性質を持って...
Java

Java | Java 標準ライブラリ:Stream の遅延評価

「遅延評価」をざっくりイメージするまず感覚から固めます。Stream の「遅延評価(lazy evaluation)」とは、「stream().filter().map() と“パイプラインを組み立て...
Java

Java | Java 標準ライブラリ:Optional と Stream の併用

なぜ「Optional と Stream の併用」が話題になるのかOptional と Stream、どちらも「null を避けつつ、宣言的に書く」ための道具です。でも実務でコードを書き始めると、こう...
Java

Java | Java 標準ライブラリ:joining

joining をざっくり一言でいうとCollectors.joining は、「Stream の中の文字列たちを、1 本の文字列に“つなげて”まとめるための Collector」です。collect...
Java

Java | Java 標準ライブラリ:groupingBy

groupingBy をざっくり一言でいうとCollectors.groupingBy は、「Stream の要素を、ある“キー”ごとにグループ分けして Map にまとめる ための仕組み」です。イメー...
Java

Java | Java 標準ライブラリ:Collectors.toList

Collectors.toList をざっくり一言でいうとCollectors.toList() は、「Stream の結果を List に集め直すための“まとめ方テンプレ”」です。stream()....
Java

Java | Java 標準ライブラリ:collect

collect の役割をざっくりイメージするStream の collect は一言でいうと、「ストリームの“流れ”を、最終的な入れ物や形(List・Set・Map・1つの値など)にまとめる操作」です...
Java

Java | Java 標準ライブラリ:flatMap

flatMap をざっくりイメージするまず、一番大事な感覚から。map は「1つの要素 → 1つの値」に変換する操作でした。flatMap は「1つの要素 → 0個以上の“複数要素”」に変換して、最後...
Java

Java | Java 標準ライブラリ:filter 操作

filter 操作をざっくりイメージするStream の filter は、一言でいうと「流れてくる要素の中から、条件に合うものだけを通し、合わないものを捨てる 操作」です。大事なポイントはこの 3 ...
スポンサーリンク