http://d.hatena.ne.jp/nowokay/20090106#1231233947
きしださんのあまりの良エントリに嫉妬。説明とサンプルコードとグラフがあるのがすごい。
ここはおいららしく対抗してみる。真正面からは対抗できないのでそこはおいら流で。グラフ作成はすべて無理。
無限
そもそも処理が終わらない。論外。
for(char i = 65535; i >=0 ;i--){ }
ループ条件を間違えている。
ものすごく遅い
配列のアクセス順が効率が悪い。論外。
int size = 4*1024; int[][] data = new int[size][size]; for(int i=0;i<size;i++){ for(int j=0;j<size;j++){ data[j][i] = i*j; } }
メモリのイメージを理解することは抽象化されている言語であっても必要。
ものすごく遅い その2
ラッパクラスの配列は本当に意味があるのか?
int size = 4*1024; Integer[][] data = new Integer[size][size]; for(int i=0;i<size;i++){ for(int j=0;j<size;j++){ data[i][j] = i*j; } }
オートボクシングによりintと同じように代入してはいるものの、それはクラスであってやはりプリミティブではない。
実行されていない
そもそもコンパイルエラーのため実行するところまでいかない。論外。
private int hoge(int a){ return a * 1.05; }
原因がわからないためおまじないによる対処が必要…………んなわけあるか!
うーん、イマイチだったな。
おまじないばっかり載せるほうがじわじわきてよかったかも。
例えばこんなの。
//呼び出し側コード Object[] ret = hoge(); boolean isSuccess = (boolean)ret[0]; System.out.println( ret[1] ); //複数の値をかえせないためおまじない Object[] hoge(){ return new Object[]{true , "ほげ"}; }
引数に使われるパターンも良くある。
//呼び出し側コード String[] ret = new String[1]; boolean isSuccess = hoge(ret); System.out.println( ret[0] ); //複数の値をかえせないためおまじないその2 boolean hoge(Object[] ret){ ret[0] = "ほげ"; return true; }
うん。やっぱりこっちのほうがインパクトあるな。