値型と参照型
ども!こんばんは!
クローバーフィールドの伊関です。
来週から関西はいよいよ梅雨入りの様相ですね。
まぁ結局気温もバンバン30°C超えてきておりますから、もう梅雨というよりほぼ”夏”でございますよ。
でも7月には軽く30°Cを上回ってくるんでしょうけどね。。。
そんな伊関にとって苦しい日が続きますが頑張りたいと思います。
・値型と参照型
ここで「参照」という言葉が出てきので、「値型」と「参照型」について説明しておきましょう。
・値型
「組み込み型データ型」では、「string」と「object」以外は値型です。値型の変数の宣言をすると、型サイズ分の領域がメモリ上に確保され、その中にデータが格納されます。
値型の変数のメモリ上のイメージ
・参照型
「組み込み型データ」では、「string」と「object」は参照型です。
例えば、
string s; -①
s=”ABC”; -②
と記述した場合、次の手順でメモリ上に文字列リテラルの実体が確保されます。まず、①の段階でメモリ上で確保されるのは、「文字列リテラルの位置情報」を格納する領域です。この位置のことを「参照情報」と呼びます。そして、②で文字列リテラル”ABC”への参照情報を変数sに代入しているのです。クラスも参照型ですから、「Television tv=new Television();」では変数tvにTelevisionインスタンスへの参照情報が代入されます。
string型とクラス型の変数のメモリ上のイメージ
以上です。
本日は久々に図を交えて書いてみました。
みなさん少しはわかりやすいでございましょうか?
さて、話はまるで変わるのですが、
最近ベランダで洗濯物を干しておったのです。
すると妙にアシナガバチが近づいて来るのですよ。
そして、スッと給湯器の中に入っていくのです。
ふわっと嫌な予感が湧いてきて、給湯器の中を覗くとありました。。。。
ばっちり大きな蜂の巣が。。。
これはやばいと思って管理会社の人に頼んで取り除いてもらったのですが、
今日になって洗濯物を干していると、行き場を失った蜂がふらっと現れ、給湯器の方に向かうのです。
でもそこには巣はありません。
なんだか少しセンチメンタルな気分に浸っておったら、
蜂が勢いよくこちらに向かってくるではありませんか!
ヤバイと思った時に一足遅く、刺されこそしなかったものの、部屋に入られ、
蜂との死闘を繰り広げ、なんとか追い出すことに成功しました。
きっと彼はまた戻ってくるでしょう。
伊関の健闘をお祈りください。
では!