Java / LESSON 01 / JV01

Java:Javaとは・環境構築

1学習の目的

2基礎解説

Javaは業務システムで最も使われている言語の1つです。銀行・保険・製造業の基幹システム、Androidアプリ、大規模Webサービス——安定性と長期運用が求められる場面で選ばれてきました。

特徴内容意味
コンパイル型実行前に変換が必要間違いを実行前に発見
静的型付け変数の型を宣言する大規模でも壊れにくい
オブジェクト指向クラス中心の設計部品として再利用しやすい
実行環境JVM上で動くOSを問わず同じ動作
✅ 環境構築の手順(JDKのインストール)
  1. 必要なのは「JDK」(Java Development Kit)。JRE では開発できません——JREは実行専用で、コンパイラ(javac)が入っていない。ここを間違える人が非常に多い。
  2. おすすめは Eclipse Temurin(無料・商用利用可)。「Adoptium Temurin ダウンロード」で検索し、LTS版(現在はJava 21)を選ぶ。最新版より安定している。
  3. Windows:ダウンロードした .msi を実行。インストール中に「Set JAVA_HOME variable」「Add to PATH」に必ずチェックを入れる——これを忘れるとコマンドが動かない。
  4. Mac.pkg を実行するだけ。PATHは自動で通る。Homebrewを使うなら brew install --cask temurin でも可。
  5. 確認方法:ターミナル(Windowsならコマンドプロンプト)で java -versionjavac -version を実行。両方でバージョンが表示されれば成功
⚠ うまくいかないときの対処
  1. 'javac' は認識されていません → PATHが通っていない。Windowsならインストーラーをもう一度実行し、PATHのチェックを入れ直す。
  2. java は動くが javac が動かない → JREだけが入っている状態。JDKを入れ直す
  3. コマンドプロンプトを開き直す。インストール直後は設定が反映されていないことがある。

実行方法:Main.java というファイルに書き、ターミナルで java Main.java と打つだけ。Java 11以降はコンパイルの手順を省略できます(学習中はこれで十分)。

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

// ▼ 各部分の意味
// public class Main   … Main という名前のクラスを作る
//                       ファイル名は Main.java にする
// public static void main(String[] args)
//                     … プログラムの入口。ここから実行が始まる
//                       この1行は「決まった形」として覚えてよい
// System.out.println  … 画面に出力して改行する

// 出力の種類
System.out.println("改行あり");   // 最後に改行
System.out.print("改行なし");      // 改行しない

// 文字列と数値をつなぐ
System.out.println("価格:" + 128000 + "円");

// コメント
// 1行コメント
/* 複数行の
   コメント */

3基本ドリル(10問)

JV01-D01 Hello, World! と出力するJavaプログラムを書け(クラス名は Main)。 コーディング★☆☆無料
期待される結果

出力 == Hello, World!

ヒント

public class Main { public static void main(String[] args) { ... } } の形で書く。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
解説

これがすべてのJavaプログラムの出発点main メソッドから実行が始まるという決まりがある。

JV01-D02 Javaの開発に必要なのはどれか。
A. JRE B. JDK C. JVM D. どれでもよい
選択★☆☆無料
期待される結果

解答 == B

ヒント

Development Kit(開発キット)の略。

模範解答
B
解説

JREには javac が入っていないので開発できない。「javaは動くのに javacが動かない」ときは、JREだけが入っている状態を疑う。

JV01-D03 2行出力するプログラムを書け(1行目「1行目」、2行目「2行目」)。 コーディング★☆☆無料
期待される結果

出力2行

ヒント

System.out.println を2回書く。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.println("1行目");
        System.out.println("2行目");
    }
}
解説

println は出力のあと改行する(print line の略)。改行したくないときは print を使う。

JV01-D04 画面に出力するコードを完成させよ。 穴埋め★☆☆無料
コード
public class Main {
    public static void main(String[] args) {
        System.out.____("こんにちは");
    }
}
期待される結果

出力 == こんにちは

ヒント

「1行出力する」を意味する7文字のメソッド名。

模範解答
println
解説

println の最後は「エル」ではなく小文字の「エヌ」printIn(大文字のアイ)と書き間違えると cannot find symbol というエラーになる——初心者が最も多く踏む罠。

JV01-D05 ファイル名が Main.java のとき、クラス名はどうすべきか。
A. main B. Main C. 何でもよい D. Java
選択★☆☆無料
期待される結果

解答 == B

ヒント

大文字小文字も含めて一致させる。

模範解答
B
解説

public class の名前とファイル名は一致させるのが決まり。Main.java なら public class Main と書く。

JV01-D06 print と println の違いを確認せよ。「改行」「なし」を print で続けて出力し、その後 println で「改行あり」と出力すること(結果は2行になる)。 コーディング★★☆広告解放
期待される結果

出力2行。改行なし / 改行あり

ヒント

print は改行しない。println() で空の改行を入れられる。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.print("改行");
        System.out.print("なし");
        System.out.println();

        System.out.println("改行あり");
    }
}
解説

print は改行しないので、続けて書くと同じ行に並ぶprintln() をカッコの中身なしで呼ぶと、改行だけを出力できる。

JV01-D07 プログラムの入口となるメソッド名を補ってコードを完成させよ。 穴埋め★★☆広告解放
コード
public class Main {
    public static void ____(String[] args) {
        System.out.println("開始");
    }
}
期待される結果

出力 == 開始

ヒント

「主要な」を意味する4文字。プログラムの実行はここから始まる。

模範解答
main
解説

Javaは main メソッドを探して実行を始める。名前が違うと「メインクラスが見つかりません」というエラーになる。

JV01-D08 System.out.println("x")末尾のセミコロンを忘れるとどうなるか。
A. 動く B. コンパイルエラー(';' expected) C. 警告だけ出る D. 空行が出る
選択★★☆広告解放
期待される結果

解答 == B

ヒント

Javaは文の終わりにセミコロンが必須。

模範解答
B
解説

error: ';' expected と表示される。Javaは1文ごとにセミコロンが必要で、これを忘れると実行にすら進めない。

JV01-D09 文字列と数値をつなげて「価格:128000円」と出力せよ(数値は直接書き、+ でつなぐこと)。 コーディング★★☆広告解放
期待される結果

出力 == 価格:128000円

ヒント

"価格:" + 128000 + "円" のように + でつなぐ。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.println("価格:" + 128000 + "円");
    }
}
解説

文字列と数値を + でつなぐと、数値が文字列に変換される。この性質は便利だが、計算と混ざると意外な結果になることもある(JV03で扱う)。

JV01-D10 コメントを含むプログラムを書け(1行コメント「ここから処理」と複数行コメントを入れ、「本文のみ」と出力すること)。 コーディング★★☆広告解放
期待される結果

出力 == 本文のみ

ヒント

// は1行、/* */ は複数行のコメント。

模範解答
public class Main {
    public static void main(String[] args) {
        // ここから処理

        /* 複数行の
           コメントです */

        System.out.println("本文のみ");
    }
}
解説

コメントは実行されない。処理の意図を書き残しておくと、後から読む自分や他の人が理解しやすくなる。

4実践シナリオ(5問)

JV01-S01 【自己紹介】3行で自己紹介を出力するプログラムを書け(「山田太郎」「Javaを勉強中です」「よろしくお願いします」)。 コーディング★★☆広告解放
期待される結果

出力3行

ヒント

println を3回使う。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.println("山田太郎");
        System.out.println("Javaを勉強中です");
        System.out.println("よろしくお願いします");
    }
}
解説

1行ずつ println を並べるのが基本。まずは動くものを書き、慣れてから効率的な書き方を覚えればよい。

JV01-S02 【計算結果の出力】128000円の商品を3個買ったときの合計を計算し、「合計:384000円」と出力せよ(計算式を直接書くこと)。 コーディング★★☆広告解放
期待される結果

出力 == 合計:384000円

ヒント

"合計:" + (128000 * 3) + "円" のように書く。カッコに注意。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.println("合計:" + (128000 * 3) + "円");
    }
}
解説

掛け算をカッコで囲むのが重要。もし "合計:" + 128000 * 3 ならカッコ無しでも正しく計算されるが、足し算だと文字列連結になってしまう——次の問題で確認する。

JV01-S03 【連結の罠】カッコの有無で結果が変わることを確認せよ。「答え:」の後に 100 + 200 を、カッコありとカッコなしの2通りで出力すること。 コーディング★★☆広告解放
期待される結果

