タグ

javaとtipsに関するZephidのブックマーク (2)

  • Mapインターフェイスの実装クラスの違いを知る

    JavaのコアAPIに含まれるjava.util.Mapインターフェイスは、キーと値とのマッピングを表すデータ構造のためのインターフェイスです。同パッケージに含まれるListインターフェイスとともに、Javaプログラミングでは非常によく使われるインターフェイスといえるでしょう。 コアAPIには、このMapインタフェース実装クラスがいくつも用意されています。マップというデータ構造は、常にキーを通して値へのアクセスを行うものです。そのため、キーが許容する値やその格納方法などが、個々の実装を特徴付けるポイントになります。 マップの利用頻度は非常に多いだけに、コアAPIで使えるマップの種類を確認しておくのは、効果的なプログラミングへとつながります。ここでは、java.utilパッケージに含まれる5つのMap実装クラス、Hashtable、HashMap、TreeMap、IdentityHashMa

    Mapインターフェイスの実装クラスの違いを知る
  • Java Tips: かしこいロック

    単純なロックの問題点 Java にはマルチスレッドプログラミングにおける一般的な排他制御を記述するのに適した synchronized ブロック、synchronized メソッドという構文があり、保護したいデータにアクセスする全てのコードをこれらの構文を使って同期化すれば、排他制御は簡単に実現できる。しかし、この方法には問題もある。例えば電子掲示板システムのログデータにこの方法を適用することを考えてみよう。 電子掲示板に対するアクセスを全て同期化するということは、一度に一人のユーザしかログにアクセスできないということである。なんらかの理由(サーバ・クライアント間の回線速度やクライアントの処理速度の低下など)でログの読み込みに時間がかかっているユーザが一人れば、サーバ側の計算機資源にいくら余裕があっても、その間は他の大勢のユーザは掲示板にアクセスできない。すなわち計算機資源の利用効率が著し

    Zephid
    Zephid 2009/07/23
    2ch(の実況板)はどうなってるんだろか。
  • 1