原文:使用String.intern减少内存使用

最近写一个程序,从文件中读取一些字 词,然后存储起来供别的类引用。 对每个读入的词创建一个String,结果许多同样内容的也会存储多份,会占用大量内存。 开始的一个想法是使用map set来存储所有遇到的词,这样就没有重复的了。然后别的类只需要引用这些词就可以了。 这样还需要一些工作量,经别人介绍,发现了String.intern方法。 例如下面代码 a和b是两个独立的对象,它们有各自的存储。所以 ...

2013-10-23 19:01 1 6746 推荐指数:

查看详情

synchronized (string.intern())

在jdk7下慎用String.intern()作为synchronized的对象锁: https://www.cnblogs.com/yhlx/p/3498387.html String.intern()在jdk7的变化后,我们为了在单例类里并发时对同一个用户保证操作原子性,会加同步块 ...

Tue Nov 20 01:56:00 CST 2018 0 1891
String.intern()

创建String的几种方式以及背后的存取规则: 1,String str1 = new String("1900");(后面不带+),这个过程中,实际上有两个对象生成,一是在堆上创建了"1900"这个字符串对象,同时,检查常量池,池中如果有"1900",不管是指向"1900"的引用还是实打实的串 ...

Sat Feb 08 01:12:00 CST 2020 0 198
JVM系列之:String.intern和stringTable

目录 简介 intern简介 intern和字符串字面量常量 分析intern返回的String对象 分析实际的问题 G1中的去重功能 总结 简介 StringTable是什么?它和String.intern有什么关系呢?在字符串对象 ...

Sun Jul 26 19:25:00 CST 2020 1 429
JVM系列之:String.intern的性能

目录 简介 String.intern和G1字符串去重的区别 String.intern的性能 举个例子 简介 String对象有个特殊的StringTable字符串常量池,为了减少Heap中生成的字符串的数量,推荐尽量直接使用String ...

Tue Jul 28 16:41:00 CST 2020 1 526
C#的字符串优化-String.Intern、IsInterned

https://www.jianshu.com/p/af6eb8d3d4bf 首先看一段程序: using System; class Program { static void Main(string[] args) { string a = "hello world ...

Thu Aug 09 17:14:00 CST 2018 1 1193
String内存intern()方法

一、关于常量池 字符串在Java中用的非常得多,Jvm为了减少内存开销和提高性能,使用字符串常量池来进行优化。 在jdk1.7之前(不包括1.7),Java的常量池是在方法区的地方,方法区是一个运行时JVM管理的内存区域,是一个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态 ...

Wed Feb 20 20:32:00 CST 2019 6 3196
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM