0Pricing
Java Academy icon

Java Academy

JAVABackendWebMobileEnterpriseBeginnerCloudDatabaseAndroidDesktopNetwork

Java Academy でJavaプログラミングの実務的なスキルを習得し、強力なアプリケーションを開発しましょう。

🤖 AI 搭載📚 104 コース👥 100,000+ ユーザー⭐ 4.9 評価
コース概要

Java: 最初のクラスから本番レベルのシステムへ

Javaは近30年間、エンタープライズソフトウェア、Android開発、大規模バックエンドシステムの中核を担ってきました。JVM上で動作し、豊富な標準ライブラリを備え、金融取引プラットフォームからクラウドマイクロサービスまで、あらゆるシステムを支えています。このトラックは本物のJavaスキルを身につけることができます。変数と制御フローの基礎から始まり、JVMの内部動作、仮想スレッド、GraalVMによるネイティブコンパイルまで、段階的に学習できます。

学習内容

コア構文(変数、データ型、ループ、メソッド)から始まり、クラス、継承、ポリモーフィズム、sealed classes、records を使ったオブジェクト指向設計へと進みます。中級段階では Collections フレームワーク全体、java.time と NIO.2 API、ラムダ式、関数型インターフェース、ストリーム API(コレクタ、スプリッタレータ、プリミティブストリームを含む)をカバーします。後続のコースでは Spring Boot の設定と依存性注入、Spring Data JPA、REST API バリデーション、JUnit 5 統合テスト、JWT ベースのセキュリティを取り扱います。トラックの応用段階では、ExecutorService、ロック、アトミック変数、CompletableFuture、構造化並行処理、Project Loom の仮想スレッド、JVM クラスローディングとバイトコード、GraalVM ネイティブイメージコンパイル、JMH によるパフォーマンスプロファイリングを学習します。

学習パス

120以上のコースが A1 から C2 のレベルをカバーしています。A1と A2のコースで基礎を確立します:型システム、キャスト、オートボックス、ラッパークラス、配列、条件分岐、メソッド。B1 ではオブジェクト指向 Java を深掘りします。enum、内部クラス、イテレータ、コンパレータ、HashMap の内部実装、例外処理、シリアライゼーション、Maven や Gradle などのビルドツール。B2 では関数型プログラミング、有界ワイルドカード付きジェネリクス、カスタムアノテーション、そして実践的な Spring Boot シーケンスを導入し、ミニプロジェクト:REST API で締めくくります。C1 コースは並行処理とパフォーマンスが中心となります。並列ストリーム、Java メモリモデル、ガベージコレクション、リフレクション、動的プロキシ、構造化並行処理。トラックは C2 で Foreign Function and Memory API で終わります。これは Java が ネイティブコードと直接相互運用するための最も低レベルの機能です。

学習のしくみ

各コースは短くて焦点の絞られたレッスンに分かれており、組み込みのコードエディタでリアルタイムのフィードバックを受けながら完成させます。困ったときはいつでも AI チューターが利用可能です。また、重要なマイルストーンでのミニプロジェクト(Word Stats、Shape Hierarchy、Log Analyzer、REST API、Parallel Stats)を通じて、学んだ内容を実践してから先に進むことができます。

学習を始める →

学び方

🎯
インタラクティブレッスン
リアルタイムフィードバック付きの実践的なコード演習
🤖
AIチューター
わからないときは、AIが即座にサポート
💻
組み込みエディタ
ブラウザで直接コードを書いて実行
🏆
認定資格
コース完了時に認定資格を取得
カリキュラム

104コース

Java Academyラーニングパスのすべてのコース

01

Java入門

A13レッスン

Javaは、Sun Microsystemsが1995年に発表した高水準のオブジェクト指向プログラミング言語です。「Write Once, Run Anywhere」(WORA)という特長で知られ、コードをプラットフォームに依存しないバイトコードにコンパイルし、Java Vir…

02

Scannerとコンソール入力

A14レッスンPRO

Scannerとコンソール入力:Scannerで入力を読み取る、数値と行を読み取るなど

03

JavaとIDEのセットアップ

A13レッスンPRO

Javaの学習を始めましょう。プログラミングとは何か、JavaがJVM上でどのように動作するか、これから必要になるツールについて学びます。このミニコースでは、インストールと最初のコードを書く準備をします。

