Javaの基礎知識(基礎編)

【Javaの基礎知識】変数、リテラル、基本データ型について解説!

Javaは、世界中で広く使われているプログラミング言語のひとつです。プログラムを作成する上で、「変数」「データ型」「演算子」の理解は欠かせません。本記事では、初心者でも分かりやすいように、Eclipse上で実行できるシンプルなコードを使いながら、これらの基礎を解説します。

Javaの基本概念

Javaは、世界中で広く利用されているプログラミング言語のひとつです。オブジェクト指向の特性を持ち、さまざまなプラットフォームで動作する柔軟性の高さが特徴です。Webアプリケーション、業務システム、Androidアプリなど、多くの分野で採用されており、特に大規模なシステム開発で活躍しています。

プログラミングを学ぶ上で、まず理解すべき重要なポイントが 「変数」「データ型」「演算子」 です。これらは、Javaでデータを扱い、計算や処理を行うための基礎となる概念です。本記事では、それぞれの役割や使い方を初心者向けに分かりやすく解説していきます。

Javaとは?

Javaは、世界中で広く使われているプログラミング言語のひとつです。Windows、Mac、LinuxなどのOSに依存せず動作し、Webアプリケーションやスマートフォンアプリ、業務システムなど幅広い用途で活用されています。

Javaの特徴

  • プラットフォームに依存せず動作する(「Write Once, Run Anywhere」)
  • オブジェクト指向プログラミングを採用
  • 豊富なライブラリが用意されている
  • セキュリティ対策が強固
  • 大規模システムやAndroidアプリ開発に活用されている

本記事で解説するJavaの基礎

本記事では、Javaの基本となる以下の3つの要素について詳しく解説します。

  • 変数: データを格納するための領域
  • データ型: 扱うデータの種類を定義する仕組み
  • 演算子: 数値や変数を操作するための記号

Javaの基本的なコード例

以下は、Javaで「Hello, World!」を表示する基本的なプログラムです。

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

このプログラムは、コンソールに "Hello, World!" と出力する最も基本的なJavaのコードです。これを基に、変数・データ型・演算子を順番に学んでいきましょう。

変数の基礎

変数とは「データを入れておくことができる箱」です。Javaでは、変数によって値を一時的に保管しておくことが可能です。後で必要な時に変数から値を取り出します。簡単に言うと、パソコンで処理をするときに、データを代入して効率的に処理をする箱といった認識で良いでしょう。ちょっと小難しそうな名前ですが、変数がやりたいことは至って単純です。

変数とは?

変数とは、プログラムの中でデータを一時的に保存するための領域です。 Javaでは、変数を定義することで数値や文字列などのデータを保持し、処理の中で活用できます。 例えば、計算結果を格納したり、ユーザーの入力を保存したりする場合に使用されます。

Javaの変数の種類

Javaの変数は、スコープ(使用可能な範囲)によって以下の3種類に分類されます。

変数の種類特徴
ローカル変数メソッドやブロック内でのみ使用できる変数。
インスタンス変数クラスの中で定義され、オブジェクトごとに異なる値を持つ。
クラス変数(static)クラス全体で共有される変数。

変数の宣言と代入

Javaでは、変数を使用する前に宣言し、値を代入する必要があります。 以下は、整数型の `int` 変数と文字列型の `String` 変数を宣言し、値を代入する例です。

int number = 10;
String name = "BePro";

上記のコードでは、
int number = 10; → 整数型の変数 `number` に `10` を代入しています。
String name = "BePro"; → 文字列型の変数 `name` に `"BePro"` を代入しています。

このように、変数の型を指定して適切なデータを格納することで、プログラム内で柔軟にデータを扱うことができます。

変数名(識別子)

変数を使うにはデータ型と変数名を指定する必要があります。変数に名前を付け、クラス内で宣言することで、以降その名前が変数の識別子として認識されます。ちなみに変数の名前は、適当に選んで決めることが出来ます。

ただし、識別子には、次のような規則が存在します。

識別子の規則

  • 通常、識別子には、英字・数字・アンダースコア・$を使用する。
  • 識別子の長さには制限はない。
  • 予めJavaが予約しているキーワードを使用することは出来ない。
    「class」や「main」等
  • 識別子の1文字目に数値を使用することは出来ない。
  • 大文字と小文字は異なるものとして区別される。

変数を使ってみよう

今度は「変数」を使ってみましょう。

Java変数の書式

データ型 変数 = 値;

実際に変数を使ってみましょう。

[Main.java (main method)]

コンソール

Hello Java World!
11

データ型の基礎

データ型は変数を宣言するのと同時に指定する必要があるのは「変数を使ってみよう」の項でお話しした通りです。基本データ型とはデータ型の中でも最も基礎とされている8つのデータ型のことです。

