カテゴリ:
前回に続きましてこちらさまより、Javaプログラミングの初級の勉強をしております。

そして、今回は「変数」でございます。

私自身今まで、色々なスクリプト言語(ActionScript2.0,Javascript,PHP,Pythonなど)を
かじりかじりやってきたので何となく変数については理解しているつもりでした。
要するに値を箱のような感じで一時的に格納しておくみたいな?そんなかんじで。
しかし、今回この記事を読んで変数のちがった捉え方というか、本質をとらえたような説明に
目からうろこ状態で、同時になんかいままでより変数の捉え方がしっくりきたって感じがしました。
そんなこんなで、とりあえず雑記していきます。



変数の宣言とはメモリを必要な分確保するということ。


これがまさしく目からうろこだったんですけど、核心をついててなんか頭がスカーンとしました。
そうか、「箱」の例え話はあくまで例え話だったんだぁと。そして若干、変数の概念をわかりづらくしていたんだなぁと。
でも、自分自身がプログラムを一切かじったことがなくて上記のように「変数とはメモリを〜」と説明されても理解しがたいかもしれないですし、むずかしいところだなと思いました。でも、この記事の一連の説明と図を見ると理解できるのかと。。。まぁとにかく自分はなんかしっくりきました。そして、ActionScript2.0から3.0になったときに変数の型を指定しなきゃいけなくなって、なんだよめんどくせ〜と思ってたのが、あれはメモリを確保するためだったのか〜それによって処理を早くするためだったのかな?と思い、スッとしました。


a = 1;には「1」の値が代入されたわけではない。

変数の説明図

上記の画像をみていただければなんとなくイメージできるかとおもうのですが、同じ「1」でも変数の型次第で代入されている値がちがうということです。int型なら「00000001」、byte型なら「01」です。これも目からうろこですね。いや〜型もしっかり覚えなきゃ〜


















































型名 サイズ 値の範囲
整数 byte 1bytes -128〜+127
short 2bytes -32768〜+32767
int 4bytes -2147483648〜+2147483647
long 8bytes -9223372036854775808〜+9223372036854775807
浮動少数 float 4bytes ±3.40282347E+38〜±1.40239846E-45
double 8bytes ±1.79769313486231570E+380〜±4.94065645841246544E-324
文字 char 2bytes 0〜65535(Unicode表現)
論理 boolean (1bytes) true/false

そして、上記の表にあるように例えば「int」の型を指定すると「4bytes」のメモリが確保されるとのこと。

変数を初期化しないで実行するとエラーになる。

ん、これも基本だな。初期化するためにはなにか値を代入すればいいということですね。

intやbyteなどの型を総称してプリミティブ型(基本データ型)と呼ぶ。

「プリミティブ」とは英語で「原始的な」という意味だそうです。CPUで直接メモリの内容を読み書きして計算させるという「プリミティブ」な用途で使われるからだそうです。ふむふむ、これから「プリミティブ」と言われてもビビらなくなりそうです。



そんな感じで、以上目からうろこの「変数」Part1でした。