出力2行。答え:300 / 答え:100200

ヒント

カッコが無いと、左から順に文字列連結されてしまう。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.println("答え:" + (100 + 200));
        System.out.println("答え:" + 100 + 200);
    }
}
解説

カッコが無いと 100200 になる。「答え:」と100が連結されて文字列になり、そこへ200がさらに連結されるため。計算は必ずカッコで囲むのが安全。

JV01-S04 【レシート風の出力】print と println を組み合わせ、次の3行を出力せよ。
「=== レシート ===」
「ノートPC × 2」
「合計:256000円」
コーディング★★★広告解放
期待される結果

出力3行

ヒント

すべて println でもよいが、print を使って組み立ててもよい。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.println("=== レシート ===");

        System.out.print("ノートPC");
        System.out.println(" × 2");

        System.out.println("合計:" + (128000 * 2) + "円");
    }
}
解説

print と println は組み合わせて使える。複雑な行を部品に分けて組み立てたいときに便利。

JV01-S05 【税込計算】税抜128000円の商品の税込価格(10%)を計算し、「税込:140800円」と出力せよ(Math.round で四捨五入すること)。 コーディング★★★広告解放
期待される結果

出力 == 税込:140800円

ヒント

Math.round(128000 * 1.1) で四捨五入できる。

模範解答
public class Main {
    public static void main(String[] args) {
        System.out.println("税込:" + Math.round(128000 * 1.1) + "円");
    }
}
解説

Math.round は四捨五入するメソッド128000 * 1.1 は小数になるため、そのまま出力すると 140800.00000000003 のような値が出てしまう。

5仕上げ課題

JV01-FINAL 【注文明細の出力】ここまでの内容を使って、注文明細を出力するプログラムを書け。

クラス名Main(ファイル名は Main.java

出力する内容(6行)
=== ゼロカラ商店 ===
ノートPC 128000円 × 2
マウス 3200円 × 3
------------------
小計:265600円
税込:292160円


条件
・小計は 128000 * 2 + 3200 * 3計算式として書く(答えを直接書かない)
・税込は小計の1.1倍を Math.round で四捨五入
・計算部分は必ずカッコで囲む
・プログラムの先頭に「注文明細を出力する」というコメントを入れる
総合★★★広告解放
期待される結果

出力6行が完全一致

ヒント

文字列と計算を + でつなぐとき、計算式は必ずカッコで囲む。Math.round(小計 * 1.1) で税込価格を求める。小計は 256000 + 9600 = 265600。

模範解答
public class Main {
    public static void main(String[] args) {
        // 注文明細を出力する

        System.out.println("=== ゼロカラ商店 ===");
        System.out.println("ノートPC 128000円 × 2");
        System.out.println("マウス 3200円 × 3");
        System.out.println("------------------");

        System.out.println("小計:" + (128000 * 2 + 3200 * 3) + "円");
        System.out.println("税込:" + Math.round((128000 * 2 + 3200 * 3) * 1.1) + "円");
    }
}
解説

環境構築を終え、最初のプログラムが動いた。ここまで来れば、Javaの入口は突破できている。

public class Mainpublic static void main(String[] args)——この2行は、正直なところ今の段階では「決まった形」として覚えてしまってよい。それぞれの単語の意味(public、static、void、String[])は、JV08以降のクラスやメソッドの章で自然に理解できるようになる。意味が分からないまま丸暗記するのは気持ち悪いかもしれないが、先に手を動かしたほうが習得は早い。

この課題で最も重要なのは計算式をカッコで囲むことだ。もし "小計:" + 128000 * 2 + 3200 * 3 + "円" と書いたらどうなるか。掛け算は先に計算されるが、その後は左から順に文字列連結が進み、「小計:2560009600円」という奇妙な出力になる。文字列と数値が混ざる場面では、意図した計算がされているか常に疑う——これはJava特有ではなく、多くの言語に共通する注意点だ。

そして Math.round265600 * 1.1 をそのまま出力すると 292160.00000000006 のような値になる。これはコンピュータが小数を正確に表せないという根本的な性質によるもので、金額を扱うときは必ず意識する必要がある(JV02で詳しく扱う)。

次章では変数と型を学ぶ。今回は数値を直接書いたが、名前を付けて保存することで、プログラムは一気に読みやすく・変更しやすくなる。