読書会(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が読み終わる予定。

以上 


[ 戻る ]