`
wangzl2222
  • 浏览: 150917 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

String intern()

 
阅读更多
在intern()方法被调用时,如果String Pool(java 执行时会维持一个String Pool)中

已经有了相同的String对象时就会从Pool中返回该String对象,否则

新建的String 对象会被加入Pool中并返回该String对象的Reference

举例如下:

-------**************************************-------

String str1="wang";

String str2="wang";

System.out.println(str1==str2);
//true

-------**************************************-------

String str1="wang";

String str2=new String("wang");

System.out.println(str1==str2);
//false

-------**************************************-------

String str1="wang";

String str2=(new String("wang")).intern();

System.out.println(str1==str2);
//true

-------**************************************-------

从上面的三个例子大家不难看出:

当我们采用常量赋值的形式实例化String对象时

系统是先new 然后再调用String类的intern()方法
分享到:
评论

相关推荐

    String类的intern、split方法

    String类的intern、split方法 String 类的 intern 方法是一个本地方法,定义如下:public native String intern();该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 ...

    C#中字符串优化String.Intern、IsInterned详解

    C#中字符串优化String.Intern、IsInterned详解 C#中字符串优化是指在编程过程中对字符串进行优化,以减少内存占用和提高程序运行效率。在C#中,字符串是一种特殊的数据类型,它既是基元类型又是引用类型。在编译和...

    Ben.StringIntern:字符串缓存以合并重复的字符串; 限制了第二代LRU驱逐以及Gen2 GC集合的进一步驱逐

    受此问题的启发而被关闭:“ API请求:string.Intern(ReadOnlySpan ...)” 共享池已设置上限; 具有第二代LRU驱逐,以及第二代GC集合的进一步驱逐。 使用示例 馆藏 using Ben . Collections ; array = array . ...

    深入理解 Java String#intern() 内存模型.docx

    "深入理解 Java String#intern() 内存模型" Java String#intern() 内存模型是 Java 语言中一个重要的概念,.string#intern() 方法是 Java 字符串常量池中一个重要的组件。字符串常量池是一个固定大小的 HashMap,桶...

    关于java String中intern的深入讲解

    Java String 中 intern 的深入讲解 Java String 中的 intern 方法是一个非常重要的概念,它可以将字符串对象存储在字符串常量池中,以便重复使用相同的字符串对象,减少内存的占用。下面我们将深入讲解 Java String...

    深入理解JavaString#intern()内存模型Ja

    在Java编程语言中,`String`类是极其重要的,它提供了许多用于操作字符串的方法,其中之一便是`intern()`。深入理解`String#intern()`方法对于优化内存使用和理解Java的内存模型至关重要。`intern()`方法是一个非常...

    jdk1.8之后的String.intern()方法内存分析

    关于String.intern()方法,这个问题都被问烂了,有的文章在分析的时候还在用jdk1.7,jdk1.8之后内存模型发生了变化,内存的变化也会影响intern方法的执行,这里有必要写文章分析一下,请大家务必从头开始看,这样...

    string类的常用方法.pdf

    `String intern()` - **描述**: 返回字符串对象的规范化表示形式。 - **返回**: 字符串池中的字符串,如果当前字符串已经存在于池中,则返回同一个引用;否则返回当前字符串的一个规范化版本并将其添加到池中。 ##...

    JVM系列之String.intern的性能解析

    那么String.intern的性能怎么样呢?我们一起来看一下。 String.intern和G1字符串去重的区别 之前我们提到了,String.intern方法会返回字符串常量池中的字符串对象的引用。 而G1垃圾回收器的字符串去重的功能其实和...

    提高java代码性能各种技巧

    字符串池可以使用自己定义的 Map<String, String> 或者使用 JDK 提供的 String.intern() 方法实现。 Java 6 中的字符串池 在 Java 6 中,字符串池是存储在 PermGen 中的固定的内存区域中。PermGen 的大小是固定的...

    Java String的intern用法解析

    Java String的intern用法解析 Java String的intern方法是Java中一个非常重要的方法,它可以将字符串常量池中的字符串对象返回给我们。今天,我们将深入探究Java String的intern用法解析,了解它的工作原理和应用...

    不同jdk版本下对String的intern()的分析.pos

    pos文件是ProcessOn的源文件,可以导入后直接打开编辑。 内容是:不同jdk版本下对String的intern()的分析

    Java中关于String的全面解析

    Java中的String是一个非常重要的类,它提供了两种创建方式和一种特殊的存储机制(String intern pool),并且String类中声明了一个char[]数组和一个int类型的变量hash,用于存储字符串的内容和哈希值。

    JAVA面试题解惑系列合集.docx

    - **方法**:`String intern()`用于获取字符串池中的引用。 6. **总结**:通过`new String()`创建的字符串对象存储在堆中,而字符串字面量直接指向字符串池中的对象。字符串池中的对象只存储一次,可以被多个变量...

    java String的intern方法

    Java中的`String`类的`intern()`方法是一个非常有趣且重要的功能,它涉及到字符串的内存管理,特别是字符串常量池。常量池是Java虚拟机(JVM)的一部分,存储预编译的字符串字面量和其他常量。`intern()`方法的作用...

    mat工具测试类

    6. **使用Instance Filter和String Intern Pool**:过滤特定类型的实例,或者分析字符串常量池的内存占用。 通过以上步骤,开发者可以系统地进行内存测试和分析,从而提升Java应用的稳定性和效率。在实际开发中,...

    string常量池和intern_韩雅茹Java系列2021.pdf

    如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中。 在Java中,字符串常量池存在于方法区中。方法...

Global site tag (gtag.js) - Google Analytics