04

変数と式の基礎

A13レッスンPRO

Javaの変数と式をマスターしましょう。プリミティブ型、宣言、代入、値の出力、数値式の基本を学びます。実行可能な例を使った、短くモバイル向けのレッスンです。

05

Javaの型システムとキャスト

A24レッスンPRO

Javaの型システムを使いこなします。プリミティブ型と参照型、拡大変換と縮小変換、明示的キャスト、実践的な場面でのinstanceof演算子を扱います。

06

Javaの数学処理と数値フォーマット

A24レッスンPRO

Mathクラス、金融計算に必要な精度を持つBigDecimal、ロケールに対応した出力を行うNumberFormat、Javaでの実践的な数値問題の解法を学びます。

07

Switch式とアロー構文

A24レッスンPRO

Switch式とアロー構文:アロー形式のswitch、式としてのswitchなど

08

テキストブロックと複数行文字列

A24レッスンPRO

テキストブロックと複数行文字列:テキストブロックの宣言、インデントと除去など

09

varとローカル型推論

A24レッスンPRO

varとローカル型推論:ローカル変数でvarを使う、varが可読性を高める場合など

10

ラッパークラスとオートボクシング

A24レッスンPRO

ラッパークラスとオートボクシング:プリミティブ型とラッパー型、オートボクシングとアンボクシングなど

11

Arraysユーティリティクラス

A24レッスンPRO

Arraysユーティリティクラス:Arrays.sortとソート、Arrays.binarySearchなど

12

JavaのRandomとMathユーティリティ

A24レッスンPRO

JavaのRandomとMathユーティリティ:Mathクラス、乱数の生成など

13

BufferedReaderで入力を読み取る

A24レッスンPRO

Javaでユーザー入力やファイル入力を効率的に読み取ります。

14

Javaの三項演算子と条件式

A24レッスンPRO

条件演算子で、簡潔に判断処理を書きます。

15

JavaのcharとCharacterメソッド

A24レッスンPRO

Characterクラスを使って個々の文字を扱います。

16

printfで出力を整形する

A24レッスンPRO

書式指定子を使って、整ったテキストを生成します。

17

Javaのラベル付きループとフロー制御

A24レッスンPRO

break、continue、ラベルでネストしたループを制御します。

18

条件分岐I:if/elseの基礎

A23レッスンPRO

if、else if、elseを使ってJavaで判断処理を作りましょう。比較演算子と論理演算子を使い、分かりやすいboolean式を組み立てます。実行可能な例を使った、短くモバイル向けのレッスンです。

19

条件分岐II:演算子とswitch

A23レッスンPRO

比較(==、!=、<、>、<=、>=)とboolean論理(&&、||、!)をさらに深く学びます。演算子の優先順位、括弧によるグループ化、短絡評価、ド・モルガンの法則について学習します。

20

ループI:whileとdo-while

A22レッスンPRO

whileループを段階的に学びます。初期化、条件、更新、無限ループの回避について理解しましょう。処理を安全に繰り返す小さなパターンを練習します。短いシーンと実行可能なコードを使った、モバイル向けのレッスンです。

21

ループII:forとパターン

A23レッスンPRO

初期化、条件、更新を1行にまとめて書くforループをマスターしましょう。カウント、合計、簡単なパターンを作るループを書きます。breakとcontinueを安全に使う方法も学びます。

22

Javaの演算子

A21レッスンPRO

Javaには、データを操作するためのさまざまな演算子があります。これらの演算子を使ってデータを処理できます。算術演算子は、数学でよく知られている種類の演算子です。

23

Javaの文字列

A21レッスンPRO

Javaでは、文字列型をテキストデータの格納に使用します。Javaの文字列はプリミティブ型ではなく、参照型です。このコースでは、JavaでStringを使用する方法を学習します。

24

配列I:1次元配列

A23レッスンPRO

1次元配列について学びます。配列とは何か、宣言と作成の方法、要素へのアクセスと更新、 length の使い方、 for と拡張 for-each による反復処理を理解します。

25

配列 II:2次元配列

A26レッスンPRO

Javaの2次元配列について学びます。宣言と作成、行と列へのアクセス、入れ子のループによる反復処理を扱います。行・列の合計の計算や出力の整形も練習します。

