変数 (基本型)
Javaの「変数」についてみていきます。しばらくPHP言語をしていて型の概念などあまり意識しなくなってきたので、変数についてしっかり概念から復習してみたいと思います。変数には大きく分けて「基本型」と「参照型」があるのですが今回は「基本型」をみていきます。
変数とは
ウィキペディア(Wikipedia)の説明がわかりやすかったので引用します。
プログラミングにおいて、変数(へんすう、variable)とは、プログラムのソースコードにおいて、扱われるデータを一定期間記憶し必要なときに利用できるようにするために、データに固有の名前を与えたものである。 一人一人の人間が異なる名前によって区別されるように、一つ一つの変数も名前によって区別される。これにより、複数のデータを容易に識別することができる。変数を区別するための名前を特に識別子という。また一般に、変数が表しているデータをその変数の値(あたい)という。

プログラムの処理中には計算結果やデータベースからの情報など様々なデータを保存しておく必要があります。その一時記憶場所としてメモリが利用され、そのデータ保存用の領域が割り振られます。アセンブラ言語などでは「変数」という概念がなく、レジスタやメモリのアドレスへ直接指示をだすため高度なメモリ知識とメモリ管理が必要になります。私もずっと昔にマクロアセンブラをちょっと勉強してみましたが挫折しました。Javaを含む高水準言語は「変数」がありメモリアドレスを特に気にせずプログラミングできるようになりました。
変数を定義するとメモリ内にデータを保存する為の領域が作られます。その領域には名前をつけることができ、その名前が「変数名」です。保存領域にアクセスしたい場合はメモリアドレスを指示するかわりに変数名を使うことにより自動的にメモリアドレスと関連付けてくれます。変数に値を入れることは、メモリ領域の指示したメモリアドレスに値を書き込むのと同様になります。
メモリ領域などと言うと難しくなるので、ここからは入門書でよく書かれている
変数は「箱」 値は「中身」
このイメージで進めていきます。
データ型の種類

変数を「箱」だとすると、基本型の変数の箱は大きく4つの種類があります。
(1) 整数型:小数のないきれいな数字。自然数に、0と負の数を加えた数
(2) 浮動小数点型: 小数点のある実数値
(3) 文字型: 1つの文字。
(4) 論理型: true(真) か false(偽) のどちらか
(3)の文字型ですが、プログラムでは文字と文字列は違います。文字は「1文字」で文字が連なったのが文字列です。変数の文字型は1文字、厳密にはその文字の「文字コード」が格納されます。Javaでは文字列はオブジェクト型です。また文字列については後々記事にしたいと思います。なおJavaはUnicodeにより処理されるので漢字などの2バイト以上のコードも1文字として扱うことができます。
データ型の範囲

入れる内容によって「箱」の種類が異なることがわかりました。さらに同じ形でも大きさの異なる箱が準備されています。例えば上記画像は「整数型」の箱です。扱える整数の範囲の違いにより4種類に分類されます。小さな箱は「-128~127」までしか扱えませんが大きな箱は1000兆をはるかに超える整数も扱えます。扱える範囲が大きいからといって大きい箱ばかりにしてしまうと限られたメモリの領域がすぐに満杯になってしまいます。用途に合った大きさを選ぶようにしましょう。
データ型の一覧
| 基本型 | 分類 | サイズ | 表現範囲 |
|---|---|---|---|
| byte | 整数型 | 8bit | -128~127 |
| short | 整数型 | 16bit | -32768~32767 |
| int | 整数型 | 32bit | -2147483648~2147483647 |
| long | 整数型 | 64bit | -9223372036854775808~ 9223372036854775807 |
| float | 浮動小数点型 | 32bit | 0.0、 ±3.40282347E+38 ~ ±1.40239846E-45 |
| double | 浮動小数点型 | 64bit | 0.0、 ±1.79769313486231570E+308 ~ ±4.94065645841246544E-324 |
| char | 文字型 | Unicode で1文字 |
0~65535 , ¥u0000~¥uFFFF |
| boolean | 論理型 | 1bit | true、false |
今回は変数の基本型についてみました。参照型については配列やクラスのところで詳しくみていこうと思います。
2010 年 2 月 3 日 水曜日 【 カテゴリー: Javaの基本 】
