Java的String类中的intern()方法

原创 2007年10月05日 13:15:00

intern

public String intern()
返回字符串对象的规范化表示形式。

一个初始为空的字符串池,它由类 String 私有地维护。

当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。

它遵循以下规则:对于任意两个字符串 st,当且仅当 s.equals(t)true 时,s.intern() == t.intern() 才为 true

所有字面值字符串和字符串赋值常量表达式都使用 intern 方法进行操作。字符串字面值在 Java Language Specification 的 §3.10.5 定义。

返回:
一个字符串,内容与此字符串相同,但一定取自具有唯一字符串的池
可以用来查找内容相同的字符串,节省内存开销
String s1="hello";
String s2
=new String("hello");
s1
==s2;   //false  地址不同
s1.equals(s2);  //true 内容相同
s1==s2.intern();  //true 

Java技术——你真的了解String类的intern()方法吗

说实话我本来想总结一篇Android内存泄漏的文章的,查阅了很多资料,发现不得不从Java的OOM讲起,讲Java的OOM又不得不讲Java的虚拟机架构。在JVM架构一文中也有介绍,在JVM运行时数据...
  • SEU_Calvin
  • SEU_Calvin
  • 2016年08月23日 16:40
  • 27794

Java技术——你真的了解String类的intern()方法吗

0.引言 什么都先不说,先看下面这个引入的例子: [java] view plain copy String str1 = new String("SEU")+ new Stri...
  • baidu_31657889
  • baidu_31657889
  • 2016年08月25日 16:30
  • 8674

深入理解java虚拟机(三):String.intern()-字符串常量池

深入理解java虚拟机(一):java内存区域(内存结构划分) 深入理解java虚拟机(二):java内存溢出实战   看源码:  public native String intern();    ...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2014年02月19日 14:47
  • 11363

java6,7,8中String.intern进化史与深度剖析

这篇文章将要讨论 Java 6 中是如何实现 String.intern 方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整。 字符串池 字符串池(有名字符串标准化)是通过使用唯...
  • chenleixing
  • chenleixing
  • 2015年05月14日 08:48
  • 1896

String中intern的方法

String中intern的方法 首先查看官方API那个的解释: ——————————————————————————————————————— intern public S...
  • yaerfeng
  • yaerfeng
  • 2013年07月01日 14:09
  • 1187

java代码性能提高技巧之String.intern()

这篇文章将要讨论 Java 6 中是如何实现 String.intern 方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整。 字符串池      字符串池(有名字符串标...
  • zhushuai1221
  • zhushuai1221
  • 2016年09月25日 20:00
  • 428

几张图轻松理解String.intern()

在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。 其实要搞明白String.intern(),我总结了下面几条规则: 一、new String...
  • soonfly
  • soonfly
  • 2017年04月12日 20:35
  • 1010

java中String类常用方法的使用与实例

String类中提供了丰富的用于操作字符串的方法。 int indexOf(String str) 该方法用于返回当给定字符串在当前字符串中的位置,若当前字符串不包含给定字符串则返回-1。 重载...
  • kaishizhangcheng
  • kaishizhangcheng
  • 2016年08月26日 23:15
  • 4696

String类的intern方法随笔

最近看书看到了String的intern()方法,特此记录以下 首先,来看源码中的定义:/** * When the intern method is invoked, if the pool al...
  • silk_bar
  • silk_bar
  • 2017年01月15日 22:52
  • 212

String类的intern()方法详解

引言   在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的...
  • bxwbxw555
  • bxwbxw555
  • 2017年02月09日 19:33
  • 195
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java的String类中的intern()方法
举报原因:
原因补充:

(最多只允许输入30个字)