专栏首页EffectiveCodingJVM 《四 JVM 中的String》

JVM 《四 JVM 中的String》

String 这样的量,在我们的认知中是比较特别的。 其中String 是个对象,然后String也可以是个普通的字面量。在每代JDK中对String 的处理也是不同的,本篇的篇幅不大,仅仅觉着String有意思,所以拿出来说。 先说几个常见的问题 比如String tempStr=“123”+“456”; 这句话在编译的过程中就已经是一个字符串了,俗称的编译优化??? String字面量跟String 对象的存放位置是不同的,一个是在堆上,一个在常量池。 所以有时候会产生这样的情况:String abc=“123”;String acb=“123”;String bca=“123”;……取到的是一个对象,但是当我们去new 一个对象时必定是产生一个对象的而不是先检查常量池。 除此之外还有一个方法叫做intern 这个是一个native方法,作用很简单,检查常量池中是否有该字符串量,若没有向常量池中复制一份。 JDK API文档中对intern()方法的描述是: 返回字符串对象的规范化表示形式。 一个初始为空的字符串池,它由类 String 私有地维护。 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。 它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。 所有字面值字符串和字符串赋值常量表达式都使用 intern 方法进行操作。 然后来回说这个常量池,感觉这么说太抽象了,其实说白了就是一个方便查找的存放常量的池子,结构类似于HashMap。 这一个很简洁,就这么多~ 其实跟JVM 并没什么关系,就是想说说 // todo 合并Java 版中的String

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java String &StringUtils

    1、首先String 是一个final类(不能被继承,可以理解为最终的,防止继承使用),里面维护了一个字节数组。 我们经常使用String 一般都是 Stri...

    邹志全
  • 压测 -- cpu 各项指标

    压测过程中很重要的一点是观察cpu的各项指标,比如说cpu idel、user、cpu.load等,这些指标也间接反映了一个系统的抗压能力(容量)。 在lin...

    邹志全
  • Java Concurrent 死锁

    死锁是一个比较大的概念,在并发场景下的加锁行为都有可能产生死锁问题。在Java 并发编程中会有死锁,操作系统里也有死锁,数据库里也见过死锁,分布式里也有死锁, ...

    邹志全
  • Java基础系列2:深入理解String类

    String是Java中最为常用的数据类型之一,也是面试中比较常被问到的基础知识点,本篇就聊聊Java中的String。主要包括如下的五个内容:

    王金龙
  • Java字符串面试问答

    字符串是使用最广泛的Java的类之一。在这里,我列出了一些重要的Java的字符串面试问答。

    淡定的蜗牛
  • java练习本(2019-07-08)

    String str = new String("xiaodao");这个语句一共会创建几个String object?

    微笑的小小刀
  • Java String 对象,你真的了解了吗?

    String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的实现进行优化,以便提升String对象的性能,看下面这张...

    平头哥的技术博文
  • String s=new String("abc")创建了几个对象?

    String str=new String("abc");   紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?

    week
  • Java中String相关面试题

    答:乱码的问题的根源主要是两个:字符集不支持复杂汉字、二进制进行转化时字符集不匹配,所以在 String 乱码时我们可以这么做:

    宇宙之一粟
  • Java-String.intern的深入研究

    When---什么时候需要了解String的intern方法: 面试的时候(蜜汁尴尬)!虽然不想承认,不过面试的时候经常碰到这种高逼格的问题来考察我们是否真正理...

    SecondWorld

扫码关注云+社区

领取腾讯云代金券