タグ

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

  • Java SE 7の新しいファイルI/O - torutkのブログ

    今まで、なかなかJava SE 7の新しいAPIに取り組めていなかったので、ちょっとしたツールを作成する機会に、コマンドライン引数で指定したファイルを読み込むという、よくありがちなシナリオで、Java SE 7の新しいファイルI/OのAPIを試してみました。 新しいAPIの解説記事はいろいろ出ていますが、意外とわかりづらかったので(解説指向で高度な内容を書かれているためと思われる)、ごく簡単なシナリオでどんなコードになるかをみてみました。 import java.io.BufferedReader; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; これが

    Java SE 7の新しいファイルI/O - torutkのブログ
  • .NET Frameworkのメモリ管理と断片化問題(.NETアプリケーションを長期連続実行するのは要注意) - torutkのブログ

    C#とJavaの言語選定にあたり、実行環境の比較をするため、ガベージコレクタについて調べていました。 .NET Frameworkのガベージコレクション方式は世代別GCですが、Javaとは随分異なっています。特に顕著に異なっているのがLOH(Large Object Heap)と呼ばれる大きなサイズのオブジェクトを格納する専用ヒープ領域がある点です。現在のバージョンでは、85KB以上のサイズのオブジェクトは世代別管理のヒープ(generation 0)ではなく、このLOHに割り当てられます。 この仕組みについては、MSDNマガジン(オンライン)の記事に詳しくあります(以下URL)。 CLR徹底解剖:大きなオブジェクトヒープの秘密 LOHは、第2世代(Javaで言えばOld世代)のGCと同じタイミングでGCがかかります。LOHでは、オブジェクトか回収された後、コンパクションを実施しないため、

    .NET Frameworkのメモリ管理と断片化問題(.NETアプリケーションを長期連続実行するのは要注意) - torutkのブログ
  • 例外処理機構の使い方 - torutkのブログ

    最近、例外処理機構をアプリケーションの中でどのように使うかの議論をあちらこちらで見かけるようになりました。複数のプログラマで共同開発をするプロジェクトにおいては、Javaに限らず、例外処理機構を持つプログラミング言語を使う場合、エラー処理について事前に共通規約を定義しておかないと、出来上がるプログラムがエラー処理に関してとんでもない事態になってしまいます。 また、例外機構については、現時点でもまだ「ベストプラクティス」と言える統一見解がなく、戻り値によるエラー通知か例外によるエラー通知か、また例外を使う場合も、Javaのチェックされる例外(checked exception, 日の日記では以下検査例外と表記)については賛否両論があります。 このあたり、Web上のブログや記事で参考になる言及のあるものをいくつかピックアップします。 Javaでのエラー処理を考える際のヒントになるところ とあ

    例外処理機構の使い方 - torutkのブログ
  • mainメソッドでSwingを書かない訳 - torutkのブログ

    昔は、以下のようにmainメソッド内でSwingの初期化と表示を行っていました。 public static void main(final String[] args) { JFrame frame = new JFrame("MyApp"); : frame.setVisible(true); }ところが、これはスレッド安全性上いかんということです。 では、どうやって書けばよいかを以下に示します。 private static void createAndShowGUI() { JFrame frame = new JFrame("MyApp"); : frame.setVisible(true); } public static void main(final String[] args) { SwingUtilities.invokeLater(new Runnable() { p

    mainメソッドでSwingを書かない訳 - torutkのブログ
  • 1