[Java] 修得度

テーマ:
java 修得度問題
↑で、javaの問題が出されていたのでやってみた。
正直面白かったのだけど、結構手こずった・・・
ぱっと答えられたの(3)ぐらいか。。

こっから先は自分なりの回答を書くので、自力で解きたい人は先にリンク先いってください。




(1) スレッドダンプ。だけど動作を説明せよっていわれてもそのメカニズム全然しらないなあと愕然となった。そのうち別の機会にjvmの挙動として調べてみよう・・・
あといつもkill -3でやってたけどSIGQUITのほうがかっこいいな。


(2)
package sample;

class A<A>{
class B<B>{
public void out(){
System.out.print(a);
System.out.print("-");
System.out.println(b);
}

private A a;
private B b;
}

/**
* @param args
*/

public static void main(final String... args){
sample.A<String> instanceA = new sample.A<String>();
sample.A<String>.B<String> instanceB = instanceA.new B<String>();

instanceB.a = "20";
instanceB.b = "test";
instanceB.out();
}
}



(3)
package sample;

class A{
static interface AA{
String value();
}

enum B implements AA{
A,
B,
C;

private B(){

}
public String value(){
switch (this) {
case A:
return "hoge";
case B:
return "fuga";
default:
return "hogehoge";
}
}
}

/**
*
*
* @param args
*/

public static void main(final String... args)
{
System.out.println(B.A.value());
System.out.println(B.B.value());
System.out.println(B.C.value());
}
}


(4) まずmainメソッドのsysout内を分解してみると
C.class.getAnnotation(B.class).value()        // D.class
.getAnnotation(B.class).value() // A.class
.newInstance().value() // A#value()

ということでAのvalue()メソッドが最後に呼ばれている。
value()メソッドを分解してみる。
return this.getClass()  //A.class
.getAnnotation(B.class).value() //C.class
.newInstance().getClass() //C.class
.getAnnotation(B.class).value() //D.class
.newInstance().value(); //D#value()

今度はDのvalue()メソッドを呼んでいる。
同じように追っかけると、
return this.getClass()  //D.class
.getAnnotation(B.class).value() //A.class
.newInstance().getClass() //A.class
.getAnnotation(B.class).value() //C.class
.newInstance().value(); //C#value()

ということで最終的にC#value()が呼ばれるので、"fugafuga"が出力される。

って元記事のはてブみたらscalaのひととかが回答のっけてた・・・
でもだいたいおんなじ感じだった。
いうても結構僕は(2)に手こずりました・・・
低レベルすぎて泣けてくる・・・
AD

#

テーマ:
ハイボールって美味しいよね。
でも昨日はずっとビール飲んでた。
今日は世界のハイボールを飲んでいる。

こないだテレビでナウシカやってたの観て2chあたりでナウシカ漫画のほうがおもしれーって言ってた。大学のとき友達もそう言ってた。たしか会社にあった。けどなんか癪だったのでAmazonで全巻セット買った。面白かった。ほんとに映画って序章あたりなんだな。

ワイド版 風の谷のナウシカ7巻セット「トルメキア戦役バージョン」/宮崎 駿

¥2,987
Amazon.co.jp

あと今週はWeb漫画いろいろ見てた。堀さんと宮村くんはハマった。
読解アヘン

なんか実際のコミックになってるっぽいけど全部読んじゃったからどうしよう。
堀さんと宮村くん 1 (ガンガンコミックス)/HERO

¥1,000
Amazon.co.jp

というわけで今週はなんか漫画ばっかり読んでた。
今日もJavaFXやりたかったんだけど別の本読んだり漫画読んでた間のFeed読んだりハイボール飲んでたりしてたら酔っ払ってきてよくわからなくなってきたので最近読んだ本とか書く。

アヒルと鴨のコインロッカー (創元推理文庫)/伊坂 幸太郎

¥680
Amazon.co.jp

陽気なギャングの日常と襲撃 (祥伝社文庫)/伊坂 幸太郎

¥690
Amazon.co.jp

終末のフール (集英社文庫)/伊坂 幸太郎

¥660
Amazon.co.jp

最近つったけどこれ1ヶ月くらい前だわ。もう駄目だ。
最近伊坂熱は収まりつつある。
というか技術書熱に戻った感じ。このあとTumblr熱が再燃してWebでなんかするのが再燃してまた小説が再燃するかもしれないけどどうだろうか。
趣向を変えてカツマー本とか読んでやろうか。
すいません嘘です。

でも終末のフールは良かった!すんごく良かった!
AD