Java言語の基礎 part2

型変換

次のような場合に発生する

  • 数値を異なるデータ型の変数に代入する場合
  • 変数や指揮の計算結果を、異なるデータ型の変数に代入する場合
  • メソッド呼び出しの歳、呼び出す側のメソッドの引数(実引数)の方と呼び出されるメソッドの引数(仮引数)の型が異なる場合
  • 異なるデータ型同士を算術演算する場合

byte
short
int
long
float
double

↑方向:キャストが必要
↓方向:暗黙の型変換

行わなかった場合は、コンパイルエラー!

ガーベッジコレクション

使用されていないメモリを回収する仕組み
どこからも参照されていないオブジェクトは、JVMによって自動的に破棄される。


System.gc();
Runtime.getRuntime().gc();
と記述すると、ガーペッジコレクションの実行を促すことはできる。
ただし、そのタイミングを調整することはできない!


インスタンス化後、破棄されるのは、メソッドが終了した箇所([}]の部分)
参照されている場合は、参照先で値が変更された?箇所(nullとか)


ただし、Stringオブジェクトの普遍性に関しては、別途考慮が必要

インクリメント(++)とデクリメント(--)

++x 前置き x+1を行った後に評価
x++ 後置き 評価した後にx+1
int i = 1;
while(i++ < 3){
    System.out.println(i);
}

これで出力される値は、2と3になる。
→ 1<3の比較後、{}内の処理を行ってから、iを1+1=2にする。
→ 2<3の比較後、{}内の処理を行ってから、iを2+1=3にする。
→ 3<3を比較し、falseであるが、iを3+1=4にしてから、処理を終了する。