本文へスキップ
totonoe.tech

プログラミング言語を整える

初級

Java Bronze を整える。

= Java の入門資格 Bronze の試験範囲を、章ごとの練習問題で確かめる

Java Bronze が初めての方は、先に そもそも Java Bronze とは・どんな場面で役立つか をどうぞ。

もう一つ上の資格は Java Silver を整える にあります。

試験の概要

試験名
Java SE Bronze
試験番号
1Z0-818-JPN
資格
Oracle Certified Java Programmer, Bronze SE
形式
選択問題
時間
65分
問題数
60問
合格ライン
60%
位置づけ
言語未経験者向けの入門資格。特定のバージョンに依存せず、配信は続く

出典:Oracle の公式ページ(2026年11月3日時点)。試験の条件や日程は変わることがあるので、申し込む前に公式ページで最新の情報を確かめてください。

いつ・どれを受ける?

受験予定日から、受けられる試験を引く

Java の日本語試験は、バージョンごとに配信の終わる日が決まっています。受験予定日を入れると、その日に受けられるものが出ます。

配信が終わっても、取得済みの資格がすぐに失効するわけではありません。

配信が終わる日の一覧(日付を入れなくても見られます)
  • Bronze(1Z0-818-JPN):配信は続きます。
  • Silver SE 11(1Z0-815-JPN):2026年11月30日に配信終了。
  • Silver SE 17(1Z0-825-JPN):2027年2月28日に配信終了。
  • Silver SE 25 対応:2026年11月下旬から配信予定。試験番号と範囲は未発表です。

Java 資格の試験の切り替わり(NOBORIBA®研修サービスのお知らせ)に、版の切り替わりの詳しい案内があります。

試験範囲マップ

7つの章ごとに、覚えることと練習問題への入口を並べました。範囲の言葉は Oracle の試験内容チェックリストに沿っています。

  1. 1

    Java言語のプログラムの流れ

    • ・Javaプログラムのコンパイルと実行
    • ・Javaテクノロジーの特徴
    • ・Javaプラットフォーム各エディションの特徴

    ここで覚えることソースを javac でコンパイルしてできた .class を java コマンドで動かす、という流れをつかみます。プログラムは main メソッドから上から順に実行され、文は必ずセミコロンで終わります。

    第1章の練習問題(4問)へ

  2. 2

    データの宣言と使用

    • ・Java のデータ型(プリミティブ型、参照型)
    • ・変数や定数の宣言と初期化、値の有効範囲
    • ・配列(一次元配列)の宣言と作成、使用
    • ・コマンドライン引数の利用

    ここで覚えることint や char などのプリミティブ型と、String や配列などの参照型の違いが中心です。整数どうしの割り算は小数にならないこと、配列の添字は 0 から始まることを押さえます。

    第2章の練習問題(5問)へ

  3. 3

    演算子と分岐文

    • ・各種演算子の使用
    • ・演算子の優先順位
    • ・if, if/else文の使用
    • ・switch文の使用

    ここで覚えること++ の前置と後置、+ による文字列の連結、&& や || の短絡評価が定番の引っかけです。switch は break を書かないと次の case へ続けて実行されます。

    第3章の練習問題(4問)へ

  4. 4

    ループ文

    • ・while文の使用
    • ・for文および拡張for文の使用
    • ・do-while文の作成と使用
    • ・ループのネスティング

    ここで覚えることbreak はループを抜け、continue は今回の周回だけを飛ばします。do-while は条件より先に必ず1回実行されます。拡張 for の変数は要素の写しです。

    第4章の練習問題(5問)へ

  5. 5

    オブジェクト指向の概念

    • ・具象クラス、抽象クラス、インタフェース
    • ・データ隠蔽とカプセル化
    • ・ポリモフィズム

    ここで覚えること抽象クラスは new できず、インタフェースのメソッドは実装側で public にします。フィールドを private にして外から直接触らせないのがカプセル化で、実際に動くメソッドは変数の型でなく実体のクラスで決まります。

    第5章の練習問題(4問)へ

  6. 6

    クラスの定義とオブジェクトの使用

    • ・クラスの定義とオブジェクトの生成、使用
    • ・メソッドのオーバーロード
    • ・コンストラクタの定義
    • ・アクセス修飾子 (public, private) の適用とカプセル化
    • ・static 変数および static メソッド

    ここで覚えることstatic は全オブジェクトで共有される1つの値、インスタンス変数はオブジェクトごとの値です。オーバーロードは引数の型で選ばれ、メソッドに渡した int は値のコピーなので呼び出し元は変わりません。

    第6章の練習問題(4問)へ

  7. 7

    継承とポリモフィズム

    • ・サブクラスの定義と使用
    • ・メソッドのオーバーライド
    • ・抽象クラスやインタフェースの定義と実装
    • ・ポリモフィズムを使用するコードの作成
    • ・参照型の型変換
    • ・パッケージ宣言とインポート

    ここで覚えることサブクラスのコンストラクタは、まず親のコンストラクタを呼びます。親の型の変数からは親にあるメソッドしか呼べず、実体と違う型へのキャストは実行時に ClassCastException になります。

    第7章の練習問題(4問)へ

