首先看下面一个代码

java String常量池

然后运行结果:

java String常量池

那通过结果我们可以看到  只创建了一个String 对象 为什么会这样呢这就是java中的常量池  

当创建一个常量对象时  先判断 常量池是否存在 相同内容的常量   如果存在就不再继续创建 而是将找到常量的引用 给 要创建的字符串常量    他们其实是一个对象

而下面这个代码:

java String常量池

运行结果为:

java String常量池

    从运行结果我们可以看到这是两个不同的字符创对象

  那是因为 常量池中本身存在"123" 这个字符创对象    在 执行new String("123" ) 时  只是将常量池中的"123"复制到 堆中

然后对象的引用 交给b  这其实就是两个字符串对象  一个字 常量池 一个在 堆中  所以运行结果为false

相关文章:

  • 2021-09-29
  • 2021-09-07
  • 2021-05-16
  • 2021-07-13
  • 2022-12-23
  • 2021-05-29
猜你喜欢
  • 2022-12-23
  • 2021-10-12
  • 2021-10-25
  • 2021-08-09
  • 2021-07-13
  • 2022-02-02
相关资源
相似解决方案