数値+オブジェクト
最近,Javaの勉強を始めました.そしたら,少し気になることが...
Javaのプリミティブ型(言い方あってるかな?)は,オブジェクトではありません.
なのに,
int n = 1; String s = n + "hoge";
とかできます.
オブジェクトではないのにこんなことができるなんて,なんだか不思議な感じがします.あ,もしかしてboxingされてます?
Webで理由を調べてみても,
n + "hoge" とすればよい
ということはどこにでも書いてあるのに,なぜそれでそうなるのか,については,なかなか見つかりません.そうこうしているうちに,中間コードみた方が早いや,と思ったので
javap -c クラス名
のように,早速試してみると,
どうも String.valueOf が呼ばれているみたいだ,ということがわかりました.へー.
すっきりしたかも.
(あ,もしかして常識?)