プログラムとメモリ

無駄なnewをしない

こんなプログラムを見かけた List list = new ArrayList(); list = getList(); getList()は別な場所で定義されているものとする 一方私の書くプログラムはこんな感じ List list = getList(); 上のプログラムを書いた人は 下のプログラムを見てなぜ初期化せず…

値渡しと参照渡しについて

関数に引数を渡す時の話 値渡しとか参照渡しとかって話はプログラマなら 多分きいたことがあるのではないかと思われる 今日はこの違いについて語る このカテゴリでは変数の値がメモリ上にどのように確保されるかを たびたび話しているので特に前触れなくそう…

久しぶりに

最近、久しぶりにStringを==で比較してうまく動かず 悩んでる人を見かけたので、おそらくホワイトボードでの 説明回数は2桁に到達するであろうこの話題について触れてみる まず int a = 10; int b = 10; if(a == b) { System.out.println("同じ"); } このプ…

プリミティブ型と参照型でのfinalの違い

Javaの変数にはプリミティブ型と参照型の2種類がある。 一応確認しておくと プリミティブ型は byte,short,int,logn,float,double,boolean,char参照型は それ以外 class宣言で作成される Objectクラスを継承したものはすべてである。これらの違いは プリミテ…

最近の言語は

最近の言語は 変数がどのようにメモリに書き込まれているのかを 意識しなくても書けるようになっている。しかし、関数への値渡しと参照渡しの違いなどを 理解するためにどうしても必要になってくることがある。そこで、普段からメモリを意識したプログラムを…