読書会(Java言語仕様 第3版)第8回議事録
[ 戻る ]
「 Java 言語仕様第 3 版」を読む会8回」議事録
2007年11月10日 土曜日
内宮 松永 岩室 高橋(徹) 村山 遠藤 門脇 根本(記) 小棚木 石黒
■14.7 ラベル付き文 (p329より)
label: は break: continue: と併用
- (void)xxx; でオブジェクトのvoidへのキャストはC++ならできるがJavaは不可。
- new した場合は booleanはobject が一致しない、newした場合は == でなく
equalsを使わなくては
ならないのはjava1.4までで Java5からは autoboxingが効くので問題なく==が使える。
Boolean yes = new Boolean("TRUE");
Boolean no = new Boolean("TRUE");
System.out.println(yes.equals(no)); #true
System.out.println(yes == no); #false
結論 : Booleanのnewはやめよう。
■14.9 IF文の定義
- assertメソッドはなぜ一単語で、 assertAll() といった感じの二単語構成ではないのか?
それは、while や do if と同じ予約後の感覚。
enumや assertは後からキーワード登場したので Junitの assert()が
assertTrue()とassertFalse()に
変更せざるを得ず、世界中のテストコードが書き直しになった。
状態遷移のあるチューリングマシンに於いてassertionは大切。
参照透明性のある関数言語の場合は、代入がないのでassertは要らないのでは?
- Javaにregister変数宣言ができないのはなぜ?
JavaはVMで動く、stack machineだから。
.net CLRはregister宣言可能 Javaも何かしらの方法でregister化できた方が良かったのでは?
Azulは最近聞かないがどこへ行った? VMの載ったLinuxマシンの分散高速化方法は不明のまま。
■14.11 switch文
メモ : "Duff's device (Duffの工夫)"ループはJavaでは使用しても無効
case:が次のcase:にフォールスルーしない言語の方が主流
参考: http://en.wikipedia.org/wiki/Duff's_device
■14.12 while文
■14.15 Break文
■14.16 Continue文
■14.19 Synchronized文
Javaはreentrant lockが標準 POSIX threadはreentrant lockが標準ではないので注意がいる。
■14.20 try文
■14.20.1 try-catchの実行
■14.20.2 try-catch-finallyの実行
■14.21 到達不能文
■15章 式
■15.1 評価、式が表すもの、結果
■15.4 FP-strict
IEEE規格は64bit計算なのでFP-strictにならないことがある。
Intel 80bit計算のprocessorは正確に計算できる。
※
全体的に午後の食後の時間は、ツッコミが少なかったです。
次回でモーニングJavaが読み終わる予定。
以上
[ 戻る ]