26

メソッド I:基礎

A23レッスンPRO

Javaメソッドの基礎を身につけます。シグネチャ、パラメーターと引数の違い、呼び出し規約、基本的な設計を学びます。実行可能な例を使った、短く集中したレッスンです。

27

メソッド II:設計と再利用

A23レッスンPRO

メソッドを効果的に設計・再利用する方法を学びます。Javaの値渡しのセマンティクスを理解し、staticメソッドとインスタンスメソッドを使い分け、問題を明確でテスト可能なルーチンに分解します。

28

Javaの列挙型

B14レッスンPRO

Javaで列挙型を定義・使用する方法を学びます。enum定数、フィールド、メソッド、列挙型を使ったswitch式、EnumSet/EnumMapコレクションを扱います。

29

JavaのRecordと不変データ

B14レッスンPRO

Java Records(Java 16以降)を学びます。不変データキャリアの作成、コンパクトコンストラクター、Record独自のメソッド、Recordとクラスの使い分けを扱います。

30

StringBuilderと文字列のパフォーマンス

B14レッスンPRO

StringBuilderと文字列のパフォーマンス:文字列が不変である理由、StringBuilderで文字列を構築するなど

31

BigDecimalとBigInteger

B14レッスンPRO

BigDecimalとBigInteger:金額にdoubleを使わない理由、BigDecimalの扱いなど

32

java.time日時API

B14レッスンPRO

java.time日時API:LocalDate、LocalTime、LocalDateTime、InstantとDurationなど

33

Java Optional

B14レッスンPRO

Optionalを使ってNullPointerExceptionを防ぎます。Java 17以降で、Optionalの作成、マッピング、フィルタリング、慣用的な利用方法を学びます。

34

JavaのString詳解

B14レッスンPRO

基本的な文字列処理から一歩進み、StringBuilder、StringJoiner、正規表現、String.format、テキストブロック、一般的な文字列アルゴリズムのパターンを扱います。

35

Javaの可変長引数、オーバーロード、staticメンバー

B14レッスンPRO

Javaでメソッドのオーバーロード解決、可変長引数、staticフィールドとメソッド、ユーティリティクラスの設計パターンを使いこなします。

36

Javaの内部クラスと匿名クラス

B14レッスンPRO

ネストしたクラスの種類を学びます。staticネストクラス、内部クラス、ローカルクラス、匿名クラスと、それぞれが適切な場面を扱います。

37

JavaのイテレーターとIterable

B14レッスンPRO

カスタムのIterableインターフェースとIteratorインターフェースを実装し、自作のデータ構造をfor-eachループやJava Collections Frameworkで扱えるようにします。

38

JavaのComparatorとソート

B14レッスンPRO

Comparable、Comparator、メソッド参照、多段階のソートチェーンを使って、実際のデータを想定したコレクションと配列の並べ替えを行います。

39

JavaのLinkedListとDeque

B14レッスンPRO

LinkedListの内部構造、双方向リンク構造、Dequeの操作、スタックのシミュレーション、LinkedListがArrayListを上回る場面を理解します。

40

JavaのTreeMapとTreeSet

B14レッスンPRO

順序付きコレクションを使いこなします。TreeMapのNavigableMap操作、重複しない要素を扱うTreeSet、subMap/headMap/tailMap、赤黒木の基礎を学びます。

41

Java NIO.2のPathとFiles API

B14レッスンPRO

最新のjava.nio.file APIを使いこなします。Pathの作成、Filesユーティリティメソッド、walkFileTreeによるディレクトリ走査、WatchServiceによるディレクトリ監視を扱います。

42

Javaのシリアライゼーションとオブジェクト永続化

B14レッスンPRO

Javaのシリアライゼーションを理解します。Serializableインターフェース、transientフィールド、serialVersionUID、カスタムwriteObject/readObject、JSONなどの最新の代替手段を学びます。

43

sealedクラスとインターフェース

B14レッスンPRO

sealedクラスとインターフェース:sealed型の宣言、permits句など

44

instanceofとレコードのパターンマッチング

B14レッスンPRO

instanceofとレコードのパターンマッチング:instanceofのパターンマッチング、レコードパターンなど

45

PatternとMatcherによる正規表現

B14レッスンPRO

