文档章节

String的intern()方法

之渊
 之渊
发布于 2017/09/01 15:25
字数 279
阅读 21
收藏 0

今天在看 被人代码的时候,发现有使用到 String的intern()方法 。。。 懵逼了,,,我开发这么久,还是第一次看到有人用这个 方法,我还以为 这个方法不存在呢!! 查看了 api 解析也是 有点不太明白。 百度了一下,

证明了intern()节省内存的结论。 细心的同学会发现使用了intern()方法后程序运行时间有所增加。这是因为程序中每次都是用了new String后又进行intern()操作的耗时时间,但是不使用intern()占用内存空间导致GC的时间是要远远大于这点时间的。

总之就是 String的intern()方法 就是 为了节省 内存空间的。。。而现在一般的 程序电脑内存和资源很足,几乎不会用到这个方法的。。。

可是 确实也有 用到它的地方,,比如 同步锁 方法块里面:

String p = "xxx";
			synchronized(p.intern()) 
			{
    //同步方法。。。
}

好吧!为了更好的控制同步执行, 使用了String的intern()方法 。 也算涨姿势了!!!

© 著作权归作者所有

共有 人打赏支持
之渊
粉丝 11
博文 551
码字总数 161987
作品 0
佛山
程序员
私信 提问
深入解析String#intern

引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。...

摆渡者
2016/04/27
120
0
java 关于string类的intern方法

0.引言 什么都先不说,先看下面这个引入的例子: [java] view plain copy String str1 = new String("SEU")+ new String("Calvin"); System.out.println(str1.intern() == str1); System.ou......

hgqxjj
2017/12/21
0
0
String的intern方法解析

public String intern()返回字符串对象的规范化表示形式。 一个初始时为空的字符串池,它由类 String 私有地维护。 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该...

HappyBKs
2015/09/19
186
0
String类源码阅读记录

在开发过程中String是一个高频使用的类,但是一直没有仔细去阅读过源码。打开源码得知String是一个final的类,它实现了Serializable、Comparable和CharSequence接口 String类包含三个属性:...

上官胡闹
2016/10/22
20
0
浅谈Java String内幕

String字符串在Java应用中使用非常频繁,只有理解了它在虚拟机中的实现机制,才能写出健壮的应用,本文使用的JDK版本为1.8.0_3。 常量池 Java代码被编译成class文件时,会生成一个常量池(C...

longbadx
2016/10/08
18
0

没有更多内容

加载失败,请刷新页面

加载更多

把iOS中block代码异步执行通过信号量变成同步执行

dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); [self downZipFile:^(BOOL downSucceed) { dispatch_semaphore_signal(semaphore); }]; dispatch_semaphor......

壹峰
11分钟前
0
0
excel函数使用

拼接多个字段 =CONCATENATE(B2,C2,D2,E2) 通过函数把一个sheet里面的字段搂到另一个sheet F2 唯一匹配另一个sheet的字段。 www 另一个sheet的名称 H:I www这个sheet里面从H行到I行。 2 从第几...

贾峰uk
12分钟前
0
0
SpringBoot 集成 DBUnit 、database-rider与H2数据库进行单元测试

单元测试 什么是单元测试 参考维基百科: 单元测试(Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在...

Tree
13分钟前
0
0
java基础知识目录

java 注解

细节探索者
16分钟前
0
0
第一个网络爬虫

准备工作 http请求头概念 1、Accept :请求报头域,用于指定客户端可接受哪些类型的信息。 2、Accept-Language :指定客户端可接受的语言类型。 3、Accept-Encoding :指定客户端可接受的内容...

轻轻的往前走
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部