等しい文字列を多数格納しています。値は頻繁に変更されることはありません。
参照のみを返すことになっているのでstring.intern()
、に格納されている1億個のまったく同じ文字列のリストのそれぞれをインターンしましたArrayList
。
Javaのメモリが大幅に減少することを期待していましたが、通常の文字列とインターンされた文字列の保存では、0.1%未満の違いが見られました。
私は何かが足りないのですか、それともこれは予想される動作ですか?
リスト生成コード
long max = 100000000;
for(int i =0 ; i < max;i++ ){
list.add("sometextelidedforbrevity".intern());
}
なしのメモリ使用量は1242360 KBで、ありの場合は1 242184KBです。