サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
www5b.biglobe.ne.jp/~psoft
Javaプログラムで何らかの仕事を周期的にやろうとする時にはjava.util.Timerとjava.util.TimerTaskというクラスを利用することができます。java.util.Timerはいわゆるタイマ機能を提供します。タイムアウトした時に希望するタスクを別スレッドで実行することが出来ます。タイムアウトは1回きりのものでも、周期起動させるものでもOKです。java.util.Timerクラスでスケジュールされるタスクは、java.util.TimerTaskのサブクラスにする必要があります。java.util.Timerタスクで提供されるタイマ機能はリアルタイム性こそ保証されませんが、処理に時間が掛かりすぎるスレッドを停止させたりする機能等もあるので、広範な利用が可能だと思われます。以下に簡単なサンプルを書いてみます。 まずスケジュールされるタスクを書いてみます。安直ですが標準
XMLをJavaで処理するとなると普通はDOMを使いましょう、となります。実際DOMはXMLをハンドリングする機能が充分に用意されているので、通常はこれで良いとなるのですが、扱うXML文書のサイズや数が増えてくるとDOMの弱点であるオブジェクトサイズの大きさがネックになるケースが出てきます。 そんな時に登場するのがSAXです。DOMはW3Cで標準化が行われていますが、SAXはXML-DEVメイリングリストのメンバーが中心となってsaxproject.orgを創り、仕様作成が行われています。標準化団体が技術的志向(ないしは政治的要因)で分裂したり、けんかしたり、というのは珍しくない現象ですが、DOMとSAXは今のところ敵対関係にあるというのではなく、相互補完している形になっています。それぞれに適切な分野があるでしょう、という処ですね。 JavaでSAXの機能を利用するのは簡単です。SAXのA
write throughというのは、Cacheへの書き込み時にCacheのsourceにも書き込んでしまうことです。読み出し時はキャッシュにデータがあればそれを読み、無ければCacheのsourceから読み込みます。容易に解るように、読み出しではcache hitするほど高速動作が期待できますが、書き込みではオーバーヘッド分だけ確実に遅くなります。多くのコンピュータシステムの場合、書き込みよりも読み出しの方が圧倒的に多いので、これでも充分意味のあるシステムになります。ちなみにCacheへの書き込み時より後でゆっくりとCacheのsourceに書きに行く方式はwrite backと呼びます。 さて、何もしないCacheと違って、write through cacheは内部にcache dataを保持する仕組みが必要です。keyに対してvalueを高速に見つけ出す必要があるので、java.u
同種のデータの集まりがあるとき、それをソート(整順)させたいという事は 多いものと思います。アルゴリズムの本には必ずといってよいほど色々な ソートに関して記述されています。 ただJavaでプログラムを作成する場合、自分で何かソートのアルゴリズムを実装 する、というような事はしません(何か特別な理由がある場合は別ですが)。 配列をソートしたいときはjava.util.Arrays、Collectionをソートしたいときは、 java.util.Collectionsのクラスメソッドを使うのが普通です。 例えばStringの配列を昇順にソートしたいのであれば、 String[] stringArray = getArrayFromAnywhere(); java.util.Arrays.sort(stringArray); とするだけです。int[]やchar[]といった配列でも同じようにソー
これまでJavaでenumのようなことをやろうと思うと、intで代用するか、 Javaの鉄則でかかれているようなクラスを作ってやるかくらいしか方法が ありませんでした。JDK1.5で導入されたenumは、コンストラクタや メソッド、フィールドが定義できる点など、ほとんどclassと同じに なっています。 非常にシンプルなものだと、 public enum ColorEnum {RED, GREEN, BLUE} で終わりです。全てのenumには、全要素の配列を返すstaticメソッドvalues()が 定義されているので、 ColorEnum[] colors = ColorEnum.values(); for (ColorEnum c : colors) { System.out.println(c); } とやると、 RED GREEN BLUE と表示されます。順序がちゃんと保証され
JavaのCoreクラスをぼやっと眺めていると、なかなか面白いクラスがあることが判ります。ここで紹介するjava.io.StreamTokenizerクラスは入力ストリームの字句解析をする機能を提供します。この機能に構文解析機能を組み合わせれば、プログラミング言語の処理系を作ることができるわけで、なかなか興味深いクラスです。 Unix系のシステムを使っている人なら、lexというプログラムのことを聞いたことがある人は多いと思いますが、実際に使ったことがある人は結構少ないでしょう。ちなみにGNUプロジェクトではflexという名前でプログラムが提供されています。lexは字句解析を行うプログラムを生成するプログラムですが、StreamTokenizerは自身が字句解析を行います。多少の設定で挙動を変える事もできます。 字句解析というのは、要するに何かのソースファイルを読み出して、トークンと呼ばれる
「Ant椿は恋の花」「Ant驚くタメゴロウ」等Antについて薀蓄を述べようというのではありません。Apache Jakartaプロジェクトのサブプロジェクトの一つであるAnt用のbuild.xmlの書き方について簡単に説明しようと思います。 Unixを使ったソフトウェア開発ならば通常makeを使いますし、Windows上では所謂統合開発環境と呼ばれるツールを使うことが多いと思います。ただmakeはとても便利で汎用的に使える反面、依存関係をちゃんと書くのが非常に難しいのが難点です。依存関係を自動作成してくれるツールもありますが、なかなか思うように動いてくれない事が多いのです。もう少し何とかならないかと思うことはしばしばです。一方Windows上の統合開発環境と呼ばれるツールの場合、何をやってくれているのかが外からは見えにくく、また別のツールとの組み合わせをしたくてもできないことが多く、何だか
このページを最初にブックマークしてみませんか?
『www5b.biglobe.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く