タグ

ブックマーク / argius.hatenablog.jp (4)

  • Javaで1行ずつテキストデータを読み込むイディオムの変遷 - argius note

    テキストデータを読み込む場合、言語にかかわらず1行ずつ読み込んで処理します。ここではこのイディオムを"read-lines"と呼ぶことにします。 スクリプト言語なんかだと大抵、最初からforeachで済んでしまっていたりしますが、初期のJavaではちょっと面倒な手順が必要でした。 新しいバージョンではだいぶ簡単簡潔に書けるようになりましたが、今度はたくさんありすぎて、どれがなんなのかが良くわからなくなっています(大袈裟)。 そこで今回は、"read-lines"の変遷についてまとめてみました。 最近Javaを始めた方がバージョンが古い時に書かれたソースコードを読むときに役に立つ...かも知れません。 目次 基 BufferedReader (Java1.1~) Scannerと拡張for文 (Java5~) java.nio.file.Filesとtry-with-resources(J

    Javaで1行ずつテキストデータを読み込むイディオムの変遷 - argius note
  • NailGun - 「めちゃくちゃ起動がはやい」 - argius note

    語の記事が少なかったからでしょうか、高速起動を調べていたときにはすでにあったはずなのに、見つけられなかったなんて。やっぱり英語の記事もちゃんと読まないとダメですね。 さてさて、この「NailGun」はJavaアプリを高速起動する方法「JRubyテク」(マイコミジャーナル)で紹介されたことで一躍有名になった(かも知れない)オープンソースソフトウェアです。 ネイティブプログラムのクライアントから常駐させたサーバプロセスにプログラム実行要求を出し、サーバプロセス上でプログラムを実行させることで、JVMプロセス起動時のオーバーヘッドを解消させることに成功しています。サーバプロセスのすべてのI/Oがクライアントとつながっているので、CUIを含む様々なJavaアプリケーションで利用できます。JRubyでは組み込みでサポートされているようです。 使い方は、Nailgun Quick Start(英語

    NailGun - 「めちゃくちゃ起動がはやい」 - argius note
  • Java SE 7 (1) - 文字列switchのからくり - argius note

    遅れ馳せ乍ら、Java7について自分なりにまとめてみます。 最初は概論から入るのが定石でありましょうが、現状は何時投稿できるか分からない状況ですので、小出しにしていくことにします。 まずは、"Strings in switch Statements"から。 これは珍しくピーンと来たので、確認をしてみます。 final class Main { void f(String s) { switch (s) { case "aa": System.out.println("1"); break; case "bb": System.out.println("2"); break; default: } } } これをコンパイルして、javapでディスアセンブルしてみます。 Compiled from "1.java" final class Main { Main(); Code: 0: alo

    Java SE 7 (1) - 文字列switchのからくり - argius note
  • IEのonchangeは使いにくい - argius note

    IE5で既にこういう挙動なので、今更な話ではあります。 IEで、コントロールの入力値が変更されたときのイベントを捕捉したい。で、onchangeを使ったはいいのですが、radioとcheckboxの場合はクリックされてもイベントが発火しない。どうやら、IEではフォーカスを失ったときにonchangeイベントが発火するようです。 IE5.5、IE6、IE7で確認。Firefox3では、クリックした瞬間にイベントが発火します。 <form name="f"> <input type="radio" name="r" value="0"> <input type="radio" name="r" value="1"><br> <input type="checkbox" name="c" value="0"> <input type="checkbox" name="c" value="1"><

    IEのonchangeは使いにくい - argius note
  • 1