2013-06-01から1ヶ月間の記事一覧

ファイル名に使用できない文字、使用できない名前

IT

ユーザが入力したファイル名が、その OS で使用できない文字を含んでいるかを事前にチェックして、ダメならユーザにメッセージを表示する」という要件があった。Windows なら サイト URL、フォルダ名、ファイル名に使用できない文字 あたりに情報がまとまっ…

Chrome と IE の Cookie の空白文字列の扱いの違いについて

JS

Chrome と IE で Cookie の扱いが違うことに気が付いた。jQuery で以下のようにテキストフィールドの内容を Cookie に保存する場合: <input type="text" id="foo"> <script> document.cookie = "foo=" + $("#foo").val(); </script> テキストフィールドに何も入力されていない場合空白文字が保存される。…

String の + 演算 vs StringBuilder#append(String)

String は immutable なオブジェクトなので、例えば "1" + "2" というコードを書くと "1" の領域の最後に "2" がくっつくわけではなく "12" という新しいインスタンスが割り当てられる。だが "1" + "2" + "3" と書くと、"12" という String がまずできて、そ…

Integer.parseInt(String, int) にご注意

0xFFFFFFFF は 32 bit int で、型が符号付きなら -1 です。Java は符号なし int はないので、常に -1 なのですが、ちょっとした罠があります。以下は文字列 "FFFFFFFF" を int に直そうとするコードです。これを実行するとどうなるでしょう。 public class P…

WeakReference と ReferenceQueue

今日は新しい技を会得したぞ!Java のオブジェクトが GC で回収されたことを検知したい場合、いくつかの方法があります。対象のオブジェクトに finalize() を実装しておく、というのは最も簡単な方法ですが、副作用があるし、何より自分で実装したクラスじゃ…