HHeLiBeXの日記 正道編

日々の記憶の記録とメモ‥

Java

Threadはinterruptすれば停止するというものではないのだよ(2)

以下の続き。 Threadはinterruptすれば停止するというものではないのだよ - HHeLiBeXの日記 正道編 これを書いていたときに、「他に何かあったような‥」と思いながら、なかなか思い出せなかったので放置していたのだが、唐突に思い出したので。 今回示すどち…

java.lang.management パッケージ - ThreadMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 ThreadMXBean (Java 2 Platform SE 5.0) 文字通りスレッドに関連する情報を取得…

java.lang.management パッケージ - RuntimeMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 RuntimeMXBean (Java 2 Platform SE 5.0) これは実行環境(runtime)に関する情報…

java.lang.management パッケージ - OperatingSystemMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 OperatingSystemMXBean (Java 2 Platform SE 5.0) 名前から推測できるとおり、OS…

悩みがちなLOBデータの挿入手順メモ

JDBCで表にデータを格納するとき、INT型とかVARCHAR型とかなら自信を持って「こうやるんだ」と言えるんだけど、LOBデータ(CLOB、BLOB、XML)となると途端に「え、えと‥」となってしまう自分がいる。単なるcharacter stream、byte streamなんだけどね。 そんな…

java.lang.management パッケージ - MemoryPoolMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 MemoryPoolMXBean (Java 2 Platform SE 5.0) java.lang.managementパッケージに…

java.lang.management パッケージ - MemoryMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 MemoryMXBean (Java 2 Platform SE 5.0) java.lang.managementパッケージに属す…

File.createTempFile() と File.deleteOnExit() のコンボ罠の続き

昨日書いたエントリの続き。File.createTempFile() と File.deleteOnExit() のコンボ罠 - HHeLiBeXの日記 正道編「再現はできていない」と書いたが、目指していたものがLinux環境でのJava VMのクラッシュ(hs_err_xxxx.log を吐く状態)だったためで、メモリが…

File.createTempFile() と File.deleteOnExit() のコンボ罠

巷ではかなーり昔から認識されている爆弾コードらしい。 String prefix = "testDeleteOnExit_"; String suffix = ".txt"; File in = File.createTempFile(prefix, suffix); in.deleteOnExit(); // 安全のため いや、全然「安全」じゃない、むしろ危険らしい…

JDKのバージョンの違いによる文字列連結のパフォーマンスの差

もともとは、次のようなことを考えていた。 '+'演算子による文字列連結は、コンパイル時にStringBuffer/StringBuilderを使ったコードに置き換えられるんだよな。 だったら、 Java 2 SE 1.4.2 でコンパイルして Java 2 SE 1.4.2 で実行 Java 2 SE 1.4.2 でコ…

java.lang.management パッケージ - GarbageCollectorMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 GarbageCollectorMXBean (Java 2 Platform SE 5.0) このインタフェースは、Memor…

Javaのスレッドやメモリ関連で最近よく使用しているツールメモ

このところ、Javaのスレッドやヒープメモリ関連の問題に悩まされているので、その手の調査ツールをよく使用する。 そんなわけで(謎)、お気に入りのツールたちのメモ。 侍 侍 - ログ , スレッドダンプ解析ツール 私自身は主にjavacoreの調査に使用しているが…

java.lang.management パッケージ - MemoryManagerMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 MemoryManagerMXBean (Java 2 Platform SE 5.0) Java VMのメモリマネージャに関…

Threadはinterruptすれば停止するというものではないのだよ

何か処理をしているThreadがあるとき、その処理を停止させるときに一番多いケースはThread#interrupt()メソッドを呼ぶことだろうか。 しかし、interrupt()メソッドを呼べばどんなスレッドでも停止するというわけではない。 そもそも停止できない public clas…

Webアプリケーション開発の際の注意事項

実際に直面しているのはIBM WebSphere Application Server(WAS)で稼動するWebアプリケーションなのだが、Webアプリケーションを停止しても、そのアプリケーションをロードしたクラスローダーが残ってしまうという問題に悩まされている人がいる。‥いや、他人…

例外は例外なく記録せよ

これは大昔から「例外は握りつぶすな」というような感じで言われていることだが、まだまだまだまだ存在する。トラブルの原因調査を妨げるという意味で一種の爆弾コード。Javaの例外は例外なくログに記録しましょう(洒落じゃなくて)。ログレベルに応じて出力…

java.lang.management パッケージ - CompilationMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 CompilationMXBean (Java 2 Platform SE 5.0) Java VMのコンパイルシステムの情…

