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

关于String对象的intern()方法的使用

 
阅读更多
API里是这样描述的:
当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。

很明显 当你String? a? =? new? String("a");时 池中并没有"a" 因此当执行String? b? =? new? String("a").intern();时并不会把"a"的引用给b 所以不会相等

但如果写 String a = new String("a").intern();因为调用了intern()所以在没查到"a"的情况下会将"a"加入到池里 那接下来String b = new String("a").intern();就会找到"a"的引用并返回 所以就会相等
分享到:
评论

相关推荐

    String类的intern、split方法

    该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 intern 方法被调用时,如果对象池中已经包含这一个相等的字符串对象则返回对象池中的实例,否则添加字符串到对象池并返回...

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

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

    关于java String中intern的深入讲解

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

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

    Java String#intern() 内存模型是一个复杂的机制,需要深入理解 Perm 空间和 Heap 空间的关系,合理地使用 String#intern() 方法,以提高程序的性能和可靠性。 知识点: 1. 字符串常量池是一个固定大小的 HashMap...

    解析Java中的String对象的数据类型 字符串

    String.intern()方法是Java中的一个方法,它可以将一个String对象添加到常量池中。如果在常量池中已经存在相同的Unicode字符串常量,那么String.intern()方法将返回该常量池中的字符串常量的引用,否则,它将在常量...

    java中Object对象String对象的解析.pdf

    intern() 方法用于将 String 对象添加到 String 池中。如果 String 池中已经存在该字符串,则返回该字符串的引用;否则,创建一个新的字符串对象并添加到 String 池中。 Java 中的 Object 对象和 String 对象是两个...

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

    深入理解`String#intern()`方法对于优化内存使用和理解Java的内存模型至关重要。`intern()`方法是一个非常特殊的函数,它将字符串常量池(String Constant Pool)的概念引入到我们的讨论中。 字符串常量池是Java...

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

    String对象有个特殊的StringTable字符串常量池,为了减少Heap中生成的字符串的数量,推荐尽量直接使用String Table中的字符串常量池中的元素。 那么String.intern的性能怎么样呢?我们一起来看一下。 String.intern...

    Java String的intern用法解析

    在Java中,每个String对象都有一个唯一的标识符,这个标识符是通过String对象的intern方法获取的。intern方法将字符串对象添加到字符串常量池中,并返回该字符串对象的引用。如果字符串常量池中已经存在该字符串对象...

    String创建对象

    // 转换为String对象 ``` 4. **intern() 方法**: `String`类的`intern()`方法用于获取常量池中的字符串引用。如果常量池中已存在该字符串,则返回其引用;否则,将字符串添加到常量池并返回引用。例如: ```...

    Java String对象的经典问题

    ### Java String对象的经典问题 #### 一、String 类与对象机制概述 在Java中,`String`类是一个非常重要的类,它提供了丰富的功能用于处理文本数据。`String`类是不可变的(immutable),这意味着一旦一个`String`...

    java String的intern方法

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

    Java String对象使用方法详解

    Java String对象使用方法详解 Java String对象使用方法详解是Java编程中一个非常重要的知识点,了解String对象的使用方法可以帮助开发者更好地编写Java程序。在Java中,String对象是不可变的,它的值一旦创建便不能...

    JAVA面试题解惑系列(二)——到底创建了几个String对象-JAVA程序员JAVA工程师面试必看.pdf,这是一份不错的文件

    String 对象池是由 String 类维护的,可以通过 intern() 方法来访问字符串池。 三、String 对象池的机制 当我们创建一个 String 对象时,JAVA 虚拟机(JVM)首先会在字符串池中查找是否已经存在了该对象,如果存在...

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

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

    String对象的内存分析

    例如,使用`String`的`intern()`方法可以确保重复的字符串引用同一个常量池中的实例,从而减少内存占用。同时,合理使用`StringBuilder`或`StringBuffer`进行字符串拼接,而非多次创建`String`对象,也能提高效率。

    通过String.intern()方法浅谈堆中常量池

    5. 字符串常量与new的String对象相加:这会混合使用堆和常量池,创建新的对象并可能修改常量池。例如: ```java String s9 = "mn" + new String("op"); String s10 = "mnop"; System.out.println(s9 == s10); //...

Global site tag (gtag.js) - Google Analytics