免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 大马虎
打印 上一主题 下一主题

java的判断对象相等的两个问题 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2006-04-05 09:46 |显示全部楼层
看你用哪个比较符

是用 == 还是用 equals()

equals 仅仅比较值是否相等。。

== 还比较是否指向同一个对象。

论坛徽章:
0
2 [报告]
发表于 2006-04-05 16:03 |显示全部楼层
。。你们回帖子。都不先自己试一下的么?

总之每次我都自己先试一下。确保没有错误才回复。。。


  1. package source;

  2. public class TestString {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO 自动生成方法存根
  8.                
  9.                 String a = new String("Hello World");
  10.                 String b = "Hello World";
  11.                 String c ="Hello World";
  12.                
  13.                 //*
  14.                 if(a.equals(b)){
  15.                         System.out.println("a equals b");
  16.                 }else{
  17.                         System.out.println("a no equals b");
  18.                 }
  19.                 if(a==b){
  20.                         System.out.println("a == b");
  21.                 }else{
  22.                         System.out.println("a != b");
  23.                 }
  24.                 if(c.equals(b)){
  25.                         System.out.println("c equals b");
  26.                 }else{
  27.                         System.out.println("c no equals b");
  28.                 }
  29.                 if(c==b){
  30.                         System.out.println("c == b");
  31.                 }else{
  32.                         System.out.println("c != b");
  33.                 }
  34.         }
复制代码


输出

a equals b
a != b
c equals b
c == b

论坛徽章:
0
3 [报告]
发表于 2006-04-05 16:14 |显示全部楼层


不讨论了。这个属于JVM的范畴。有兴趣可以找点资料看看。忘记那有中文的了。讲的还不错。

[ 本帖最后由 carset 于 2006-4-5 16:17 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-04-05 16:18 |显示全部楼层
String.hashcode();


  1.   public int hashCode() {
  2.         int h = hash;
  3.         if (h == 0) {
  4.             int off = offset;
  5.             char val[] = value;
  6.             int len = count;

  7.             for (int i = 0; i < len; i++) {
  8.                 h = 31*h + val[off++];
  9.             }
  10.             hash = h;
  11.         }
  12.         return h;
  13.     }

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP