zoukankan      html  css  js  c++  java
  • ==和equals的区别

    一、理解”==“的含义

    在java中,主要有两个作用。

    1、基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。

    2、引用数据类型:比较的是引用的地址是否相同,比如说新建了两个User对象,比较的是两个User的地址是否一样。

    OK。

    注意 你会发现,引用的例子中,使用的是User对象,而不是String

    String

    1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。

      “==”比较两个变量本身的地址值,即两个对象在内存中的首地址。

      “equals()”比较字符串中所包含的内容是否相同。

    比如:

    String s1,s2,s3 = "abc", s4 ="abc" ;

    s1 = new String("abc");

    s2 = new String("abc");

    那么:

    s1==s2 是 false      //两个变量的内存地址不一样,也就是说它们指向的对象不 一样,故不相等。

    s1.equals(s2) 是 true     //两个变量的所包含的内容是abc,故相等。

    注意(1):

    如果:          StringBuffer s1 = new StringBuffer("a");
                       StringBuffer s2 = new StringBuffer("a");
    结果:          s1.equals(s2) //是false

    解释:StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,而Object类中的equals方法是用来比较“地址”的,所以等于false.

  • 相关阅读:
    当向数据库插入数据的同时返回插入数据的编号(自动生成的编号)
    75条方法改变你的程序人生
    2012下半年计划
    .NET开发中的事务处理大比拼
    JavaScript使用技巧精萃
    生成WebService的代理类操作步骤
    标书陈述总结
    自定义SharePoint 2010 功能区
    做培训、演讲、与回报的区别
    K2 SmartObject 本质
  • 原文地址:https://www.cnblogs.com/JonaLin/p/13687635.html
Copyright © 2011-2022 走看看