私の知らないJava
Javaの勉強で学んだ知らなかったこと
- 継承したクラスのコンストラクタは最初にsuperを呼び出すか、他のコンストラクタを呼び出す
- doubleはcharを暗黙的にキャストできる
- RuntimeExceptionはコンパイラにチェックされない例外
- 生成していない配列へのアクセスはコンパイルエラー
- static{}のイニシャライザはstaticの初期化ができる
- for文へのlabelは初期化に入らない
label : for (int i=0; i<5; i++) { System.out.print(i); continue label; } // 01234
- abstract修飾子はメソッドに付ければクラスにも必要
- 数字Lはlong型
long l = 10L;
- double型はlong型を暗黙的にキャストできる
- whileの条件式にはboolean型である必要がある
- String型のconcatは破壊的ではない
- 配列の宣言で下の書き方もできる
int []array[] = { {1, 2, 3}, {4, 5, 6}};
- オーバーライド元がthrows Exceptionしていない場合、オーバライド先でthrows Exceptionでコンパイルエラー
- final修飾子のついたメンバ変数はコンストラクタでのみ初期化できる
- オーバーライド元がthrows Exceptionしていても、オーバライド時にthrows Exceptionしていなくてもコンパイルは通る
- ArrayListにはintは指定できない
- 変数名に使用できるのは先頭英文字, _, $, 2文字目以降から数字
- 整数型での0除算はArithmeticException
- double型への0除算は、dobleが0の場合NaN、でなければ正負のInfinity
- アクセス修飾子を省略した場合は、同一パッケージ内のクラスからアクセス可能
- staticは値を変更できる
- transient修飾子と言うのがいる
- コンストラクタを定義した場合、デフォルトコンストラクタは生成されない
- double型もインクリメント, 余り算ができる
- コンストラクタを呼び出した場合、親クラスのコンストラクタは暗黙的に呼ばれる
- charの初期値は半角スペース