转载

Java基础(2)------常量池

  1. 直接使用双引号声明出来的 String 对象会直接存储在常量池中。
Java基础(2)------常量池
  1. 使用new关键字创建String的对象不会存储在常量池中.
Java基础(2)------常量池
  1. 如果不是用双引号声明的 String 对象,可以使用 String 提供的 intern 方法。String.intern() 是一个 Native 方法,它的作用是:如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用;如果没有,则在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用。

与intern有关的比较例子:

Java基础(2)------常量池
Java基础(2)------常量池
Java基础(2)------常量池

注意点:

  • == 比较的是内存地址 , equals比较的是值
  • 字符串拼接的时候:变量+变量 和 直接用字符串+字符串拼接是不一样的,前一种会创建个新的对象。
  1. 我们在使用字符串的时候应尽量避免多个字符串拼接,因为这样会重新创建对象。如果需要改变字符串的话,可以使用 StringBuilder 或者 StringBuffer。
原文  https://juejin.im/post/5cfdf93e6fb9a07ee85c1e6f
正文到此结束
Loading...