章ごとの練習問題(出力当て)

短い Java のコードを読んで、実行すると何が表示されるかを選びます(全30問)。選ぶと正解と理由が出ます。答えはどこにも送られず、記録もしません。問題はすべてオリジナルで、試験の実際の問題ではありません。

出力は OpenJDK 17 で実際にコンパイル・実行して、答えと一字一句同じになることを確かめたものです(OpenJDK 17.0.21)。「コンパイルエラー」「実行時に例外」が答えの問題も、本物の javac と java で確かめています。

第1章 Java言語のプログラムの流れ

0/4 問正解 (答えた問題:0/4)

問1

public class Main {
    public static void main(String[] args) {
        System.out.print("A");
        System.out.println("B");
        System.out.print("C");
    }
}

実行すると何が表示される?

問2

public class Main {
    public static void main(String[] args) {
        // System.out.println("A");
        /* System.out.println("B");
           System.out.println("C"); */
        System.out.println("D");
    }
}

実行すると何が表示される?

問3

public class Main {
    public static void main(String[] args) {
        String msg = 'Hello';
        System.out.println(msg);
    }
}

実行すると何が表示される?

問4

public class Main {
    static void first() {
        System.out.println("first");
    }
    static void second() {
        System.out.println("second");
        first();
    }
    public static void main(String[] args) {
        System.out.println("start");
        second();
        System.out.println("end");
    }
}

実行すると何が表示される?

第2章 データの宣言と使用

0/5 問正解 (答えた問題:0/5)

問5

public class Main {
    public static void main(String[] args) {
        int a = 7;
        int b = 2;
        double d = a / b;
        System.out.println(d);
    }
}

実行すると何が表示される?

問6

public class Main {
    public static void main(String[] args) {
        int[] scores = new int[3];
        scores[0] = 80;
        scores[1] = 90;
        scores[2] = 70;
        int sum = 0;
        for (int i = 0; i <= scores.length; i++) {
            sum += scores[i];
        }
        System.out.println(sum);
    }
}

実行すると何が表示される?

問7

public class Main {
    public static void main(String[] args) {
        int[] a = new int[3];
        boolean[] f = new boolean[2];
        String[] s = new String[1];
        System.out.println(args.length + " " + a[2] + " " + f[0] + " " + s[0]);
    }
}

条件:コマンドライン引数を付けずに java Main で実行したとき

実行すると何が表示される?

問8

public class Main {
    public static void main(String[] args) {
        char c = 'A';
        System.out.println(c + 1);
        System.out.println((char) (c + 1));
        c++;
        System.out.println(c);
    }
}

実行すると何が表示される?

問9

public class Main {
    public static void main(String[] args) {
        String a = "java";
        String b = "java";
        String c = new String("java");
        System.out.println(a == b);
        System.out.println(a == c);
        System.out.println(a.equals(c));
    }
}

実行すると何が表示される?

第3章 演算子と分岐文

0/4 問正解 (答えた問題:0/4)

問10

public class Main {
    public static void main(String[] args) {
        int i = 5;
        int j = i++ + ++i;
        System.out.println(i + " " + j);
    }
}

実行すると何が表示される?

問11

public class Main {
    public static void main(String[] args) {
        System.out.println(1 + 2 + "3" + 4 + 5);
    }
}

実行すると何が表示される?

問12

public class Main {
    public static void main(String[] args) {
        int n = 0;
        boolean r = (n == 0) || (++n > 0);
        boolean s = (n != 0) && (10 / n > 1);
        System.out.println(r + " " + s + " " + n);
    }
}

実行すると何が表示される?

問13

public class Main {
    public static void main(String[] args) {
        int x = 2;
        switch (x) {
            case 1:
                System.out.println("one");
            case 2:
                System.out.println("two");
            case 3:
                System.out.println("three");
                break;
            default:
                System.out.println("other");
        }
    }
}

実行すると何が表示される?

第4章 ループ文

0/5 問正解 (答えた問題:0/5)

問14

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 6; i++) {
            if (i == 4) break;
            if (i % 2 == 0) continue;
            System.out.print(i);
        }
    }
}

実行すると何が表示される?

問15

public class Main {
    public static void main(String[] args) {
        int n = 10;
        do {
            System.out.println("n=" + n);
            n++;
        } while (n < 5);
        System.out.println("done");
    }
}

実行すると何が表示される?

問16

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 3; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

実行すると何が表示される?

