==作用:对于基本数据类型,比较值是否相等,对于引用数据类型,比较地址是否相等。

equals作用:一般比较地址内存地址是否相等,必要时方法会被重写,重写也会比较是否为同一个对象,this表示本对象,anobject表示另外一个 对象

首先我们查看以下代码以及运行结果

public class Test {public static void main(String[] args) {Integer integer1=1;Integer integer2=1;Integer integer3=1000;Integer integer4=1000;String a=new String("hello");String b=new String("hello");String c="hello";String d="hello";System.out.println(integer1==integer2);System.out.println(integer1.equals(integer2));System.out.println(integer3==integer4);System.out.println(integer3.equals(integer4));System.out.println(a==b);System.out.println(a.equals (b));System.out.println(c==d);System.out.println(c.equals (d));}
}

首先interger表示的是一个将int封装的类,是一个比较特殊的数据类型,对于interger1与interger2相比较,这两个在比较的时候由于-127<1<128,在这个数据范围之内,interger可以暂时存储在缓存中,而interger2可以直接在缓存中找出。所以1与2地址相等,不管是比较值还是内容,都是true。

而对于intreger3与4,其数值范围已经超过128,不会存储在缓存中,4重新开辟新的地址空间,所以==号为不相等,而比较内容,还是相等。

对于String 中的a与b,因为在定义过程中使用了new,a与b的地址空间不相等,但是值相等。

对于c与d没有使用new关键字,在定义中d会去常量池中查找是否有相等的成员,有的话就地址相同,没有的话就开辟新的地址空间。

Java中==与equals相关推荐

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

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

  2. 面试必问一:Java 中 == 和 equals 的区别你知道吗

    面试必问一:Java 中 == 和 equals 的区别你知道吗 前言 关于这个问题,一般初中级面试中都会遇到,还记得我当初实习找工作的时候也遇到了这个问题,现在都还记得自己是怎么回答的:== 是基本 ...

  3. Java中的equals学习小结

    Java中的equals是十分重要的,和= =要区别开来,最近在看孙卫琴的JAVA面向对象编程一书,觉得对其阐述写的不错,所以现在小结其 主要内容,而且要将 = =和 equals列为重要的对比概念来 ...

  4. Java中重写equals()方法时注意点

    Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...

  5. java中的equals()空对象的出错

    java中的equals()空对象的出错: String a = "abc"; //不是空对象boolean b = a.equals("abc"); //不会 ...

  6. java中equals函数所在的类,重写Java中的equals方法介绍

    Java中,只有8种基本类型不是对象,例如:4种整形类型(byte, short, int,long),2种浮点类型(flout, double),boolean, char不是对象,其他的所有类型, ...

  7. java == hashcode,java中==和equals和hashCode的区别

    java中==和equals和hashCode的区别 == 的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同(确切的说,是堆内存地址) equals 的作用: 引用类型:默 ...

  8. C#和Java中“==”和“equals”区别

    C#中"=="和"equals"区别如下: 1 using System; 2 class Program 3 { 4 public static void M ...

  9. Java中 == 和 equals 的区别是什么?

    面试题汇总 Java中 == 和 equals 的区别是什么? 什么是==? == 等于比较运算符,如果进行比较的两个操作数都是数值类型,即使他们的数据类型不相同,只要他们的值相等,也都将返回true ...

  10. Java中的equals(),==,compareTo()和compare()

    Java中的equals(),==,compareTo()和compare() 首先只有==可以用作两个基本类型数据之间的比较,当然是值比较.当用作两个对象比较时,比较的是对象引用,而不是值比较. 其 ...

最新文章

  1. 不满你说,我最近跟Java源码杠上了...
  2. 天天用着Redis集群,主从同步该知道吧?集群工作原理是否需要了解下?
  3. Python+pandas计算数据相关系数(person、Kendall、spearman)
  4. emc存储设备型号_图解EMC CLARiiON CX4系列主要型号
  5. leetcode算法题--数字序列中某一位的数字
  6. NEFU84——五指山(Exgcd)
  7. 【机器人系列】支付宝支付控件输入框模拟输入,输入框模拟输入
  8. 如何修改Fiori Launchpad里Tile计数调用的时间间隔
  9. 14岁女孩模仿视频中易拉罐做爆米花意外身亡 博主办公室小野回应...
  10. 一个常用的Android工具库
  11. 用 Webpack 解决应用性能问题
  12. 去掉超链接的颜色_Word中怎么快速批量删除去掉网站超链接技巧
  13. Redis 常用命令(学习笔记二)
  14. 第一阶段·Linux运维基础 第3章·文件属性、正则表达式、文件权限
  15. 软件工程-需求分析的任务
  16. idea中自动生成Java类图和时序图
  17. app系统账号绑定微信openid,H5与后台交互
  18. 紫光服务器管理口装系统,紫光一键重装系统步骤方法
  19. 上海计算机学业水平考试,上海信息科技学业水平考试复习资料整理——计算机系统.pdf...
  20. 基础:CSS3选择器详解

热门文章

  1. 服务器sever2008如何取消IE增强安全配置
  2. linux DMA机制实现(e1000资源分配)
  3. 在Windows程序中打开控制台的程序
  4. 用php打印出日历_php简单日历函数
  5. JAVA打印简易版日历
  6. window.addEventListener()和document.addEventListener()区别
  7. tomcat加大内存配置
  8. C/C++中的atan和atan2函数
  9. 软考A计划-软件设计师(高级程序员)考试大纲
  10. 5G标准中常见缩略词总结(26个英文字母)