サイズ変化に強いList、Map、Set

前にこんなのを書いた。 http://d.hatena.ne.jp/hhelibex/20091027/1256641969 java.util.HashMap のインスタンスを使いまわしてはいけない - HHeLiBeXの日記 正道編 で、ついでなので、仮に使いまわすとして、格納されるデータ数(つまりList、Set、Mapのサ…

java.lang.management パッケージ - ClassLoadingMXBean インタフェース

ManagementFactory クラスを介して取得できるMXBeanの一つが実装するインタフェース。 java.lang.management パッケージ - ManagementFactory クラス - HHeLiBeXの日記 正道編 ClassLoadingMXBean (Java 2 Platform SE 5.0) クラスのロード数を取得するメソ…

java.util.ArrayList のインスタンスを使いまわす時はArrayListとして扱うべし

java.util.ArrayList クラスは、いわゆる「可変長配列」を表現するList実装である。 ArrayList (Java 2 Platform SE 5.0) このクラスも、java.io.ByteArrayOutputStreamやjava.util.HashMapと同様に、内部に配列を持っている。 ByteArrayOutputStreamやHashM…

java.util.HashMap のインスタンスを使いまわしてはいけない

java.util.HashMap クラスは、言わずと知れた、keyとvalueの組を保持するMap実装である。 HashMap (Java 2 Platform SE 5.0) java.io.ByteArrayOutputStream のエントリを書いている最中に言われて(謎)気付いた。 このクラスでも、内部で配列を使用しており…

java.io.ByteArrayOutputStream のインスタンスを使いまわしてはいけない

java.io.ByteArrayOutputStream クラスは、各種データをbyte配列にしたい場合に便利なクラスである。 ByteArrayOutputStream (Java 2 Platform SE 5.0)しかし、このクラスのソースコードを見れば分かるが、このクラスは内部にデータを保持するためのbyte配列…

java.lang.management パッケージ - ManagementFactory クラス

そういえば、ちょっと前に誰かが使っていたなぁ、と唐突に思い出して、一通り試してみようと思った。 java.lang.management (Java 2 Platform SE 5.0) そもそも、MXBeanって何?とかそんなところからスタートしているので、「http://www.itarchitect.jp/tech…

java.util.Scannerクラス

Java 2 SE 5.0で、java.util.Scannerクラスが追加された。 A simple text scanner which can parse primitive types and strings using regular expressions. A Scanner breaks its input into tokens using a delimiter pattern, which by default matches …

java.lang.Boolean クラスの compareTo() メソッド

Java 2 SE 5.0では、BooleanクラスがComparableインタフェースを実装するようになった。 Boolean (Java 2 Platform SE 5.0) それにより、Booleanオブジェクトも自然順序が定義されたオブジェクトとなった。 で、Booleanオブジェクトの自然順序ってなんだろう…

例外クラスのコンストラクタの引数

java.lang.Throwable クラスでは、次の4つのコンストラクタが提供されている(Java 2 SE 1.4 以降) Throwable() Throwable(String message) Throwable(String message, Throwable cause) Throwable(Throwable cause) で、Java 2 SE 1.3 以前では Throwable を…

Thread#getStackTrace() メソッド

次のクラスやメソッド: java.lang.StackTraceElement クラス java.lang.Throwable#getStackTrace() メソッド が Java 2 SE 1.4 で追加されているのでちょっと混乱するのだが。java.lang.Thread クラスには Java 2 SE 5.0 で getStackTrace() メソッドが追加…

String#intern()メソッドのパフォーマンス

過去にStringクラスのintern()メソッドに関することを書いた。 Stringオブジェクトに関する罠 - HHeLiBeXの日記 正道編 Stringオブジェクトに関する罠に対する罠 - HHeLiBeXの日記 正道編 で、計測屋(何)としては実行時間も計らねば(謎)。 まず、計測用のコ…

変数のスコープの局所化

一般的にどうなのだろうか、という話もあると思うが‥ 自分は、括弧やインデントが多少増えても、変数のスコープを局所化することの方が重要だと考えている。 例えば、こんなコード。(たまたまJSPなだけ。) <% String result = ""; String attr1 = (String) s…

ゼロから学ぶ!最新Javaプログラミング

ゼロから学ぶ! 最新Javaプログラミング (日経BPパソコンベストムック)作者: 日経ソフトウエア出版社/メーカー: 日経BP社発売日: 2009/09/10メディア: 雑誌購入: 2人 クリック: 43回この商品を含むブログ (7件) を見るふと見つけて半ば衝動的に。自分が読むと…