当前位置:首页 > 编程笔记 > 正文
已解决

String的intern方法

来自网友在路上 173873提问 提问时间:2023-11-21 04:04:20阅读次数: 73

最佳答案 问答题库738位专家为你答疑解惑

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()方法,可以确保在程序中使用的是同一个字符串对象,避免了因为重复创建相同字符串对象而导致的内存浪费。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"String的intern方法":http://eshow365.cn/6-40880-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!