-2

HashTable最初は、すべてのメソッドが同期されていると思いました。Java ドキュメントを調べたところ、どのメソッドも同期化されていると宣言されていないことがわかりました。では、JAVAHashTableオブジェクトが同期されていると定義されている正確な場所はどこでしょうか?

4

5 に答える 5

3

ほとんどのメソッドは同期されています。ソース ファイルを調べると、同期キーワードが表示されます。

于 2012-12-19T18:10:30.663 に答える
3

のソースを見るHashtableと、反復または追加または削除に使用するクラスのすべてのメソッドが であることがわかります。したがって、同期さsynchronizedれていると言えます。Hashtable

于 2012-12-19T18:11:08.350 に答える
1

javadoc: の java.util.Hastable:

* 新しいコレクションの実装とは異なり、{@code Hashtable} は同期されます。

メソッドは同期されています!

于 2012-12-19T18:11:34.627 に答える
1

クラスの説明の最後の行は次のように述べています

Java 2 プラットフォーム v1.2 以降、このクラスは Map インターフェースを実装するように改良され、Java Collections Framework のメンバーになりました。新しいコレクションの実装とは異なり、Hashtable は synchronizedです。スレッドセーフな実装が必要ない場合は、Hashtable の代わりに HashMap を使用することをお勧めします。スレッドセーフな高度な並行実装が必要な場合は、Hashtable の代わりに ConcurrentHashMap を使用することをお勧めします。

(強調追加)

于 2012-12-19T18:10:26.717 に答える
1

Hashtable は元のユーティリティ コレクションの 1 つであり、それらはすべて同期されています。すべてのメソッドの前のJavadocの説明から: "

于 2012-12-19T18:10:34.320 に答える