Javaのデータ型は、プログラム内で扱うデータの種類を定義するために使用されます。 適切なデータ型を選択することで、効率的なメモリ管理や計算処理が可能になります。 Javaのデータ型は、大きく プリミティブ型(基本データ型)参照型(オブジェクト型) に分類されます。

プリミティブ型(基本データ型)

プリミティブ型は、最も基本的なデータ型であり、数値や文字、論理値などを直接扱います。 基本データ型とはデータ型の中でも最も基礎とされている8つのデータ型のことです。

Javaでは次の基本データ型が用意されています。

データ型サイズ範囲
byte1バイト-128 ~ 127
short2バイト-32,768 ~ 32,767
int4バイト-2,147,483,648 ~ 2,147,483,647
long8バイト-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float4バイト±3.4E-38 ~ ±3.4E+38
double8バイト±1.7E-308 ~ ±1.7E+308
char2バイト\u0000 ~ \uffff
booleanJVM依存true または false

int型と他の数値型の使い分け

int 型は、-2,147,483,648 から 2,147,483,647 までの整数 を扱えるデータ型です。 より大きな数を扱いたい場合は long 型を、小数を扱いたい場合は floatdouble を使います。

long型とfloat型の注意点

それぞれのデータ型には、数値を扱う際に特別なルール があります。

  • long 型の数値の最後には 「L」 を付ける必要があります。(例: 10000000000L
  • float 型の数値の最後には 「f」 を付けます。(例: 3.14f

String型「参照型(オブジェクト型)」について

1点注意があります、それは「String型は基本データ型ではない」という点です。 文字列は「オブジェクト」という形で扱うので、基本データ型ではありません。

参照型は、データそのものではなく、オブジェクトの「参照(アドレス)」を保持するデータ型です。 代表的なものとして 文字列(String) や 配列(Array) があります。

String message = "Hello, Java!";
int[] numbers = {1, 2, 3, 4, 5};

参照型とは?

参照型とは、データそのものではなく、「データがどこにあるか(メモリ上のアドレス)」を持つデータ型です。 intchar のようなプリミティブ型は、変数が直接データを持ちますが、 String はデータの場所(アドレス)を保持しているだけ という点が異なります。

Stringの扱い方

文字列リテラルは「ダブルクォーテーション(")」で囲みます。

String greeting = "Hello, Java!";
String name = "BePro";

Stringが参照型である影響

通常、 String は以下のようにリテラルで扱いますが、「new」を使って明示的にオブジェクトを作成することも可能 です。

String str1 = "Hello"; // リテラルで生成(通常の方法)
String str2 = new String("Hello"); // newを使って生成(別のメモリアドレス)

このように、 String は参照型として扱われるため、「new」を使うと新しいメモリ領域が確保される という違いがあります。

charとStringの使い分け

  • char1文字 を扱う(例: 'A'
  • String複数の文字 を扱う(例: "Hello"

int型は-2147483648~2147483647までの整数値を扱えるデータ型です。それ以上大きい値を使いたい場合はlong、少数を扱いたい場合はfloatやdoubleを使います。

「long」は整数値の最後に「L」、「float」は最後に「f」を付ける必要があります。「char」はUnicode文字を扱えます。文字を1文字だけ扱えるデータ型と覚えておきましょう。「boolean」は論理値を扱います。論理値は真偽値とも呼ばれていて、条件分岐の処理をする場合によく使われます。

ではそれぞれの基本データ型で変数を初期化し、コンソールに出力してみましょう。

[Main.java (main method)]

コンソール

-100
12345
1890247139
8329734981172391723
9.987655
-3.230298304829038

true

今の段階では、無理してすべてのデータ型を覚える必要はありません。プログラム全般に言えることですが、いずれ「その時(必要になる)」が必ず来ます。それまでは「いろんな型があるんだな」程度で十分です。

リテラル(文字、文字列、数値)とは?

Javaでは、文字と文字列、数値の記述方法が厳格に区別されています。1つの文字を「文字」、文字の並びを「文字列」、整数や浮動小数点数等を「数値」として区別して扱っています。

Javaでは、一定の「値」を表すために用いられる表記方法を「リテラル」と呼びます。

文字リテラル「’」

「'a'」や「’あ’」のような、1つの文字を「文字リテラル」と呼びます。javaのコード内で「'(シングルクォーテーション)」で括って記述します。

また、文字の中には、1文字で記述できない特殊な文字が存在します。「¥1000-」と出力する場合などがそれにあたります。その場合は、1文字目に「¥」を付けて2文字の組み合わせで「1文字」を表します。これを「エスケープシーケンス」と呼びます。

[Main.java (main method)]

public static void main(String[] args) {
    int yen = 1000;
    // エスケープシーケンスを使用して「¥」記号を表す
    System.out.println("金額は、\\\\" + yen + "-になります。");
}

コンソール

金額は、¥1000-になります。

文字列リテラル「’’」

「”aaa”」や「"あああ"」のような、複数の文字の並びを「文字列リテラル」と呼びます。javaのコード内で文字列を記述するには「"(ダブルクォーテーション)」で括って記述します。

[Main.java (main method)]

public static void main(String[] args) {
    // 文字列「"Hello Java World!"」の出力
    String str = "Hello Java World!";
    System.out.print(str);
}

コンソール

Hello Java World!

数値リテラル

数値を表記する場合には、文字や文字列の場合とは異なり「クォーテーション」では括りません。誤って括ってしまうと文字や文字列として扱われてしまうので意図しない動作の原因になってしまうことがあるので注意してください。

[Main.java (main method)]

public static void main(String[] args) {
    // 数値リテラル「1234567890」の出力
    int num = 1234567890;
    System.out.print(num);
}

コンソール

1234567890

Javaの数値リテラルは、10進数以外にも8進数や16進数を使って表すことも可能です。

エスケープシーケンスが必要なケース

エスケープシーケンスは、プログラム内で特定の記号や制御文字を扱う際に使用されます。 通常の文字とは異なり、バックスラッシュ(\)を使って特殊な意味を持たせる ことで、 改行やタブ、クォーテーションなどを適切に表現できます。

エスケープシーケンス意味
\bバックスペース
\t水平タブ
\n改行
\f改ページ
\r復帰
\'シングルクォーテーション
\"ダブルクォーテーション
\\バックスラッシュ(円記号)

たとえば、以下のようなケースでは、エスケープシーケンスが必要になります。

  • シングルクォーテーション `'` や ダブルクォーテーション `"` を文字として扱いたいとき**

    → `char quote = '\'';` // シングルクォートを扱う

    → `String text = "He said, \"Hello!\"";` // ダブルクォートを扱う
  • 改行タブをコード内に埋め込みたいとき

    → `System.out.println("Hello\nWorld");` // `\n` で改行

    → `System.out.println("Item\tPrice");` // `\t` でタブ
  • ファイルパス特殊文字(バックスラッシュ `\`)を含める必要があるとき

    → `String path = "C:\\Program Files\\Java";` // Windowsのパス表記

    → `System.out.println("C:\\Users\\BePro");` // `\\` でバックスラッシュを表現
  • バックスペース改ページを扱う場合

    → `System.out.println("Hello\bWorld");` // `\b` でバックスペース(1文字削除)

    → `System.out.println("Page1\fPage2");` // `\f` で改ページ

エスケープシーケンスは、コードの可読性を向上させ、適切に制御文字を表現するために欠かせない要素 です。 特に文字列を扱う際には、適切にエスケープを行うことで、意図しないエラーを防ぐことができます。

注意: Windows の日本語環境では、バックスラッシュ( \)が 「¥(円マーク)」 と表示されることがありますが、
プログラム内では 常に「\」を使います。

演算子の基礎

演算子とは?

演算子(オペレーター)とは、プログラム内で数値や変数を操作するための記号です。 Javaには複数の演算子があり、それぞれ異なる目的で使用されます。 ここでは、算術演算子、比較演算子、論理演算子について詳しく解説します。

算術演算子(計算に使う演算子)

算術演算子は、数値の計算を行うための演算子です。 加算、減算、乗算、除算、剰余の5種類が用意されています。

演算子説明
+加算

int sum = 10 + 5;

-減算

int diff = 10 - 5;

*乗算

int product = 10 * 5;

/除算

int quotient = 10 / 5;

%剰余(余り)

int remainder = 10 % 3;

比較演算子(値を比較する演算子)

比較演算子は、2つの値を比較し、結果を true または false で返す演算子です。 主に条件分岐( if 文など)で使用されます。

  • == (等しい)
  • != (等しくない)
  • > (大きい)
  • < (小さい)

boolean result = (10 > 5); // true

論理演算子(条件を組み合わせる演算子)

論理演算子は、複数の条件を組み合わせて、真偽を判定するために使用します。 主に条件式を柔軟に制御するために利用されます。

演算子説明
&&AND(両方がtrueならtrue)

(10 > 5) && (5 > 2); // true

||OR(どちらかがtrueならtrue)

(10 > 5) || (5 < 2); // true

!NOT(真偽を反転)

boolean isFalse = !(10 > 5); // false

よく読まれている記事

1

IT入門シリーズ 🟢 STEP 1: ITの基礎を知る(ITとは何か?) 📌 IT初心者が最初に学ぶべき基本知識。ITの概念、ネットワーク、OS、クラウドの仕組みを学ぶ ...

2

「私たちが日々利用しているスマートフォンやインターネット、そしてスーパーコンピュータやクラウドサービス――これらの多くがLinuxの力で動いていることをご存じですか?無料で使えるだけでなく、高い柔軟性 ...

3

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-Javaの基礎知識(基礎編)