PatternとMatcherによる正規表現:パターンのコンパイル、検索とマッチングなど

46

HashMapの内部構造とequals/hashCode

B14レッスンPRO

HashMapの内部構造とequals/hashCode:HashMapの仕組み、equals/hashCodeの契約など

47

EnumMap、EnumSetと高度なenum

B14レッスンPRO

EnumMap、EnumSetと高度なenum:フィールドとメソッドを持つenum、enumの抽象メソッドなど

48

SLF4JとLogbackによるロギング

B14レッスンPRO

SLF4JとLogbackによるロギング:構造化ロギングの理由、SLF4Jファサードとロガーなど

49

パッケージとアクセス修飾子

B11レッスンPRO

Javaでは、アクセス修飾子を使ってオブジェクト間のアクセスを制限します。これはクラスレベルだけでなく、変数、メソッド、コンストラクターのレベルで設定することもあります。

50

ミニプロジェクト:単語統計

B13レッスンPRO

小さな単語統計ツールを作成します。テキストをトークン化、正規化、カウントし、上位の結果を出力します。まず計画を立て、次に実装します。

51

OOP I:クラスとオブジェクト

B13レッスンPRO

Javaにおけるクラスとオブジェクトの基礎を学びます。簡単なクラスを作成し、オブジェクトをインスタンス化して、OOPにおける役割を理解します。

52

OOP II:実践

B13レッスンPRO

Javaで役立つOOPの実践方法を学びます。thisキーワード、読みやすいtoString、正しいequalsとhashCode、小規模アプリに役立つヒントを扱います。

53

継承 I

B13レッスンPRO

Javaの継承の基礎を学びます。基底クラスを拡張し、superコンストラクターを呼び出し、共通の動作を安全に再利用します。

54

抽象化とインターフェース

B13レッスンPRO

Javaの抽象クラスとインターフェースについて学びます。いつ使うのか、どのように宣言するのか、設計をどのように導くのかを扱います。

55

ミニプロジェクト:図形の階層

B13レッスンPRO

抽象基底クラス、具象図形、ポリモーフィックな振る舞いを備えた、小さな図形のクラス階層を設計・実装します。

56

コレクション I:リストとセット

B13レッスンPRO

JavaのListとSetについて学びます。それぞれを使う場面、基本操作、シンプルな反復処理のパターンを扱います。

57

コレクション II:マップとアルゴリズム

B13レッスンPRO

キー→値の検索や頻度カウントにMapを使う方法と、リストやセットを使ったシンプルなアルゴリズムを学びます。

58

例外 I:基礎

B13レッスンPRO

例外処理の基礎を学びます。簡単な例を使って、try、catch、finallyブロックを扱います。

59

例外 II:実践

B13レッスンPRO

カスタム例外、throw文、防御的コーディングを使って、例外処理を実践します。

60

ファイルとI/O I

B13レッスンPRO

Java NIOのPathクラスとFilesクラスについて学びます。ファイルの作成、確認、削除を安全に行う方法を扱います。

61

ファイルとI/O II

B13レッスンPRO

Javaのオブジェクトシリアライズについて学びます。オブジェクトをファイルに書き込み、読み戻す方法を扱います。

62

ミニプロジェクト:ログアナライザー

B13レッスンPRO

ログファイルを読み込み、解析し、要約するシンプルなログアナライザーを作成します。

63

ビルドツール:MavenとGradle

B14レッスンPRO

ビルドツール:MavenとGradle:Mavenプロジェクトの構成、Mavenプラグインとゴールなど

64

JDBCとコネクションプーリング

B14レッスンPRO

JDBCとコネクションプーリング:JDBCの基礎、PreparedStatementなど

65

Java Stream Collectors詳解

B24レッスンPRO

基本的なStreamから一歩進み、groupingBy、partitioningBy、toMap、counting、summarizingInt、joining、複雑な集約を行うカスタムCollectorの作成を扱います。

66

Javaのメソッド参照

B24レッスンPRO

メソッド参照でラムダ式を簡潔にします。static、インスタンス、任意のインスタンス、コンストラクターへの参照を、実践的な関数型インターフェースの例で学びます。

67

Javaデザインパターン:生成

B24レッスンPRO

Javaで主要な4つの生成パターンを実装します。Singleton(スレッドセーフ)、Factory Method、Abstract Factory、そしてfluent APIを備えたBuilderを扱います。

