【Java】参照型って何?基本型との違いを徹底解説!

Java

皆さんこんにちは。
Numataです。
この記事に到達したあなたは、
コンソールに出てくるこのような文字列と1度は戦ったことがあるでしょう。

test.Sample@70dea4e

↑なんじゃこりゃ!我はString型 nameフィールドの”そと”をみたいんじゃーー!!

この訳わからない文字列が出てくる原因は、
Javaでは変数の型に種類があるからです。
Javaの変数には””という概念が存在します。
1度は聞いたことが聞いたことがあるでしょう。
基本型 と 参照型
コンソールに出てくる謎の文字列(test.Sample@70dea4e)の正体は参照型です。
では参照型とは一体何者なのでしょう。
憎たらしいその文字列の正体を解き明かしていきます!

参照型とは、地図です

なんのこっちゃ。
地図ってなんだよ!意味わかんねーよ!いいからなんで値がとれないのか教えろよ。
聞こえてきます。皆さんの声。
ところが、この参照型とは、個人的には地図という表現が一番イメージが浮かびやすいと思っています。
そもそも、皆さんなぜその文字列が何を表しているかわからないでしょう。
私も初対面の時は、自分で入力した覚えのない文字列が出てきて驚きました。
これからは参照型の変数は、地図だと思ってプログラミングを進めて見て下さい。
皆さんが欲しいのは、であって、値がある場所を示す地図ではありませんよね。
参照型とは、値がメモリ上のどこに保存されているかを変数として持つ型なのです。

メモリってなに?

参照型を学習するのに必要不可欠なのがメモリの存在です。
メモリとはPC内の記憶装置です。ここではざっくり説明するので、
もし完璧に理解したければ、他の方が書いている記事を参考にしましょう。
この説明で概念が理解できれば、今回は十分です。
PS2のメモリーカードや、USBメモリなど、”メモリ”という言葉は誰もが1度は
聞いたことがあると思います。

PS2のメモリーカード(懐かしい)
USBメモリ

PCは人間と一緒で、常に何かを記憶しながら動いています。
人間も、何も覚えられなかったら、呼吸すらできませんよね。
システムを動かす際には、変数名やクラス名を覚えておく必要があります。
PCでは、その一つ一つの情報をメモリという場所に記憶しています。
メモリ内は格子状に部屋が分かれており、それぞれの部屋に番号がついています。
マンションのようなイメージです!

101の部屋に7、202の部屋に3…といった具合に、
それぞれの部屋にデータが入っています。
部屋番号がわかることによって、中に入っているデータがわかるという訳です。
メモリの感覚はお掴みいただけたでしょうか。
それではいよいよ型の違いについてです。

参照型の変数の箱に入っているのは、メモリ上のデータの居場所です

冒頭でも出てきたtest.Sample@70dea4eこの列の正体は、
メモリ上のデータの居場所の最初の部屋番号です。
”の”を連ねてしまってスミマセン、、良い表現が思いつきませんでした。
プログラム上で作られたデータは、メモリの部屋に入れられて管理されます。
データの中には、1部屋で管理するモノと、複数部屋使って管理するモノがあります。
複数部屋を使って管理するデータを扱う際には、
最初の部屋番号のみを変数に持たせて管理します。これが参照型です。
参照型の変数の箱には、最初の部屋番号のみが入っているため、
見たことない文字列が出力されるという訳です!

改めて参照型とは?

メモリ上で複数部屋で管理されるデータ型です。
Javaでは扱いたい値を変数に入れて操作しますよね。
この変数はよく箱に例えられると思います。
この箱はメモリの1部屋に入れられて管理されます。
参照型では、箱に、”データが入っている複数部屋の最初の部屋番号”が入っています。
つまり、箱を参照すると、欲しいデータのありかが入っているのです。
データが欲しかったら、その複数部屋までアクセスしてようやくとって来れるのです。
なぜこのように2度手間を踏んでいるか、、、
大きなデータをいちいち動かすのは面倒だから と、覚えましょう。
ワンピースで、ナミはみかん畑に宝を隠し、その在処だけを記憶して持ち歩いていました。
宝を抱えて歩くのは、非常に動きづらいですね。
それと一緒で、Javaも、大量のデータをいちいち管理すると、メモリの消費が激しいのです。大きなデータは、ある場所に置いておき、そこへの地図だけ持ち歩いているのです。

基本型とは?

メモリ上で1部屋で管理されるデータ型です。
基本型の変数は、箱の中に直接データが入っています。
箱は、メモリ上の1部屋に入れて管理されるため、部屋の場所がわかれば、
中身までわかるという訳です。

参照型とは、ほしいモノのありかを示す地図なのです!

参照型が、宝の地図だということはご理解いただけたでしょうか?
参照型の変数の箱に入っているのは、メモリ上のデータの居場所です。
データをとってきたければ、その先までアクセスしましょう!
と、ここまで理解するのに、私もものすごい時間がかかりました。
特に、メモリの概念はパソコンに慣れていないとイメージがつかない概念のため、
時間をかけてゆっくり学んでいきましょう!
以上です。
ここまでご覧いただき、ありがとうございました。
Twitterもやっていますので、ぜひ登録して
IT業界の状況、プログラミングの知識を取り入れてください!

コメント

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