wait時のロック解放について
プログラミング言語Java第4版310ページには以下のようにある。 waitの間は、オブジェクトのロックは解放されて、waitが完了した理由や方法がなんであろうと、waitが完了する前に自動的に獲得されます。 つまり、w…
プログラミング言語Java第4版310ページには以下のようにある。 waitの間は、オブジェクトのロックは解放されて、waitが完了した理由や方法がなんであろうと、waitが完了する前に自動的に獲得されます。 つまり、w…
synchronizedメソッドは、オブジェクト(インスタンス)に対してロックをかける。 つまり、そのメソッドにおけるthisに当たるものがロックされる。 static synchronizedメソッドは、そのクラスに対…
interrupt()メソッドが呼ばれた際に、対象スレッドが「待機状態」だった場合に、InterruptedExceptionがスローされるので、スレッドを待機状態にすることが可能な、wait()、sleep(long)…
&& 左辺がfalseの時点でfalse確定なので、右辺の評価をしない。 || 左辺がtrueの時点でtrue確定なので、右辺の評価をしない。 ま、この挙動が問題になるようなコードは条件式内でごにょごにょ…
上記のコード、結果は11だろうと思ったら、10だった。 よーく調べてみると2行目のコードは、 と解釈できるそうで、それなら結果は10ですな。 現場でこんなクソコード書く人いないからわからんかったわ。
■javacコマンド -d 出力先ディレクトリ指定 -g デバッグ情報の出力 -target VMバージョンの指定 -cp -classpath クラスパス指定 ■javaコマンド -D システムプロパティ指定 -cp …
Javaのコンパイラは宣言された型情報のみを頼りにコンパイルを行う。 よって、A型にA型のサブクラスであるB型を代入するような場合でも、 メソッドの定義などはA型に定義されたものとして判断する。 もちろんオーバーライドに…
一般に、チェック例外、実行時例外の使い方の切り分けは、 回復可能な状態にはチェック例外、回復不能なプログラミングエラーには実行時例外といわれる。 例として実行時例外の代表的なものとして、配列の要素外アクセスを表すArra…
すべての例外はクラスThrowableのサブクラスである。 例外には、大きくわけて2つの種類がある。 ・チェックされる例外(RuntimeException及びそのサブクラスを除く、Exceptionのサブクラス) ・チ…
ガベージコレクション対象になる、すなわちオブジェクトがファイナライズ可能になるタイミングは、参照が到達できなくなったタイミング(厳密には弱く到達可能以下になったら)。 普通、nullになるか、スコープ外になるまでは参照可…
最近のコメント