Java

スポンサーリンク
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 ...
Java

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

「map 操作」をざっくりイメージするStream の map は、一言でいうと「流れてくる要素を、別の値に変換して流し直す 操作」です。元の要素数は変えない1 個入ったら、必ず 1 個出てくる「中身...
Java

Java | Java 標準ライブラリ:Stream の生成

「Stream の生成」をざっくりイメージするStream API の最初の一歩は、「そもそも Stream をどうやって作るか」です。filter や map は、その前に「Stream がある」こ...
Java

Java | Java 標準ライブラリ:Stream API 概要

Stream API をざっくりイメージするまず感覚から先に。Stream API は、「配列やコレクションなど“データの列”に対して、 “何をしたいか”を宣言的に書けるパイプライン」です。for 文...
Java

Java | Java 標準ライブラリ:Collections.unmodifiableList

Collections.unmodifiableList の役割をざっくりつかむCollections.unmodifiableList は、「この List、“見たり読むのはいいけど、書き換えは禁止...
Java

Java | Java 標準ライブラリ:Collections.sort

Collections.sort の役割をざっくりつかむCollections.sort は、「List の中身を並び替えるための標準メソッド」です。配列には Arrays.sort がありましたよね...
Java

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

Comparable をざっくりイメージするまず一言でまとめると、Comparable は「このクラスの“標準の並び順”はこうです」と自分自身で宣言するためのインターフェースです。String なら「...
Java

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

Comparator の役割をざっくりイメージするComparator は一言でいうと、「オブジェクト同士を“どういう順番で並べるか”を後付けで教えるためのオブジェクト」です。int や String...
Java

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

ConcurrentModificationException をまず感覚でつかむConcurrentModificationException は、Java のコレクションを使っているときに、かなり...
Java

Java | Java 標準ライブラリ:for-each の内部動作

for-each 文をまず感覚でつかむJava の for-each(拡張 for 文)は、こういう書き方のやつです。for (String name : names) { System.out.pr...
Java

Java | Java 標準ライブラリ:イテレータ

イテレータって何者かをざっくりイメージするまず感覚からいきます。イテレータ(Iterator)は、「コレクションの中身を、順番に“たどる”ための共通ルール」です。ArrayList でも HashSe...
Java

Java | Java 標準ライブラリ:コレクションの初期容量

「コレクションの初期容量」ってそもそも何?まずことばの整理からいきます。ArrayList や HashMap などのコレクションは、内部で「ある程度まとめてメモリを確保してから」そこに要素を入れてい...
Java

Java | Java 標準ライブラリ:コレクションの null 許容

「コレクションは null を入れていいのか?」という全体像Java のコレクションで初心者が一番ハマるポイントの一つが、「null を入れていいのか・ダメなのかがバラバラ」ということです。Array...
Java

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

TreeMap をざっくりイメージするまず一言でいうと、TreeMap は「キーで常にソートされた順番を保ってくれる Map」です。HashMap は「キー → 値」を高速に扱えるけれど、キーの順番は...
Java

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

LinkedHashMap をざっくりイメージするまず、すごくラフに言うと「順番を覚えてくれる HashMap」が LinkedHashMap です。HashMap は「キー → 値」を高速に扱える代...
Java

Java | Java 標準ライブラリ:Map / HashMap

Map / HashMap をざっくりイメージするまず「Map って何者?」からいきます。Map は「キー(key)と値(value)のペアを管理する入れ物」です。電話帳をイメージすると分かりやすいで...
Java

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

TreeSet をざっくりイメージするまず全体像からいきます。TreeSet は「重複を許さない集合(Set)でありつつ、 中身を“常にソートされた順番”で持ってくれるクラス」です。前回の HashS...
Java

Java | Java 標準ライブラリ:Set / HashSet

Set / HashSet をざっくりイメージするまず感覚からいきます。List は「順番がある・重複を許す」コレクションでした。それに対して Set は、「順番は気にしない」「同じ要素を二度入れない...
Java

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

LinkedList をざっくりイメージするまず感覚からいきます。ArrayList は「配列ベースで、連番の棚がズラッと並んでいるストレージ」です。それに対して LinkedList は、「前後の箱...
Java

Java | Java 標準ライブラリ:List / ArrayList

List と ArrayList をざっくりイメージするまずイメージからいきます。配列 int[] は「長さが固定の箱の列」でした。一方で List / ArrayList は「あとから増やしたり減ら...
Java

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

Collections クラスの全体像をざっくりつかむjava.util.Collections は、「List や Map など“コレクション”を扱うときの便利メソッドを集めたユーティリティクラス」...
Java

Java | Java 標準ライブラリ:Arrays.equals

Arrays.equals の役割をざっくりつかむjava.util.Arrays.equals は、「配列同士が “中身まで含めて” 同じかどうかをチェックするメソッド」です。ここでまず押さえたいの...
Java

Java | Java 標準ライブラリ:Arrays.copyOf

Arrays.copyOf の「役割」をざっくりつかむjava.util.Arrays.copyOf は、「今ある配列をもとに、“新しい配列”を作るためのコピー専用メソッド」です。ポイントは次の二つで...
Java

Java | Java 標準ライブラリ:Arrays.sort

Arrays.sort の役割をざっくりつかむArrays.sort は「配列を並び替えるための標準メソッド」です。int などの配列を、昇順(小さい順・辞書順)に一発で整列してくれます。自分でソート...
Java

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

Arrays クラスの全体像をざっくりつかむjava.util.Arrays は、「配列を扱うときの“便利道具”をまとめたユーティリティクラス」です。配列は int などのあれです。配列を文字列として...
Java

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

SecureRandom は「セキュリティ用の本気の乱数生成器」java.security.SecureRandom は、一言でいうと「パスワード・トークン・認証コードなど、“セキュリティが絡む場面専...
Java

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

Random クラスの全体像をまずつかむjava.util.Random は、「それっぽくランダムな値をくれる“乱数生成器”のクラス」です。ゲームでダメージ値をランダムにしたいガチャの結果をランダムに...
Java

Java | Java 標準ライブラリ:BigDecimal の丸めモード

なぜ BigDecimal に「丸めモード」が必要なのか(全体像)BigDecimal は「小数を誤差なく扱う」ためのクラスですが、もう一つ大事なテーマがあります。「小数をどこかで“切り捨て・切り上げ...
Java

Java | Java 標準ライブラリ:BigDecimal の加算減算

なぜ BigDecimal の「加算・減算」が特別なのか(全体像)BigDecimal は「お金など誤差が許されない小数」を扱うためのクラスでしたね。その代わり、+ や - の演算子は使えません。+ ...
スポンサーリンク