优化Java字符串集合的内存使用情况

优化Java字符串集合的内存使用情况,第1张

优化Java字符串集合的内存使用情况

千万 不能
使用中的String.intern(已经有过多年的与此相关的各种内存问题)。而是创建您自己的缓存,类似于String.intern。基本上,您需要一个Map,每个键都映射到其自身。然后,在缓存任何字符串之前,您“实习”它:

private Map<String,WeakReference<String>> myInternMap = new WeakHashMap<String,,WeakReference<String>>();public String intern(String value) {  synchronized(myInternMap) {    WeakReference<String> curRef = myInternMap.get(value);    String curValue = ((curRef != null) ? curRef.get() : null);    if(curValue != null) {      return curValue;    }    myInternMap.put(value, new WeakReference<String>(value));    return value;  }}

注意,对键和值使用弱引用,这样就不会保留不再使用的字符串的引用。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5561840.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存