68

Javaデザインパターン:振る舞い

B24レッスンPRO

Javaの振る舞いに関するデザインパターンを習得します。実際のアプリケーションを題材に、Observer、Strategy、Command、Template Methodの具体的なユースケースを学びます。

69

関数型インターフェースを深く学ぶ

B24レッスンPRO

関数型インターフェースを深く学ぶ:FunctionとBiFunction、SupplierとConsumerなど

70

プリミティブストリーム

B24レッスンPRO

プリミティブストリーム:IntStreamとLongStream、範囲指定と集約操作など

71

境界付きワイルドカードとPECS

B24レッスンPRO

境界付きワイルドカードとPECS:上限付きワイルドカード、下限付きワイルドカードなど

72

インターフェースとジェネリクス

B23レッスンPRO

インターフェースの実践と、より安全で再利用可能なコードを書くためのJavaジェネリクスの基礎を学びます。

73

Javaカスタムアノテーション

B24レッスンPRO

カスタムアノテーション、保持ポリシー、適用対象を定義し、リフレクションによる実行時処理とアノテーションプロセッサによるコンパイル時処理を学びます。

74

高度なStream操作とSpliterator

B24レッスンPRO

Streamの高度な機能を使いこなします。ネストした構造へのflatMap、デバッグ用のpeek、parallel streamの落とし穴、Spliteratorの内部構造、無限ストリームを学びます。

75

Spring Boot:設定と依存性注入

B24レッスンPRO

Spring Bootの自動設定、アプリケーションプロパティ、profiles、@Bean、@Component、@Service、@Repository、コンストラクタインジェクションのベストプラクティスを習得します。

76

Spring Data JPA:エンティティとリポジトリ

B24レッスンPRO

JPAアノテーションでJavaのエンティティをデータベースのテーブルにマッピングし、Spring Dataリポジトリを定義します。JPQLやネイティブクエリの記述、リレーションの扱いも学びます。

77

Spring Boot REST API:バリデーションとエラーハンドリング

B24レッスンPRO

堅牢なREST APIを構築します。@ValidによるBean Validation、カスタムバリデータ、@ControllerAdviceによるグローバルな例外処理、RFC 7807のproblem detailsを扱います。

78

JUnit 5でのテスト:パラメータ化テストと統合テスト

B24レッスンPRO

基本的なユニットテストの先へ進みます。@MethodSourceや@CsvSourceによるパラメータ化テスト、データベース統合のためのTestcontainers、Spring Bootのテストスライスを学びます。

79

Javaセキュリティ:ハッシュ化、暗号化、JWT

B24レッスンPRO

Javaでセキュリティの基礎を実装します。ハッシュ化のためのMessageDigest、AES暗号化、HMAC-SHA256、外部の認証ライブラリを使わないJWTの生成と検証を扱います。

80

Javaモジュールシステム(JPMS)

B24レッスンPRO

Javaモジュールシステム(JPMS):module-info.java、requiresとexportsなど

81

モダンHTTPクライアント

B24レッスンPRO

モダンHTTPクライアント:java.net.http.HttpClient、非同期リクエストなど

82

GraalVMとNative Image

B24レッスンPRO

GraalVMとNative Image:GraalVMとは?Native Imageの構築など

83

ラムダと関数型インターフェース

B23レッスンPRO

Javaのラムダ式と関数型インターフェースについて学びます。

84

ストリーム I:パイプライン

B23レッスンPRO

Java Streamsを使い、パイプラインでデータを処理する方法を学びます。

85

Spring Boot入門

B23レッスンPRO

Spring Bootを始めましょう。プロジェクトをセットアップし、starterを使い、最初のアプリを実行します。

86

データとサービス

B23レッスンPRO

リポジトリを使ってSpring Data JPAとH2データベースを利用する方法を学びます。

87

テストとデリバリー

B23レッスンPRO

WebTestClient/JUnit、設定、パッケージングを使ってSpringアプリをテストします。

88

ミニプロジェクト:REST API

B24レッスンPRO

Spring BootでREST APIを設計、実装、テストします。

89

JavaのExecutorServiceとスレッドプール

C14レッスンPRO

