Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

2006-07-01から1ヶ月間の記事一覧

デーモンスレッド

スレッドをデーモンスレッドにすると、他のスレッド(ユーザスレッド)が全て終了すると勝手に終了する便利なスレッドになるらしいです。知らんかった。で、 Thread th = new Thread(); th.start(); th.setDaemon(true);としたんですがNG。setDaemon()はstart(…

swingはシングルスレッドモデルらしい

タイトルの通りなのです。swingのリソースにイベントループ以外から触る場合には、SwingUtilities.invokeLater(Runnable run)を使って処理を割り込ませます。後でソース見てみようかな。Cocoaも似たような設計だった気がします。

スレッドとメモリリーク

こちらのページ。Tigerではなおってるそうですが、こういうこともあったんですねえ。。

InterruptedException

こちらの記事を読んでInterruptedExceptionの意味を納得。これは"割り込みが発生したことを知らせてる"ってよりは、"速やかに処理をキャンセルしてreturnして欲しい"ってことを指示してる例外なのですね。で、InterruptedExceptionをもらったメソッドだけが…

string.intern()

もう一つポジペネタです。string.intern()メソッドは、同じ文字列表現に対して一意のオブジェクトを返してくれます。こいつはnativeメソッドです。例えば、htmlの解析で"BR"と言う文字列を何百個も保持する可能性がある場合にはintern()しておくとインスタン…

Stringのコンストラクタ

Java EE勉強会のポジペのネタです。 import java.util.*; class Main{ // 1MBのサイズのStringを作る static String makeHugeString(){ StringBuilder buf = new StringBuilder(); for(int i = 0 ; i < 1000000; i++){ buf.append(i % 10); } return buf.toS…

階層問い合わせ

Oracleのconnect by句の解説です。初めて知った。。。ループに対しては無防備なので、注意が必要です。ループしてると一時表領域を食いつぶします。

jconsole

JDK5.0からのツールですが、jconsoleが便利です。JVMのヒープの使用量などをチェック出来るGUIツールです。 java -cp . -Dcom.sun.management.jmxremote 〜とJVMを起動するとjconsoleからアクセス出来るようになります。別のターミナルからjconsoleと打ってG…

eclipseのコンパイラ(2)

昨日の追記に書いたJDTコンパイラの起動方法ですが、plugins/org.eclipse.jdt.core_3.2.0.v_671.jar に入ってるクラスを起動したら、見事にコンパイラとして動きました♪ゝ(▽`*ゝ)(ノ*´▽)ノ♪ ・・・でも、javacと同じくローカルのExtensionsディレクトリのja…

eclipseのコンパイラ

こちらを拝見する限り、eclipseのコンパイラはjavacじゃなくて内部に持ってるってこと? そうなると、この前の疑問の答えはここにありそうですね。

java.lang.Runtime

Runtime#traceMethodCalls と Runtime#traceInstructions に true を渡して見たんだけど、何もロギングしてくれる気配なし。ググってみると、こんな投稿がありました。 As far as I know that method works in the Sun JVMs if the code has be compiled wit…

今実行中の行番号が欲しい

Throwableのソースを眺めていて、もしかしてprintStackTrace使わなくても実行中の行番号とか得られるのでは!?と思いついたんだが、すでに定石として紹介されてました。これはJDK 1.4で加わったStackTraceElementクラスのおかげでできる技です。JDK 5.0では…

ArrayListとperlの配列の違い 最終夜

perlっぽいListを作ったわけですが、3つほど考えておくべき点があります。 『AbstractListを使ったこと』 AbstractListで楽チン実装してしまいましたが、パフォーマンス的にはあまりよくないかもしれません。PerlLikeListの全てのメソッドはPerlLikeListのge…

RandomAccessインタフェース

JREのソースをうろついていたら、見たことないインタフェースを発見。hyukiさんもクイズに出されていますが、 java.util.Collections.reverse() 辺りを見るとなんのためのインタフェースかがよくわかります。配列とかはget(int)でアクセスした方が早く、双方…

なんでだろう?

Eclipse3.2リリースです。IntelMacでもパッチ当てずに動いて、幸せです。で、全然関係ないことで悩んでるんですが、Macなjava + Eclipseの環境で、 /Library/Java/Extensions/*.jar はEclipseから見えるのに、~/Library/Java/Extensions/*.jar は見えないの…