[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10168] 教えて下さい そして etc.



小滝 です。

いつもお世話にばかりなっています。その後 Effective Javaのテキスト
を読み返してみて分からないことがあります。ご教示お願いします。

1.p.8 の下13行目からボールド書体で次の記述があります:

”staticファクトリーメソッドの短所はpublic あるいはprotectedのコンスト
  ラクタを持たないクラスのサブクラスを作ることが出来ないことです。”

しかし上記の制限はstaticファクトリメソッドを使用する場合に限らず直接
new でオブジェクトを生成する場合にも当てはまると思うのですが、何故
ファクトリメソッドの短所としてわざわざ挙げているのでしょうか?

static ファクトリメソッドを使用すると何かパッケージスコープなどの解釈
が、直接newを呼出す場合と異なり、制約を伴う場合がありますか?

以下は etc. です。

2.議事録の p.19 への参照コメントです:

  「保守的なGC」というのがある
    --> 組み込み系のVMには使われていることもあるらしい
        --> 情報求む!!

保守的なGC(conservative GC)について下のテキストに簡単な紹介があります:

Inside the Java Virtual Machine, McGraw-Hill, 1998, Bill Venners, p.266

p.266 から 下に関係するパラグラフを引用します:

The Java Virtual Machine can be implemented such that the garbage
collector knows the difference betweenn a genuine object reference and a
primitive type(for example, an int)that appears to be a valid object
reference.(One example is an int that, if it were interpreted as a native
pointer, would point to an object on the heap.)

Some garbage collectors, however, may choose not to distinguish between
genuine object references and look-alikes. Such garbage collectors are
called "conservative" because they may not always free every unreferenced
object.
.....