美文网首页
String.intern()

String.intern()

作者: 一如既往wfqwfq | 来源:发表于2019-09-27 09:43 被阅读0次

1、

该方法是将字符串加入到字符串常量池中的方法。

2、基于jdk1.7 inter()分析

String s1 = new String("1") + new String("1");
s1.intern();
String s2 = "11";
System.out.println(s1 == s2) //true

这个程序的运行结果是true。
分析:

1. String s1 = new String("1") + new String("1");

栈中存着s1变量。堆中有3个对象,new String("1")、new String("1")和两个拼接后生成的对象("11")。常量池中有一个对象("1")。s1指向堆中的("11")。

2. s1.intern()

首先判断字符串常量池中是否有对象"11"。如果有,则什么事都不干。如果没有,则在字符串常量池中添加一个堆上"11"的引用。假设这个引用叫p,p = s.intern(),p和s指向的是堆中的同一个对象,p = s

3. String s2 = "11"

去常量池找"11"对象,发现P指向的对象是"11",那么s2也指向堆中的"11"。所以 s1 == s2,因为它们都指向堆中对象"11"。


IMG_20190906_092252.jpg

相关文章

  • String.intern()

    String.intern()原理String.intern()是一个Native方法,底层调用c++的Strin...

  • 浅谈Java String.intern()

    简书 占小狼转载请注明原创出处,谢谢! String.intern()原理 String.intern()是一个N...

  • String.intern()方法作用

    String.intern()方法设计的初衷:重用字符串,节省内存 JDK1.6中使用String.intern(...

  • 【译】 JVM Anatomy Park #10: String

    原文地址:JVM Anatomy Park #10: String.intern() 问题 String.inte...

  • KOTLIN中的String.intern()与JAVA中的St

    layout: post title: KOTLIN中的String.intern()与JAVA中的String....

  • String.intern

    • 直接使用双引号声明出来的String对象会直接存储在常量池中。• 如果不是用双引号声明的String对象,可以...

  • String.intern()

    1、 该方法是将字符串加入到字符串常量池中的方法。 2、基于jdk1.7 inter()分析 这个程序的运行结果是...

  • String.intern()

  • 字符串优化

    参考文章:Unity 游戏的 string interning 优化C#的字符串优化-String.Intern、...

  • String

    深入分析String.intern和String常量的实现原理 占小狼 关注 2016-12-08 18:26 ·...

网友评论

      本文标题:String.intern()

      本文链接:https://www.haomeiwen.com/subject/iazkyctx.html