【Java初心者向け】変数について

プログラミング

今回は、プログラミングで必ずと言って良いほど使用する
変数について説明していきます。

変数の宣言

変数とは…値の入れ物のことです。
変数の宣言というのは変数を作る作業のことを言います。

Javaの変数宣言の書式

変数の型 変数名

ポイント
変数名は任意の名前で指定できます。
変数の型とは変数に代入できる値の型のことで、値の種類を指定します。
例:文字列、数値

Javaの変数の型の種類

大別すると2種類あります。
・プリミティブ型(基本データ型)
・オブジェクト型(参照型)

プリミティブ型

プリミティブ型データ型範囲
整数型byte 8ビット整数 -128~127
short16ビット整数 -32768~32767
int32ビット整数 -231~ 231-1
long64ビット整数 -263~ 263-1
浮動小数点数値型 float 32ビット浮動小数点数値
double 64ビット浮動小数点数値
文字型 char 16ビット Unicode(1文字) ユニコード番号(10進数を持つ)
論理型 boolean true , false ※文字列ではない

オブジェクト型

数が不定です。
例)String型…文字列型
※正確にはString型は文字列型ではないですが、
今は文字列の変数を使いたい時に使用する型と思って大丈夫です。

Javaのメモリ使用イメージ

Javaプログラム実行時に、物理メモリの中に
Javaプログラムを動作させるための領域を確保します。
確保するのはデフォルトの物理メモリの1/4を確保しています。

変数の宣言とメモリのイメージ

スタックとは… 変数の値を格納する領域 のことです。
JavaはJavaの仮想メモリ内でさらに領域を分けてメモリを確保しています。

変数宣言と代入方法

変数の宣言

例として、int型のvalという変数名で宣言する場合、

int val;

となります。
※『;』を最後につけることを忘れないようにしてください。

このint型の変数を宣言しただけで32ビット分のメモリ領域
(変数なのでスタック)が確保されることになります。

メモリを圧迫しないためにも、無駄に変数を宣言しない方が良いです!

変数の代入

変数名 = 値;

となります。

『=』は代入演算子と言い、右辺の値を左辺に代入するという意味となります。
宣言していない変数には代入できないので、 注意してください。

リテラルについて

リテラルとは、値の型を表す書式のことです。

整数リテラル 使用する数値 Prefix(先頭文字)
10進数 0~9 なし10
8進数 0~7 00377
16進数 0~F 0x0x1F
2進数 0~1 0b0b101

浮動小数点リテラル
10進数:例) 12.5
指数…:例) 3e4…3.0×104=30000.0

文字リテラル
1文字表記:例) ‘A’…シングルクォーテーションで囲う
Unicode表記:例)‘\u0041’…\u + Unicodeのアドレス

論理値リテラル
true もしくは false

文字列リテラル
例)“ABC”…ダブルクォーテーションで囲う

nullリテラル
null…何も参照していない(参照型リテラル)

数値型ごとのリテラル

Suffix
byte なし1
short なし1
int なし1
long L1L
float F1.0F
double D1.0D

変数の値の参照方法

変数に値を代入して、その値を参照する際には

変数名

だけで参照することができます。

変数の多重定義

同一ブロック内で同じ変数名の変数を複数宣言できません。
なぜなら、コンパイラがどちらの変数を参照すればよいか分からなくなるためです。

例)

int val;
float val;
   }

上記のようなコードはコンパイルエラーとなります。

変数におけるコンパイルエラーの例

変数の型と代入する値が異なる場合
String str1 =  10; ⇒コンパイルエラー
String str2 =  “10”; ⇒OK
byte val =  150; ⇒コンパイルエラー

初期化していない変数の値の参照
※初期化とは変数を宣言し、初めて値を代入することです。

例)
int val;
System.out.println(val); ⇒コンパイルエラー

整数型の変数を宣言する時の注意

整数型の最小は(基本的に)int型にします。

メリット:ソースの修正が少なくなります
デメリット:メモリの無駄遣いです

デメリットがメモリの無駄遣いとなりますが、
業務用PCのメモリ容量が大容量になってきているので、
byte←→int程度は微々たるものであり、メリットがデメリットを上回るので、
基本的にint型で宣言します。

タイトルとURLをコピーしました