• ==

  ==可用于比较基本类型与引用类型,对于基本类型变量比较的是其存储的值是否相等,对于引用类型则比较的是其是否指向同一个对象。

如:

int a = 10;
int b = 20;
double d = 10.0;

a==b的结果为false,由于a与b的值不相等;

a==d的结果为true,由于a与d的值相等。

Keyboard objOne = new Keyboard();
Keyboard objTwo = new Keyboard();
Keyboard objThree = objOne;

objOne == objTwo的结果为false,由于objOne与objTwo指向不同的对象;

objOne == objThree的结果为true,由于objOne与objThree指向同一个对象。

  • equals

  equals只能用于引用类型变量的比较,如果没有对equals方法进行重写,比较的是其是否指向同一个对象。

如:

Keyboard objOne = new Keyboard();
Keyboard objTwo = new Keyboard();
Keyboard objThree = objOne;

objOne.equals(objTwo)的结果为false,由于objOne与objTwo指向不同的对象;

objOne.equals(objThree)的结果为true,由于objOne与objThree指向同一个对象。

  • String类对equals方法进行了重写,用来比较指向的字符串对象所存储的字符串是否相等

如:

String str1 = new String("hello");
String str2 = new String("hello");
String str3 = new String("good");

str1.equals(str2)的结果为true,由于str1与str2所指向的字符串对象存储的字符串相等;

str1.equals(str3)的结果为false,由于str1与str3所指向的字符串对象存储的字符串不相等。

上例中str1==str2的结果则为false,因为str1、str2指向不同的对象。

又如:

String str4 = "hello";
String str5 = "hello";

str4 == str5的结果为true,这里是由于str4、str5指向同一个字符串对象。

也即是说只创建了一个“hello”对象,与new方式每次都创建一个新的对象不同。

java中==与equals的更多相关文章

  1. 浅谈Java中的equals和==(转)

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...

  2. 浅谈Java中的equals和==

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...

  3. Java中的equals和hashCode方法

    本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...

  4. Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)

    Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例  原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...

  5. java集合(3)- Java中的equals和hashCode方法详解

    参考:http://blog.csdn.net/jiangwei0910410003/article/details/22739953 Java中的equals方法和hashCode方法是Object ...

  6. 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: String str1 = new String(" ...

  7. Java中的equals和hashCode方法详解

    Java中的equals和hashCode方法详解  转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...

  8. 关于Java中的equals方法

    关于Java中的equals方法 欢迎转载,但是请填写本人的博客园原址https://www.cnblogs.com/JNovice/p/9347099.html 一.什么是equals方法 equa ...

  9. 沉淀再出发:java中的equals()辨析

    沉淀再出发:java中的equals()辨析 一.前言 关于java中的equals,我们可能非常奇怪,在Object中定义了这个函数,其他的很多类中都重载了它,导致了我们对于辨析其中的内涵有了混淆, ...

  10. 转:Java中的equals和hashCode方法详解

    转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...

随机推荐

  1. mysql 数据库复制方法

    同一台MySQL服务器上复制数据库的方法 CREATE DATABASE `新库` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; mysqld ...

  2. 本周java学习

    本周学习的内容让我又进一步实践了java语言,我本周学到的内容是   循环: 强制结束命令行 //Ctrl+c for 循环的无限循环形式: for( ; ; )() while循环的无限循环形式: ...

  3. MongoDb查询

    1.对于时间,在java中不能模糊查询 @Query(value = "{'create_time': {'$gte': ?0},'ent_id':?1}") Page<St ...

  4. 使用Redis构建支持程序

    在Linux和Unix世界中,有两种常见的记录日志的方法.第一种是将日志记录到文件里面,然后随着时间流逝不断地将一个有一个日志行添加到文件里面,并在一段时间之后创建新的日志文件.包括Redis在内的很 ...

  5. linux 编译链接问题

    -rpath和-rpath-link 假设有3个文件,在同一目录下,有这样的依赖关系 test->liba.so->libd.so 如果编译test的时候这样写 gcc test.c –l ...

  6. stack-protector-strong

    Improve protection against stack buffer overflows Much like its predecessor, stack-protector, stack- ...

  7. Java中的this关键字老生常谈

    一.this的由来  this关键字就是获得调用当前方法对象的引用. 二.注意点 this关键字只能出现在方法内部,完成对调用该方法的对象的引用. 三.this关键字的三个用处 1.最主要的用处: 获 ...

  8. eclipse + cdt

    Window > Preferences > General > Appearance中设置主题颜色. Help > eclipse marketplace > find ...

  9. js动态加载数据并合并单元格

    js动态加载数据合并单元格, 代码如下所示,可复制直接运行: <!DOCTYPE HTML> <html lang="en-US"> <head> ...

  10. LG4781 【模板】拉格朗日插值

    题意 题目描述 由小学知识可知,$n$个点$(x_i,y_i)$可以唯一地确定一个多项式 现在,给定$n$个点,请你确定这个多项式,并将$k$代入求值 求出的值对$998244353$取模 输入输出格 ...