`
bailei120
  • 浏览: 11526 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

String intern()的作用及String内存机制

    博客分类:
  • Java
阅读更多

String intern()的作用及String内存机制


String intern()的作用

Jvm 内部维护一个String常量池
例如:

String str = "abc";
str.intern();
  • 首先从java常量池中查找String.equals("abc")的字符传,如果找到,返回其引用,未找到,先把"abc"创建,然后返回其引用

Java String 内存机制

  • 栈内存

    存储基本数据类型和对象的引用。

  • 堆内存

    存储对象。

    常量字符串不属于以上两种内存中。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

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

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

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

    `String#intern()`方法的作用是:如果调用该方法的字符串对象在字符串常量池中已经存在,则返回该池中的字符串引用;如果不存在,那么会将此字符串添加到池中,并返回这个新添加的引用。这样做的目的是减少内存中对...

    String类的intern、split方法

    了解 intern 方法的作用可以让我们在用到字符串常量的时候了解如何节省这些字符串所占用的内存。例如,我们可以使用 intern 方法来避免字符串的重复创建,从而节省内存。 String 类的 split 方法用于将一个字符串...

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

    C#中字符串优化String.Intern、IsInterned详解 C#中字符串优化是指在编程过程中对字符串进行优化,以减少内存占用和提高...通过使用String.Intern和String.IsInterned方法,可以减少内存占用,提高程序的运行效率。

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

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

    关于java String中intern的深入讲解

    intern 方法是 Java String 类中的一个native 方法,它的主要作用是将字符串对象存储在字符串常量池中,以便重复使用相同的字符串对象。intern 方法会检查字符串常量池中是否已经存在一个与当前字符串对象相同的字符...

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

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

    String对象的内存分析

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

    Java String的intern用法解析

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

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

    大家知道,Java中string.intern()方法调用会先去字符串常量池中查找相应的字符串,如果字符串不存在,会在字符串常量池中创建该字符串然后再返回。  字符串常量池是一个固定大小的HashMap,桶的数量默认是1009, ...

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

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

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

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

    StringTable.pdf

    2. **内存分布**:在JDK6及之前,StringTable位于JVM的永久代;JDK7开始,移到了Java堆;JDK8进一步改到了元空间,以减少永久代的内存压力。 3. **不可变性**:String对象是不可变的,一旦创建,其内容就不能改变。...

    Java String对象的经典问题

    `String`类提供了一个名为`intern()`的方法,该方法的作用是返回字符串对象的规范化表示形式。具体来说,当调用`intern()`方法时,如果字符串池中已经存在一个与当前字符串完全相同的字符串,则返回该字符串的引用;...

    String创建对象

    如果一个`String`对象不再被引用,Java的垃圾回收机制会自动回收该对象所占用的内存。但在常量池中的`String`对象会一直存在,直到JVM停止运行。 8. **字符串常量池优化**: Java 7开始,字符串常量池被移到了堆...

    Java中的String池

    `intern()`方法是`String`类的一个成员方法,它的作用是将当前字符串对象放入String池中(如果该字符串尚未存在于池中),并返回池中已存在的字符串的引用。这意味着如果使用`new String("Hello").intern()`来创建...

    深入了解java 中的String

    `String` 类提供了一个 `intern()` 方法,该方法的作用是将当前字符串放入字符串池中,并返回字符串池中的引用。如果字符串池中已经有相同的字符串,则返回池中字符串的引用,否则会在池中创建一个新的字符串对象,...

Global site tag (gtag.js) - Google Analytics