String的intern方法

String类的intern()方法在 Java 中是一个用于获取字符串常量的方法。当调用intern()方法时,它会将当前字符串添加到 Java 虚拟机中的常量池(stringtable)中,并返回指向该常量的引用。常量池是 Java 系统级别提供的缓存,用于存储同类字符串,以避免重复创建相同字符串对象。
String类的intern()方法的具体行为如下:

  1. 如果常量池中已经包含一个等于当前字符串的字符串(通过equals()方法判断),则返回常量池中该字符串的引用。
  2. 否则,将当前字符串添加到常量池中,并返回该字符串的引用。
    需要注意的是,intern()方法只适用于String类型的对象。当使用new关键字创建字符串时,该字符串不会进入常量池。只有当使用String类的构造函数或其他方法(如concat())创建的字符串才会被添加到常量池。
    举例说明:
String str1 = "abc";  
String str2 = "def";  
String str3 = "abc";
// 调用 intern() 方法  
String intern1 = str1.intern(); // 返回常量池中的"abc"引用  
String intern2 = str2.intern(); // 返回常量池中的"def"引用  
String intern3 = str3.intern(); // 返回常量池中的"abc"引用
// 输出结果:  
// intern1 和 intern3 指向同一个对象,即常量池中的"abc"  
// intern2 指向另一个对象,即常量池中的"def"  

通过使用intern()方法,可以确保在程序中使用的是同一个字符串对象,避免了因为重复创建相同字符串对象而导致的内存浪费。

你可能感兴趣的:(开发语言,java)