A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 游灿平 中级黑马   /  2013-2-24 02:15  /  1581 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在操作字符串的时候,可以使用intern()方法
  1. public static void main(String[] args) {
  2.                 //把字符串添加到常量池中
  3.                 String s1 = new String("abc").intern();
  4.                 String s2 = new String("abc").intern();
  5.                 System.out.println(s1 == s2);//true

  6.         }
复制代码
java.lang.String的intern()方法
"abc".intern()方法的返回值还是字符串"abc",表面上看起来好像这个方法没什么用处。但实际上,它做了个小动作:
检查字符串池里是否存在"abc"这么一个字符串,如果存在,就返回池里的字符串;如果不存在,该方法会把"abc"添加到字符串池中,然后再返回它的引用。

更好的办法:
把所有的String都intern()到缓冲池去吧
最好在用到new的时候就进行这个操作
String s2 = new String("aaa").intern();

2 个回复

倒序浏览
还没学到,,,,
回复 使用道具 举报
这个操作是为了实现.equals方法的比较
而String str1="abc";
String str2="abc"/String str2=str1;这种不论赋值,还有书写,都要比你的简单啊...
感觉学效率高的好一些.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马