Java
毎回作ってはどこかにやっちゃうのでコピペ用。 package com.gluegent.common.collect; import java.util.Enumeration; import java.util.Iterator; public class Iterables { public static <T> Iterable<T> from(final Enumeration<T> from) { return new Iterable<T>(</t></t></t></t>…
これも、9月17日に実際に起きた話。なんだったんだこの日は...。あるIIS+Tomcatのクラスタ構成にしているお客さんのところで、運用者が差バーにリモートログインしてログオフしただけで、Tomcatが落ちるという恐ろしい現象が。 いろいろ調べたところ、こち…
DecimalFormat, MessageFormat, String.format を比較。 だいたい予想通りの結果。 MessageFormatが一番遅いのか。 実行回数:1000 MessageFormat: time=83ms 35ms 15ms 13ms 13ms String.format: time=44ms 27ms 13ms 10ms 10ms DecimalFormat: time=14ms 9m…
年末に@ITにアップされた記事で 実は、プリミティブデータ型しか使わないAPIだけなら、JNA 3.2.0から、5行目のインターフェイスも書かず、もっと簡単に呼び出せます。詳細はJNAサイトを参照してください。 JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(2/4…
ASCII文字だと弱いのでバイナリキーを用意したいけど手動でJavaコード書くなんて骨が折れるので作成。 import java.util.Random; public class BinaryKeyGenerator { /** * @param args [0]=出力するバイト配列の長さ */ public static void main(String[] a…
9年Java触っているのに、ローカルクラスを知らなかった。昨日初めて知った。きっかけはGWTのサンプルコード。メソッド内でクラス定義がいきなり出ていて驚いてしまった。若手2人は知っていた。ショック!
commons.langのFastDateFormat、java6からの和暦対応してほしいなぁ。いつになったらプール作成から解放されるんだろう。commons.poolは使わないクラスがてんこ盛りだしジェネリックス使えないしで、Poolクラスを作成。 import java.util.ArrayList; import …
使える機能をうまく選択することで制限付きながらGAE/JでJavassistが扱えます。GAEではクラスパスが無いのでルックアップがうまくいきません。サーブレットやフィルタのinit()で以下のようにクラスパスを登録しておきます。 ClassPool pool = ClassPool.getD…
deprecatedコメントで、epsilon が必要とかいう。これは final double EPSION = 0.0000000001; を宣言しておいて、題3引数 deltaに渡せばいいらしい。 rhino-js内でテストケース書いてて気づいた。Numberだからint比較できず全部doubleになっちゃうから仕方…
javaのclassは32bitでも64bitでも同じで、64bitのJITが頑張るって話をid:ashigeruさんに聞いた。JNIに踏み込まなければclassだけ差し替えればそのまま行けるようだ。やるなぁ。
BigDecimalのフォーマットに問題があって成果物をリリースできなかった。以下はJDK5_U12〜U14だと落ちるがJDK6_U03だと正常動作する。 public class BigDecimalTest { public static void main(String[] args) { System.out.println("9.4 -> " + String.form…
いま丁度困っている。 http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/windows/classpath.html 6からか〜!5で欲しかった〜。 mavenのdependenciesから持ってきたjarのリストをANTでテンプレート置換・クラスパスに展開できないかなぁと模索して…
いがぴょんさんのまとめが分かりやすい。 使えるようになったのはJDK5のUpdate7かららしい。
たいしたメモではないが残しておく。 current_dir=$PWD export current_dir cd リポジトリの名前 sh 対象リポジトリにあるシェルプログラムを相対パスで指定 cd $current_dir としておけば良い。非公開なdependencyが多かったり既に提供元がハッキリせずどの…
いい加減にnative2asciiから解放されたい。UTF-8対応してくれーと思っていたら、Properties#loadFromXMLなんてのが5から出ていた。こんな感じ↓。 @Test public void xmlPropertyCheck() throws Throwable { Properties properties = new Properties(); URL r…
仕事の機会で、3日前に情報収集した内容です。javaに限らないとは思いますが、java前提で書いてます。 開発上のプラクティス SCM,ITS(BTS),JUnit,Jcoverage,check-style,FindBugs これらをIDEやCIに統合する。 負荷テスト,プロファイラ,監視ツール 人の手を…
おおっ!知らない間にJDKダウンロードは標準が6になってたんですね。すっかりウラシマたろう。
思い返すとJUnitってCoCの好例ですね。思い返しシリーズが多いけど、お仕事でフレームワークの採用評価に関わるガイドラインを作るというプロジェクトに関わっているので、日々思い返さないといけないのです。 もう毎日、フレームワークの常識、定説、考えま…
思い返せば、シリアライズってインピーダンスミスマッチの最たる例だった。参照オブジェクトの同一性と関係性を確保しながらツリー構造を保持しつつ、バイナリに退避・復元するのはかなりきついです。主キー的なものもなかったりするのでO/Rより厳しい感じ。…
Tigerから加わったenumは、コンパイル時にEnum型と組み合わせる際にいろいろ自動的にコードジェネレート(valueOf(String)やvalues)してるんですが、デシリアライズ時のreadResolveもちゃんと実装しているようです。 Enumクラスを見るとordinal,nameがシリア…
スレッドセーフじゃないことを騒いでるような文書がありますけど、問題はドキュメント化うんぬんじゃないでしょう。こちらの情報は実験とかしているけどソース見れば一発で分かるんで実験するまでもない。calendar というフィールドを持っちゃっていて、form…
stream closed. は、jetty-5.1.10についているxercesImpl.jarだと出るようだ。2.7.1だと出なくなった。
高い負荷がかかると、読んでいる最中のファイルハンドルが閉じられて、stream closed. や、Premature end of file. などのIOExceptionが出る。システムリソースを食いつぶさせない緊急措置としての機構なのかもしれない。さべぇ。調べなきゃ。
antで予め実装コードを作成するようなものを考えてみているけどリフレクションだけじゃ引数の宣言名とか取れないのでjavaCCを試してみることに。最新(javaCC 4.0)には、javaGrammerに1.5もあるようでtiger使った案件のソースでチェックした。ほぼ成功する…
今まで自然に書いていたのですが、何気にwith構文の代替機能っぽいなと気付いたのでメモしときます。誰か気に入るかもしれないし。どこかで既出かもしれないけど個人的には発見した感じだったので。 _thread = new Thread(this) { { setDaemon(true); setNam…
最近プライベートフィールドの前にアンダースコアを付けて使っているんですけど、どうも規約に反してることになるらしい。後ろにアンダースコアをつける流儀は、このコーディング規約との折衷案だったのかなと。
perlプログラムが出力する実数よりJavaの方が1桁ほど丸めが少ないようです。きちんとコンバートされているかdiffで比較がし辛いのはよくないということで、ちょっと調べたところ以下のように、DECIMAL64の定義から1桁引くと良いようです。 MathContext mat…
Resinデフォルトページになっちゃって、リファレンス見れないじゃないですか。
-classpathを依存jar全てに通しているのにNoClassDefFoundではまった。-jarで打ち消されてしまうらしい。-jarのやつの中のMANIFEST.MFのClass-Pathに全て指定することで解決したんだけど、javaコマンドのUsageだけじゃ分かりにくい。Class-Pathが追加定義と…
途方にくれていたけど、http://www.kbmj.com/tech/index.php?itemid=16&catid=2 で解決しそうな予感。 おんなじようにハマってググッたらココにあたるように、ログを置いときます。 An unexpected exception has been detected in native code outside the V…