文章阅读
java 语言中==和equals的区别
文章类别: 资料收集  更新日期: 2012-11-22 14:31:01.0  点击次数:2125
  在讲 == 和 equals 的区别前我们需要确认一下 Java 中的数据类型。在Java中有基本数据类型和引用数据类型两种。

1、8种基本数据类型:
四种整数类型(byte、short、int、long)
两种浮点数类型(float、double)
一种字符类型(char)
一种布尔类型(boolean)

2、引用数据类型:
除了上面我们说的 8 种基本数据类型外,其他在Java中出现的类型都是引用数据类型。如我们自己写了一个Dog类,而在上面说的8种基本数据类型中不包括Dog类型,所以Dog类型是隶属于
引用数据类型的。

==的理解:

要理解 == 我们学要从两个方面来理解:

(1) == 两边为 8 中基本数据类型时:
    当 == 两边为8中基本数据类型时, == 判断的是两边变量中存放的内容是否相等。例:
public class Test {

 public static void main(String[] args) {
  int a = 10;
  int b = 10;
  if (a == b) {
   System.out.println("变量a和变量b中的值相等");
  }
 }

}

上面的例子的运行结果是在控制台中输出"变量a和变量b中的值相等"  我们可以看出当 == 两边为8种基本数据类型时比较的时内容换句话说就是比较变量的值。

(2) == 两边为引用数据类型时:
     当 == 两边为引用数据类型事,== 判断的是引用数据类型的对象的内存地址是否一样,如果 == 比较的内存地址一样表示 == 两边是同一个对象,否则 == 两边不是同一个对象。例:
public class Test {

 public static void main(String[] args) {
            //在8中数据类型中没有String类型所以String是属于引用数据类型的
  String str1 = new String("abc");
            //在这里在创建一个str2对象让他的值和str1一样
  String str2 = new String("abc");
            //我们在用 == 来进行判断会发现 str1 == str2条件不成立我们可以看出这里比较的不是str1和str2的值
  if (str1 == str2) {
   System.out.println("对象str1和对象str2是同一对象,他们的内存地址相同");
  } else {
   System.out.println("对象str1和对象str2不是同一对象,他们的内存地址不相同");
  }
 }
}

equals的理解:

equals的理解就容易多了,equals他是一个方法,而方法只有对象才能拥有,所以equals的左边一定是一个对象他的语法格式因该是:对象名.equals(比较的内容)。
例:

public class Test {

 public static void main(String[] args) {
  String str1 = new String("abc");
        //equals的括号中可以直接写入要比较的内容
  if (str1.equals("abc")) {
   System.out.println("对象str1的内容和 abc 相同");
  }

  String str2 = new String("abc");
        //equals括号中也可以是一个要比较的对象,注意这里比较的是str1对象和str2对象的内容
  if (str1.equals(str2)) {
   System.out.println("对象str1的内容和 str2 的内容相同");
  }

 }
}

 
[ 上一篇 配置tomcat以指定的身份运行(Linux平台)   下一篇 用java将U码转换为中文 ]
鄂ICP备18006629号-1       鄂公网安备 42050302000160号


技术支持QQ:39886616 QQ群:7759217
联系JDiy作者: ziquee java/javascript WEB编程
E-mail:ziquee@abcbcd.com http://189.cn
*尊姓大名:

*电子邮箱:

*QQ号码:

*留言内容:
提交留言
取消
loading...
注:带"*"的为必填项。请如实填写您的E-mail或QQ号码以便我们能与您取得联系。