あまりの良エントリに嫉妬

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;
}

うん。やっぱりこっちのほうがインパクトあるな。