問17

public class Main {
    public static void main(String[] args) {
        int[] a = {1, 2, 3};
        for (int v : a) {
            v = v * 2;
        }
        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            sum += a[i];
        }
        System.out.println(sum);
    }
}

実行すると何が表示される?

問18

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            System.out.print(i);
        }
        System.out.println(i);
    }
}

実行すると何が表示される?

第5章 オブジェクト指向の概念

0/4 問正解 (答えた問題:0/4)

問19

abstract class Shape {
    abstract double area();
}

public class Main {
    public static void main(String[] args) {
        Shape s = new Shape();
        System.out.println(s.area());
    }
}

実行すると何が表示される?

問20

class Account {
    private int balance = 100;
}

public class Main {
    public static void main(String[] args) {
        Account a = new Account();
        a.balance = 200;
        System.out.println(a.balance);
    }
}

実行すると何が表示される?

問21

class Animal {
    String sound() { return "..."; }
}

class Dog extends Animal {
    String sound() { return "Woof"; }
}

class Cat extends Animal {
    String sound() { return "Meow"; }
}

public class Main {
    public static void main(String[] args) {
        Animal[] zoo = { new Dog(), new Animal(), new Cat() };
        for (Animal a : zoo) {
            System.out.println(a.sound());
        }
    }
}

実行すると何が表示される?

問22

interface Payable {
    int pay();
}

class Salary implements Payable {
    public int pay() { return 300; }
}

class Bonus implements Payable {
    public int pay() { return 50; }
}

public class Main {
    public static void main(String[] args) {
        Payable[] items = { new Salary(), new Bonus(), new Salary() };
        int total = 0;
        for (Payable p : items) {
            total += p.pay();
        }
        System.out.println(total);
    }
}

実行すると何が表示される?

第6章 クラスの定義とオブジェクトの使用

0/4 問正解 (答えた問題:0/4)

問23

class Counter {
    static int total = 0;
    int id;

    Counter() {
        total++;
        id = total;
    }
}

public class Main {
    public static void main(String[] args) {
        Counter a = new Counter();
        Counter b = new Counter();
        Counter c = new Counter();
        System.out.println(a.id + " " + c.id + " " + Counter.total);
    }
}

実行すると何が表示される?

問24

public class Main {
    static void show(int x) { System.out.println("int"); }
    static void show(long x) { System.out.println("long"); }
    static void show(double x) { System.out.println("double"); }

    public static void main(String[] args) {
        char c = 'a';
        show(c);
        show(3L);
        show(2.5f);
    }
}

実行すると何が表示される?

問25

class Box {
    Box() {
        this(5);
        System.out.println("A");
    }

    Box(int size) {
        System.out.println("B" + size);
    }
}

public class Main {
    public static void main(String[] args) {
        new Box();
    }
}

実行すると何が表示される?

問26

public class Main {
    static void addOne(int n, int[] arr) {
        n = n + 1;
        arr[0] = arr[0] + 1;
    }

    public static void main(String[] args) {
        int x = 10;
        int[] y = {10};
        addOne(x, y);
        System.out.println(x + " " + y[0]);
    }
}

実行すると何が表示される?

第7章 継承とポリモフィズム

0/4 問正解 (答えた問題:0/4)

問27

class Parent {
    Parent() { System.out.println("P"); }
}

class Child extends Parent {
    Child() { System.out.println("C"); }
}

public class Main {
    public static void main(String[] args) {
        new Child();
    }
}

実行すると何が表示される?

問28

class Animal {}

class Dog extends Animal {}

public class Main {
    public static void main(String[] args) {
        Animal a = new Animal();
        Dog d = (Dog) a;
        System.out.println("ok");
    }
}

実行すると何が表示される?

問29

class Animal {
    void eat() { System.out.println("eat"); }
}

class Dog extends Animal {
    void fetch() { System.out.println("fetch"); }
}

public class Main {
    public static void main(String[] args) {
        Animal a = new Dog();
        a.eat();
        a.fetch();
    }
}

実行すると何が表示される?

問30

public class Main {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("a");
        System.out.println(names.size());
    }
}

実行すると何が表示される?

よくある勘違い

  • 7 / 2 は 3.5 になる、と思ってしまう。int どうしの割り算は小数点以下を捨てて 3 です。double の変数に入れても 3.0 で、3.5 にはなりません。
  • 文字列の中身を == で比べられる、と思ってしまう。== は「同じオブジェクトか」を比べます。中身を比べるのは equals です。
  • i++ と ++i は同じ、と思ってしまう。i++ は今の値を使ってから増やし、++i は増やしてから使います。1行に両方あると結果が変わります。
  • switch は一致した case だけが動く、と思ってしまう。break が無いと、一致した所から下の case へそのまま続けて実行されます。
  • 配列の添字は 1 から始まる、と思ってしまう。0 から始まるので、要素が3個なら最後の添字は 2 で、length は 3 です。添字に length を使うと実行時に例外です。
  • 親クラスの型の変数からでも、子クラスだけのメソッドを呼べる、と思ってしまう。コンパイラは変数の型で調べるので、キャストするまでは呼べません。
  • メソッドに渡した int を中で変えたら、呼び出し元も変わる、と思ってしまう。渡されるのは値のコピーなので変わりません。配列の中身は、場所のコピーが渡るので変わります。

