[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12719] 議事録「 Java 言語仕様第 3 版」を読む会(第 5 回)
高橋(徹)です。
2007年8月18日(土)に開催された、Java読書会「Java言語仕様 第3版」
を読む会(第5回)の議事録を送付します。
出席者:高橋(智)、村山、村上、門脇、遠藤、松永、吉本、岩室、高橋(徹)
読み手:遠藤、村山、松永、門脇、吉本
書記:高橋(徹)
本日は、p.189から
p.192
Javaでは、Object型のtoString()を呼ぶ方法はないのか?
C++なら、クラス名を指定してメソッドを呼ぶことができる
Javaでは、superで直接の親クラスのメソッドしか呼べない
Object.this のように記述したらいけるのではないか?
innerクラスの場合にしか記述できない
p.193
Eclipseの内蔵コンパイラ(Jikes?)には、インライン展開するオプションがある
【宿題】これをチェックしてコンパイルしたバイトコードを逆コンパイル
したらどうなっているか調査する。
p.194
インライン展開後のコード
一回 int jに代入しているのがミソ。引数の評価順序を保証している。
Point piも同様。
nativeメソッドから例外をスローすることはできるのか
ネイティブ側でオブジェクト
【宿題】JNIでネイティブ側から例外を生成して投げるサンプルを作成
p.195
Class.forName("BumpTest") は、BumpTest.classでもよいのでは?
よいと思われる
p.197 誤植?
下から13行目 "ExceptionTypeList:" は、"ExceptionType:"の誤記
洋書では"ExceptionType:"となっている
訳者へ報告
p.198
例外をキャッチしないと、スレッドが死ぬ
Swingだと例外が発生してもGUIとしては機能し続けている
EDTスレッドが死んで新しいスレッドを生成している?
スレッドにuncaughtExceptionHandlerを登録すれば死なせずに済む
p.199
「メソッド本体が正常終了(§14.1)」
return文は正常終了を妨げる
p.201 誤植?
下から11行目、「(covariant retutn types),」は、"return"の誤記
訳者へ報告
p.210-211
継承可能なクラスでオーバーライド可能なメソッドを明示的に示すアノテーションが
あってもいいのではないか?(例:@Overridable)
意図しないオーバーライドを防ぐ仕組みが何故Javaにないのか?
p.212 2〜4行目の意味がわからない
サンプルコードは以下のようになる
interface Map {
class Entry {...}
}
interface Set {
class Entry {...}
}
class X implements Map, Set {
void someMethod() {
Entry e = ... // コンパイルエラー
}
}
p.213
インスタンス変数初期化子はあまり使わないので…
普通コンストラクタで初期化する
まして、インスタンス変数初期化子で、thisやsuperは使ったことない
p.215
コンストラクタでFP-strictができない理由はなにか?
superのコンストラクタを呼び出すときに、FP-strictにならないからか?
→ class全体がFP-strictのときは、コンストラクタもFP-strictになるという
記述がある。
「コンストラクタが作業を完了するまで、ロックが行われる」とあるが、
コンストラクタで初期化したフィールドが他のスレッドで観測可能であることは保証
されるか?
メモリモデルで議論しましょう
p.217
NonWildTypeArguments はどんなときに使うの?
スーパークラスのコンストラクタはジェネリクスで、サブクラスがジェネリクス
でない場合に、superを呼ぶときは必要になるのではないか。
【宿題】明示的なコンストラクタの起動でNonWildTypeArgumentsを指定する
コード例を捜すか作る
p.220 誤植
下から10行目、「packate p1;」は、「package p1;」の誤記
訳者へ報告
p.226
「EnumSet 列挙型の要素が64を超えることはないという仮定から、、、」
EnumSetの実装が、64bit整数のビットで表現されているから
→JDK1.6では、列挙型の要素数が64を超えるか否かで、RegularEnumSet、JumboEnumSet
を使い分けている。ので、64を超えても問題ない。
p.233
「暗黙のうちにabstractとなる。この修飾子は廃止されたため…」
原文ではobsoluted、互換性のための残っているんだろう。
次回、p.236 9.3 フィールド(定数)宣言から
--
TAKAHASHI,Toru
torutk@xxxxxxxxxxxx