==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。

  如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();变量obj是一个内存,new Object()是另一个内存,此时,变量obj所对应的内存中存储的数值就是对象占用的那块内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象,即要看这两个变量所对应的内存中的数值是否相等,这时候就需要用equals操作符进行比较。

  equals方法是用于比较两个独立对象的内容是否相同,他比较的是两个对象必须是独立的

  如下代码:

public static void main(String[] args) {// TODO Auto-generated method stubString a=new String("foo");String b=new String("foo");//它们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b将返回false,System.out.println(a==b);//而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回true。System.out.println(a.equals(b));}

  在实际开发中,我们经常要比较传递进行来的字符串内容是否等,例如,String input = …;input.equals(“quit”),许多人稍不注意就使用==进行比较了,这是错误的。

转载于:https://www.cnblogs.com/156005140qq/p/6817206.html

Java基础之equals方法和= =的区别相关推荐

  1. JAVA基础--toString, equals方法

    ==比较的是地址 equals比较的是内容. 所以要重写object的equals方法. public class TestEquals {public static void main(String ...

  2. Java基础之equals和==的区别深入解析

    Java基础之equals和==的区别深入解析 以下是本文目录大纲 equals 和 == 的区别 equals 的重写 复写hashCode方法,有31这个数字的作用 1. equals 和 == ...

  3. Java中equals()方法和==的区别分析

    Java中equals方法和==的区别分析 equals(Object obj)方法,将对象与传入的obj进行比较,相等返回true,否则返回false.equals方法和"==" ...

  4. Java易混小知识——equals方法和==的区别

    一.equals方法和==的区别 1.equals是String对象的方法,可以通过"."调用. 2.== 是一个运算符. 二.常用的比较用法 1.基本数据类型比较. equals ...

  5. 程序猿的日常——Java基础之equals与hashCode

    equals和hashCode是我们日常开发最常使用的方法,但是因为一般都使用默认的规则,因此也很少会引起关注.不过了解他们的用途和设计的原则,还是会帮助我们更好的设计代码. equals equal ...

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

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

  7. 初学Java基础学习——抽象类和接口的区别

    初学Java基础学习--抽象类和接口的区别 一.关键字 1)抽象类的关键字 abstract class A{//定义一个抽象类: } class Test extends A{//子类使用exten ...

  8. java 对象重写equals方法_Java如何重写object类的equals方法详解

    1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回tru ...

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

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

最新文章

  1. 121.买卖股票的最佳时机
  2. icmp报文_用侦察兵的故事趣讲ICMP和Ping,看完想忘都难!
  3. pythonapp下载-python编程狮app下载
  4. 计数排序、桶排序和基数排序的运算性能对比及总结区别(附python代码)
  5. spring系列-注解驱动原理及源码-AOP使用及源码解析
  6. 实战 Lucene,第 1 部分: 初识 Lucene
  7. jenkins maven没有使用全局设置文件地址_Jenkins手把手图文教程「基于Jenkins 2.164.1」...
  8. python 代码文件路径注意事项
  9. SpringBoot笔记-注册后发送邮箱点击激活(异步)
  10. 华为机试——字符串最后一个单词的长度
  11. 通过options探测服务器信息,WEB服务器启用了OPTIONS方法
  12. xp系统开机必须启动的服务器,XP系统如何关闭开机启动项呢?
  13. 【Android】12.0 第12章 Intent及其过滤器—本章示例主界面
  14. C++写OpenCV图像灰度化
  15. tc简单开发。窗口类。在窗口初始化时,使用窗口隐藏()
  16. Vulnhub_COFFEE ADDICTS: 1
  17. Android剥洋葱式解析JSON数据
  18. ios 图片简单360度旋转动画
  19. poscms清除html,poscms用法总结(非定制开发,不涉及后台代码)
  20. 15.(cesium之家)cesium暗色系地图样式地图(滤镜实现,反色滤镜)

热门文章

  1. 视频 | MIT计算机科学速成课
  2. 该文件可能是只读的 或者您要访问的位置_Linux应用编程之文件操作 系统调用篇(下)...
  3. c++ getline 读不到东西_C++,使用getline一直读取不到文件中的内容
  4. Jenkins ssh 发布jar 时区不对
  5. java常见对象_Java各种对象理解
  6. 最详细的U-net论文笔记
  7. 2021年上半年系统集成项目管理工程师综合知识真题及答案解析
  8. 网络规划设计师考试总结
  9. 开源中国android代码是什么,开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start...
  10. java 防止js注入_在WebView中如何让JS与Java安全地互相调用