- ひょんなことから勉強することになったので自分の覚えてない点のみ列挙。しかし細かい語法を問う問題が多くなんと10%の正解率に愕然。
修飾子†
- nativeメソッドはfinal指定してオーバーライドできない
変数と型†
- staticフィールドの初期値はローカル変数と違い、すでに入っている。booleanはfalseで数値型は0
- byte,short,integer,longはそれぞれ1,2,4,8バイトの符号付整数。そして負の値のほうが1だけ大きく取れる
- 変数名で使える記号は$_のみ。数字が先頭はだめ
算術演算子†
- +=,-=,*=,/=,%=みんな正解。特に最後の存在は知らなかった
- 整数通しの演算は整数にしかならない。5/2は2であり、5/2fは違う。
- a=++i,a=i++では後者はaに代入後インクリメントされる。
関係演算子・論理演算子†
- &と&&では後者がショートカット(片方が条件を満たす時点で終わる)。文字数とは裏腹なので注意
- ^はXORのこと。めったに登場しないので注意
基本型の型変換†
- 小から大へは何も指定しなくてもよい。
- 大から小へは指定しない場合コンパイルエラー。そして小の型にあわせて切捨てが行われる。intからbyteへの変換では下位8ビットのみが変換される。
配列の宣言†
以下の指定はすべて正しい
int[] a[]
int[] a = {1,2,3}
int[] a = new int a[]{1,2,3}
ラベルとbreak†
これは初耳。スパゲティの元だからあまり使わないだろうけど
break_point:
while(true) {
while(true) { break break_point;}
}