ExecutorServiceでスレッドのライフサイクルを管理します。固定、キャッシュ、スケジュール型スレッドプール、Callableタスクの送信、Futureの結果処理を学びます。

90

JavaのロックとAtomic変数

C14レッスンPRO

synchronizedの先へ進み、ReentrantLock、ReadWriteLock、StampedLock、AtomicInteger、AtomicReference、ロックフリーなデータ構造のパターンを扱います。

91

並列ストリームとパフォーマンス

C14レッスンPRO

並列ストリームとパフォーマンス:並列ストリームの作成、並列化が役立つ場合など

92

Javaのメモリ管理とガベージコレクション

C14レッスンPRO

JVMのメモリモデルを理解します。ヒープ領域(Young/Old/Metaspace)、GCアルゴリズム(G1、ZGC)、メモリリーク、JVisualVMによるプロファイリング、チューニング用フラグを扱います。

93

Java CompletableFutureと非同期パイプライン

C14レッスンPRO

CompletableFutureで非同期処理を組み立てます。thenApply、thenCompose、allOf、anyOf、exceptionally、およびノンブロッキングなパイプラインの構築を学びます。

94

Javaリフレクションと動的プロキシ

C14レッスンPRO

Reflection APIを使って実行時にクラスを調査・呼び出しし、動的プロキシを作成します。Springなどのフレームワークが内部でどのようにリフレクションを利用するかも理解します。

95

JVM内部:クラスローディングとバイトコード

C14レッスンPRO

JVMの内部を詳しく見ていきます。クラスロードの各段階、bootstrap/extension/application loaderの階層、javapによるバイトコード検査、JITコンパイルの基礎を扱います。

96

仮想スレッド(Project Loom)

C14レッスンPRO

仮想スレッド(Project Loom):仮想スレッドとは?仮想スレッドの作成など

97

構造化された並行性

C14レッスンPRO

構造化された並行性:構造化された並行性モデル、StructuredTaskScopeなど

98

JMHによるマイクロベンチマーク

C14レッスンPRO

JMHによるマイクロベンチマーク:JMHを使う理由、ベンチマークの作成など

99

Javaのパフォーマンスプロファイリングとチューニング

C14レッスンPRO

Javaのパフォーマンスプロファイリングとチューニング:ボトルネックの特定、Java Flight Recorderなど

100

ストリーム II:パフォーマンスと注意点

C13レッスンPRO

順序制御や短絡評価など、Streamsの高度な動作について学びます。

101

並行処理 I

C12レッスンPRO

Threads、Executors、同期処理を使ったJava並行処理の概要を学びます。

102

並行処理 II

C13レッスンPRO

高度な並行処理を学びます。同期処理、ロック、アトミック操作、よくある問題を扱います。

103

ミニプロジェクト:並列統計

C13レッスンPRO

Streamsと並行処理を使って統計情報を並列計算するプロジェクトを作成します。

104

Foreign Function and Memory API

C24レッスンPRO

Foreign Function and Memory API:JNIではなくFFMを使う理由、MemorySegmentとArenaなど

よくある質問

よくある質問

Java Academyコースは無料ですか?

はい。Java Academyコースは無料で始められ、インタラクティブレッスンをすべて無料で完了できます。オプションのPRO登録で、高度なAIツールと共有可能な認定資格がアンロックされます。

JAVAを学ぶのに事前経験は必要ですか?

いいえ。コースは基礎から始まり、より高度なトピックへと進むので、JAVAの事前経験がなくても始められます。

CoddyKitでJAVAをどのように学びますか?

実践しながら学びます。短いインタラクティブレッスンは、わかりやすい説明と、リアルタイムで実行される実践的なコード演習が組み合わさっており、24時間対応のAIチューターがわからないときにいつでもサポートします。

Java Academyを完了すると認定資格がもらえますか?

はい。PRO学習者は試験を受けて、Java Academyコースの完了を証明する共有可能な認定資格を取得できます(認証コード付き)。

スマートフォンでJAVAを学べますか?

はい。CoddyKitはウェブとネイティブiOS・Androidアプリで利用でき、どのデバイスでもJAVAを学習でき、進捗がすべてのデバイスで同期されます。

Java Academyを今すぐ始める

AI搭載レッスンでプログラミングをマスターする数千人の学習者に参加しましょう。

無料で始める →すべてのコースを見る