クラスを変えるとメモリー使用量は1/3に 問題3はメモリー不足になった結果起こったことですが,元のプログラムは極めてメモリー使用効率の悪い方法です。 図3(1)は元のDAO部分を模式的に示したものです。列名は各行で同じであるにもかかわらず,行ごとに列名の文字列を持っており,無駄にメモリーを消費しています。同じ文字列を複数持たないようにする方法として,図3(2)のようにする方法があります。これは「String.intern()」を用いる方法で,複数の同じ文字列を一つのインスタンスにまとめることができます(JDBCドライバ・ソフトによっては,この処理を行うものがある)。 またHashMapは,単なるデータの格納庫としてはスペース効率が悪いです。同じMap構造でも,問題2で説明したEnumを用いた「EnumMap」の方がメモリー使用量は少なくなります。試しに筆者の手元のPCで試してみました。三つ