zoukankan      html  css  js  c++  java
  • String str = "i" 与 String str = new String("i")一样吗?

    Java基础

    String str = "i" 与 String str = new String("i")一样吗?

    不一样,因为内存的分配方式不一样。String str = "i"的方式,Java虚拟机会将其分配到常量池中;而String str = new String("i")则会被分到堆内存中。

    代码示例:

    String x = "叶痕秋";
    String y = "叶痕秋";
    String z = new String("叶痕秋");
    System.out.println(x == y); // true
    System.out.println(x == z); // false
    

    String x = "叶痕秋" 的方式,Java 虚拟机会将其分配到常量池中,而常量池中没有重复的元素,比如当执行“叶痕秋”时,java虚拟机会先在常量池中检索是否已经有“叶痕秋”,如果有那么就将“叶痕秋”的地址赋给变量,如果没有就创建一个,然后在赋给变量;而 String z = new String(“叶痕秋”) 则会被分到堆内存中,即使内容一样还是会创建新的对象。

  • 相关阅读:
    12.10
    4.06Android使用EditText小技巧汇总
    4.05
    4.04Android学习
    4.03Android学习
    4.02Android学习
    4.01Android学习
    3.31构建之法读后感3
    3.30Android学习
    3.29Android学习
  • 原文地址:https://www.cnblogs.com/coderD/p/13831313.html
Copyright © 2011-2022 走看看