Java
JavaのSocket周りでは割とよくある感じですが、以下のコードだとconnectもreadもデフォルトで無限に待ち続ける挙動をします。 BufferedImage image = ImageIO.read(new URL(url).openStream()); Javadocをみると以下の通り。 Opens a connection to this URL…
StringBuilderがStringBufferよりどれほど高速か、実際に少しパフォーマンス比較をしてみました。 useStringBuffer : 141 milsec. useStringBuilder : 125 milsec. useStringBuffer : 156 milsec. useStringBuilder : 125 milsec. useStringBuffer : 141 mil…
モバイルなどのShift_JIS環境から投げられたGETパラメータのクエリをjava.net.URLDecoder.decode(String, String)でdecodeしようとすると文字化けしてしまう場合があります。これはURLDecoder.decodeにバグがあるというわけではなく、URLEncoder.encodeでenc…
以下のようにjava.util.List#toArray()では、引数に配列型のインスタンスを渡して配列の型を確定します。 List<SampleBean> list = new ArrayList<SampleBean>(); SampleBean[] res = list.toArray(new SampleBean[0]); 引数で空インスタンスを渡さないと、Object[]として返すのでCla</samplebean></samplebean>…
PerlのCPANモジュールはインストール時にmake testで単体テストを全実行しますが、Javaで単体テストを全実行したいという場合、antのタスクを作って組み込みます。説明を付したタスクのサンプルが以下のような感じになります。 <target name="maketest"> <delete dir="test" failonerror="false" /> <mkdir dir="test/classes" /> <mkdir dir="test/result" /> </mkdir></mkdir></delete></target>
例えばライブラリをつくってjarにして配布した場合、Eclipse等のIDE上でinterface型オブジェクトのメソッド補完するときに引数の変数名がjava.lang.Stringなら「s」とかjava.lang.Objectなら「obj」とかになってしまうのをどうににかできないかなと少し調べ…
初めて使ったのですが、Romeはフォーマットを意識する必要もなく簡単にRSSフィードのパースができて素晴らしいですね。 import java.net.URL; import java.util.List; import org.xml.sax.InputSource; import com.sun.syndication.feed.synd.SyndEntry; imp…
リソース上のファイルからbyte配列でデータを取得する場合にデータを必要十分な配列長に格納する実装を書いてみました。 private byte[] _getFileContentInByteArray(InputStream is, byte[] registeredArr, int bufArrLen, int depth) throws IOException {…
java.util.List型(ArrayListでインスタンス化)コレクションを全要素取得するような処理の以下の3つについてパフォーマンスを比較してみました。 get(index)でアクセス Iteratorを取得して使用 拡張for文 なお、比較には拙作のツールを使用しました。http:/…
Arrays.asList()は、配列*1を引数にとって固定長のjava.util.List型のオブジェクトを生成するメソッドです。このstaticメソッドが返すオブジェクトはjava.util.Arrays$ArrayListクラスでインスタンス化され、内部的にはListの型パラメータで指定した型(なけ…
身近でjava.util.HashMapのインスタンスがスレッドセーフでない事に起因したトラブルの話があったので、実際にサンプルを作って試してみました。まず各スレッドで動作するRunnableなworkerクラス。 import java.util.Map; public class Worker implements Ru…
経験豊富なJava屋さんの中では常識なのかもしれませんが、、String#replaceAll(String, String)またはString#replaceFirst(String, String)で第二引数の置換文字列(replacement)に$を含めると以下の2パターンの例外が発生します。 public class Replacemen…
以下のエントリを参考にさせていただいて、特にはまるところもなくデプロイまで確認できました。http://googleappengine.seesaa.net/article/117110106.htmlといっても、まだブランクのままなのでこれからつくっていきます。 追記(4/12)sa-strutsと書いて…
GAE用に新しくGanymedeを入れたので、JadclipseのインストールでJadを探していたら、本家のサイトが死んでいるのですんなり入手できず、ここにあたるまで見つけられませんでした。http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=48514&forum=12&3…
とりあえず昨日サインアップだけはやったのですが、今日はデプロイまでの手順を確認しました。 といっても非常に簡単です。基本的にはここに書いてあることをやるだけです。http://code.google.com/intl/ja/eclipse/docs/getting_started.html 以下は私がや…
Google App Engine for Javaがテスト運用を開始したということで、とりあえずサインアップをしておきました。何か作ってみたいと思ってます。ファイルシステムへのアクセス禁止ということで、どういうアプリをデプロイするか考えないといけませんね。
どこ見たらいいかなという感じだったのですが、Googleコード検索で以下のライブラリがヒットしました。http://www.google.co.jp/codesearch/p?hl=ja#huR6Kv39C40/trunk/plugin/src/org/hackystat/sensor/eclipse/preference/SensorPreferencePage.java&q=ecl…
外部ファイルに出力したSerializableなオブジェクトをデシリアライズして得たオブジェクトについて少し試してみました。 package net.seratch.sample.serializable; import java.io.Serializable; public class Weblog implements Serializable { private st…
「なんか急にFirefoxの動作が鈍くなったな」と思っていたところ、いつの間にかJava Quick Starterなるアドオンが勝手にインストールされている事に気づきました。そういえば、さっきJREの自動アップデートを受け入れたのでした。そのタイミングでアドオンも…
「==」でマッチするのは参照先が同じ参照(ポインタ)の場合のみ。まれに「==」で比較ができてしまう場合があるのは、文字列リテラルで同じ値の場合には同じ実体をみる参照となるためであり、リテラルでない場合は文字列として同じ値であっても実体は別物で…
commons-loggingのソース解析を読んでいて興味がわいたので、Constructorオブジェクトを使ったインスタンス生成を試しました。内部クラスで試してみたら例外発生。デバッグ実行してみるとparameterTypesの配列長が1になっています。 内部クラスの時はnewInst…
現場での事象で詳細なログなど手元にないので説明中心の記事になってしまいますが、SeamアプリをJBoss ASにデプロイ、起動してポート8080から直接アクセスすると正常に動作していたA4Jが、Apache連携してApache経由でアクセスしたところ、まったく動作しなく…
2chのJavaのスレ読んでて、「superキーワード、クラスメソッドで使えないのなんで?」っていう話題が。 302 :デフォルトの名無しさん :sage :2008/10/25(土) 20:38:46 クラスメソッドの中でthisキーワードを使えないは理解できるんですが、superまで使え…
素でミスして全角の混じったメソッドをcommitしてた酔狂なメンバーがいて、それがコンパイルエラーにならない事から初めて知りました。きっと私が今まで知らなかっただけで、有名な話なのだとは思うのですが、面白いですね。 package cx.ath.seratch; public…
もし以下のようなコードを書いてしまうと、#{exA.doSomething()}を呼んでも全く意味がなくなってしまいます。 @Stateless @Name("exA") public class ExampleABean implements ExampleA { @In @Out private ExampleEntity exEntity; @In private ExampleB ex…
追記(6/25):この記事は理解不足なまま書かれたものですので、参考にしないで下さい。 前にMVCをきっちり分けたフレームワークを作って開発していくつもり、みたいな事を書いたのですが、実際に検討していくうちにキレイに分けていくのはなかなか難しいな…
表題の通りなのですが、具体的には <h:commandButton type="button" value="hogehoge">みたいに書いても、変換されたHTMLをみるとバッチリsubmit化しているよ、というような事です。 ネット上での話題が少ないJSFにあって結構有名なトピックのようで「JSF input button」あたりでググると英語で普通にいろいろ</h:commandbutton>…
追記(6/25):この記事は理解不足なまま書かれたものですので、参考にしないで下さい。 追記(2009/6/6):今になって読み返すとあまりにも理解していないまま書いている文章で、これがウェブ上に残り続けるのは恥ずかしすぎるので、、、削除させて下さい。…
EJB3連携のSeamウェブプロジェクトをつくって、IDE上からJBoss ASにdeployするときに***-ds.xmlが管理されていません。そのままASを起動してもEntityManagerFactoryが読めない的エラーになってdeployは失敗してしまいます。ds.xmlを右クリック→「Deploy To S…
「Seamはじめました」と書いたところ、早速コメントをいただいてJBoss Toolsのインストーラを自宅の開発PCに入れてみました。これで家でもサクサクやれそうです。しかし、all-in-oneで入れられるインストーラって便利ですね。 http://journal.mycom.co.jp/co…