码迷,mamicode.com
首页 > 其他好文 > 详细

String的equals方法和==

时间:2015-10-27 23:21:07      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

  String类的对象是字符串常量,一切看起来改变了String对象的操作,其实只是改变了字符串引用变量所引用的字符串罢了。

  Java中的字符串存放在一个公共的存储池中,引用指向存储池中相应的位置,编译器可以让字符串共享,即两个不同的引用,可以指向同一个字符串常量,但该字符串的物理存储实际只有一份。

  判断两个字符串是否相等,一定要使用equals方法。“==”只能判断两个引用是否指向同一个字符串,在不同的物理存储位置也可以存储相同的字符串。

  实际上,只有字符串常量是共享的,而+或substring等操作产生的结果并不是共享的。(不绝对)

1 String s="people";
2 String t="people";
3 char c[]={‘p‘,‘e‘,‘o‘,‘p‘,‘l‘,‘e‘};
4 System.out.println(s=="pe"+"o"+"ple");  //true
5 System.out.println(t.equals(c));    //false
6 System.out.println(t.equals(new String("people")));  //true

  总之,不要使用“==”来判断字符串的相等性,以免出错。

String的equals方法和==

标签:

原文地址:http://www.cnblogs.com/youilika/p/4915692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!