`
ajax_xu
  • 浏览: 156063 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

String.intern() java常量池

阅读更多

        当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。
它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。

 

        String str1 = new String("123");
        String str2
= "123";
       
        String str3
= str1.intern();
       
        System.out.println((str1
== str2) +","+ (str3 == str2));
       
       
        String str4
= new String("234");
        String str5
= new String("234");
       
        String str6
= str4.intern();
        String str7
= str5.intern();
       
        System.out.println((str4
== str5) +","+ (str6 == str7));

分享到:
评论

相关推荐

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

    这个方法的主要功能是检查当前字符串对象的值是否已经在Java虚拟机(JVM)的字符串常量池中存在。如果存在,它会返回常量池中的引用;如果不存在,它会将当前字符串的引用放入常量池,并返回这个新添加的引用。 在...

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

    在Java虚拟机(JVM)中,`String.intern()` 是一个非常特殊且重要的方法,它与字符串常量池紧密相关。字符串常量池是一种内存优化机制,存储了程序中所有的字符串字面值和通过 `intern()` 方法添加的字符串。这个池...

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

    Java String#intern() 内存模型是 Java 语言中一个重要的概念,.string#intern() 方法是 Java 字符串常量池中一个重要的组件。字符串常量池是一个固定大小的 HashMap,桶的数量默认是 1009,从 Java7u40 开始,该...

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

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

    Java字符池.pdf

    有时人们误以为`String.intern()`会将所有String对象都放入全局String表,实际上只有当字符串的Unicode序列在常量池中不存在时,`intern()`才会这么做。对于已经存在的字符串,`intern()`只会返回常量池中的引用。 ...

    全面理解java中的String.doc

    总之,理解Java中的String类,特别是它的创建方式、常量池以及`intern()`方法的工作原理,对于编写高效、内存友好的代码至关重要。在实际编程中,根据需求合理选择创建和操作字符串的方法,可以避免不必要的内存开销...

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

    在Java中,有两种创建字符串对象的方式:直接使用双引号声明出来的String对象会直接存储在常量池中。如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern方法会从字符串常量池中查询当前字符...

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

    `intern()`方法是一个非常特殊的函数,它将字符串常量池(String Constant Pool)的概念引入到我们的讨论中。 字符串常量池是Java虚拟机(JVM)内存模型的一部分,位于堆内存的常量池区域。在Java 6及之前,这个池...

    关于java String中intern的深入讲解

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

    java 中String.equals和==的比较

    Java 中 String.equals 和 == 的比较 Java 中 String.equals...需要注意的是,在 Java 中,String 是一个特殊的类,它可以使用字面量来创建字符串对象,并且可以使用 intern() 方法将字符串对象添加到字符串常量池中。

    字符串string.zip

    值得注意的是,字面量方式创建的字符串会存储在常量池中,而使用构造函数会创建堆内存中的新对象。 3. **字符串比较**:Java提供了多种比较字符串的方法,如`equals()`用于内容比较,`equalsIgnoreCase()`忽略大小...

    Java String的intern用法解析

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

    深入探索Java常量池

    深入探索Java常量池 Java常量池是Java虚拟机(JVM)中一个非常重要的概念,它主要分为两种:静态常量池和运行时常量池。静态常量池是class文件中的常量池,包括字符串(数字)字面值、类和方法的信息,占用了class...

    String类的intern、split方法

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

    8 StringTable(字符串常量池).md,学习代码

    **StringTable(字符串常量池)详解** 在Java编程语言中,`StringTable`是一个重要的概念,它涉及到字符串对象的创建、存储以及内存管理。理解`StringTable`的工作原理对于优化程序性能和节省内存资源至关重要。 #...

    Java String 字符串常量池解析

    Java String 字符串常量池解析 Java 中的字符串常量池是一种为了提高性能和减少内存开销的机制。它是 JVM 实例化字符串常量时进行的一些优化,主要是为了减少字符串对象的创建和存储。 字符串常量池的设计思想是...

    Java String对象的经典问题

    - **str1 == str2.intern()**:返回`true`,`str2.intern()`会将`str2`的内容放入字符串常量池,并返回池中该内容的引用,因此`str1`和`str2.intern()`都指向字符串常量池中的同一个对象。 - **str2 == str2.intern...

    探究Java常量本质及三种常量池(小结)

    "探究Java常量本质及三种常量池" Java中的常量池是Java虚拟机(JVM)中的一种机制,用于存储编译期常量和运行期常量。常量池是JVM中的一种重要机制,它可以将常量存储在内存中,并提供快速的访问和共享机制。 Java...

Global site tag (gtag.js) - Google Analytics