そもそも Java Bronze とは

Java を初めて学ぶ人が、基本を身につけたことを示す入門の資格。

Java Bronzeは、Oracle が行っている Java の認定資格のうち、いちばん入門にあたるものです。Oracle の公式ページでは、言語未経験者向けの資格とされています。変数・演算子・if や for・クラスとオブジェクトといった、Java の基本の書き方と考え方が範囲です。

Silver や Gold のように Java の特定のバージョン(SE 11・SE 17 など)に結びついた試験ではなく、バージョンに依存しない試験です。そのため、Silver の試験が版の切り替わりで入れ替わっても、Bronze の配信は続きます。

Bronze・Silver・Gold の位置づけ

  • Bronze

    入門。基本の文法とオブジェクト指向の入り口。このページが対象です。

  • Silver

    Bronze の次。継承・インタフェース・例外処理などを、Java のバージョンに沿って問います。Java Silver を整えるへ。

  • Gold

    Silver の上の資格です。このサイトではまだ扱っていません。

どんな場面で役立つか

  • 新人研修のゴールとして

    Java を使う会社の新人研修で、基本が身についたかを確かめる目安にできます。

  • 未経験からの学び直しで

    独学だと「どこまでやればよいか」が見えにくいので、試験範囲が学習の道しるべになります。

  • コードを読む力の確認に

    「このコードを実行すると何が出るか」を手で追う力は、業務システムの保守でも使います。

  • Silver へ進む土台に

    Bronze の範囲は、Silver の範囲の土台にもなっています。

言語そのものの紹介は Java を整える、情報処理の入口の国家資格は ITパスポートを整えるにあります。

あわせて見る

Oracle、Java は Oracle およびその関連会社の商標または登録商標です。このページは Oracle の公式のものではなく、試験の合格を保証するものでもありません。

このツールについて

Java の入門資格 Bronze の試験範囲を、章ごとの練習問題で確かめます。出力当てが中心で、答えは本物の Java で確かめたものです。

Java Bronze(1Z0-818-JPN)の試験範囲7章と、章ごとの出力当て練習問題30問。出力は本物の Java で確かめたもの。受験予定日から受けられる Java 試験も引けます。

主な機能

  • 試験の基本(試験番号・形式・65分・60問・合格ライン60%)と Oracle 公式ページへのリンク
  • 「いつ・どれを受ける?」早見(受験予定日から Bronze・Silver SE 11/17/25 を判定)
  • 試験範囲マップ7章と、章ごとの「ここで覚えること」
  • 章ごとの練習問題30問(== と equals・i++・switch の fall-through・オーバーロードなど)
  • 章ごとの正答数表示(記録は保存しない)
  • よくある勘違い7つ
  • 出力は OpenJDK 17 で照合済み・送信ゼロ

よくある質問

Q. Java Bronze の試験はどんな形式ですか?

A. 試験番号は 1Z0-818-JPN、選択問題で、試験時間は65分、問題数は60問、合格ラインは60%です(Oracle の公式ページで2026年11月3日に確認)。条件は変わることがあるので、申し込む前に公式ページで確かめてください。

Q. Java SE 11 や 17 の試験が終わると、Bronze も受けられなくなりますか?

A. いいえ。Bronze は特定の Java のバージョンに依存しない試験で、配信は続きます。配信が終わるのは Silver・Gold の SE 11 と SE 17 の日本語試験です。ページの早見に受験予定日を入れると、その日に受けられる試験が分かります。

Q. 練習問題は実際の試験の問題ですか?

A. いいえ。Oracle は試験の内容の公開を禁じているため、試験の実際の問題は使っていません。出題範囲に沿ってこのサイトで作ったオリジナルの問題です。出力や答えは OpenJDK 17 で実際にコンパイル・実行して確かめています。

入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。

続けて整える

データの時点:2026年11月3日に確認(Oracle University『Java認定試験の提供予定』(2026/9/7))  次の更新予定:2026年11月ごろ

データの更新予定の一覧

totonoe.tech を運営する株式会社Koinobori は、法人向けの研修サービス「NOBORIBA®」も運営しています。 ここで手を動かした内容を、講師から教わる形の研修です。このページの道具は無料のまま、登録もいりません。

運営サイト

私たちが運営するサイト