文档章节

String的intern()方法

之渊
 之渊
发布于 2017/09/01 15:25
字数 279
阅读 19
收藏 0
点赞 0
评论 0

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

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

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

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

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

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

© 著作权归作者所有

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

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

摆渡者 ⋅ 2016/04/27 ⋅ 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

String java.lang.String.intern()的作用

NOTE:intern方法是native方法 String java.lang.String.intern() Returns a canonical representation for the string object. A pool of strings, initially empty, is maintained private......

此帐号已注销 ⋅ 2013/05/10 ⋅ 3

String的intern方法解析

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

HappyBKs ⋅ 2015/09/19 ⋅ 0

String类源码阅读记录

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

上官胡闹 ⋅ 2016/10/22 ⋅ 0

Java 之 String 类型

1. String是一个对象 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 首先String不属于8种基本数据类型(byte, char, short, in...

长平狐 ⋅ 2013/01/06 ⋅ 0

java:string和常量池

刚刚写了段代码,内容如下: public class LearnHashCode { public static void main(String[] args) {String s1 = "ABC";String s2 = "ABC";System.out.println(s1==s2); //trueSystem.out.......

樂天 ⋅ 2014/10/30 ⋅ 0

浅谈Java String内幕

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

longbadx ⋅ 2016/10/08 ⋅ 0

String类--深入理解

String类的特点: 1 不可改变。String对象是不可改变的。 public String toUpperCase() { return toUpperCase(Locale.getDefault()); } public String toUpperCase(Locale locale) { if (lo......

只想一个人静一静 ⋅ 2014/03/09 ⋅ 0

String类中的有趣的记录

1 String类中的 "=" 代码如下: public class Main{ public static void main(String[] args) { String a = "hosee1"; String b = "hosee1"; System.out.println(a == b); String c = new S......

Hosee ⋅ 2016/01/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 55分钟前 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 58分钟前 ⋅ 0

Spring JDBC使用方法

普通实现: 1、创建数据表customer。 可以使用任何数据库实现,在项目中要引入相应数据库驱动包并配置相应数据库连接。 2、创建Customer pojo。 Customer类的属性对应数据库的属性,除了为每...

霍淇滨 ⋅ 今天 ⋅ 0

Contos 7 安装Jenkins

Jenkins是一款能提高效率的软件,它能帮你把软件开发过程形成工作流,典型的工作流包括以下几个步骤 开发 提交 编译 测试 发布 有了Jenkins的帮助,在这5步中,除了第1步,后续的4步都是自动...

欧虞山 ⋅ 今天 ⋅ 0

revel

revel install go get github.com/revel/revelgo get github.com/revel/cmd create new app revel new git.oschina.net/zdglf/myapp run app revel run git.oschina.net/zdglf/myapp ot......

zdglf ⋅ 今天 ⋅ 0

49. Group Anagrams - LeetCode

Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List<String>> groupAnagrams(String[] strs) { Map<Strin......

yysue ⋅ 今天 ⋅ 0

spring Email

使用spring发Email其实就是使用spring自己封装携带的一个javamail.JavaMailSenderImpl类而已。这个类可以当一个普通的java对象来使用,也可以通过把它配置变成spring Bean的方式然后注入使用...

BobwithB ⋅ 今天 ⋅ 0

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征? RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的...

tuoleisi77 ⋅ 今天 ⋅ 0

思考

时间一天天过感觉自己有在成长吗?最怕的是时光匆匆而过,自己没有收获!下面总结下最近自己的思考。 认识自己 认识另一个自己,人们常说要虚心听取别人意见和建议。然而人往往是很难做到的,...

hello_hp ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部