Java基础之equals方法和= =的区别
==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如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方法和= =的区别相关推荐
- JAVA基础--toString, equals方法
==比较的是地址 equals比较的是内容. 所以要重写object的equals方法. public class TestEquals {public static void main(String ...
- Java基础之equals和==的区别深入解析
Java基础之equals和==的区别深入解析 以下是本文目录大纲 equals 和 == 的区别 equals 的重写 复写hashCode方法,有31这个数字的作用 1. equals 和 == ...
- Java中equals()方法和==的区别分析
Java中equals方法和==的区别分析 equals(Object obj)方法,将对象与传入的obj进行比较,相等返回true,否则返回false.equals方法和"==" ...
- Java易混小知识——equals方法和==的区别
一.equals方法和==的区别 1.equals是String对象的方法,可以通过"."调用. 2.== 是一个运算符. 二.常用的比较用法 1.基本数据类型比较. equals ...
- 程序猿的日常——Java基础之equals与hashCode
equals和hashCode是我们日常开发最常使用的方法,但是因为一般都使用默认的规则,因此也很少会引起关注.不过了解他们的用途和设计的原则,还是会帮助我们更好的设计代码. equals equal ...
- java == hashcode,java中==和equals和hashCode的区别
java中==和equals和hashCode的区别 == 的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同(确切的说,是堆内存地址) equals 的作用: 引用类型:默 ...
- 初学Java基础学习——抽象类和接口的区别
初学Java基础学习--抽象类和接口的区别 一.关键字 1)抽象类的关键字 abstract class A{//定义一个抽象类: } class Test extends A{//子类使用exten ...
- java 对象重写equals方法_Java如何重写object类的equals方法详解
1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回tru ...
- Java中重写equals()方法时注意点
Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...
最新文章
- 121.买卖股票的最佳时机
- icmp报文_用侦察兵的故事趣讲ICMP和Ping,看完想忘都难!
- pythonapp下载-python编程狮app下载
- 计数排序、桶排序和基数排序的运算性能对比及总结区别(附python代码)
- spring系列-注解驱动原理及源码-AOP使用及源码解析
- 实战 Lucene,第 1 部分: 初识 Lucene
- jenkins maven没有使用全局设置文件地址_Jenkins手把手图文教程「基于Jenkins 2.164.1」...
- python 代码文件路径注意事项
- SpringBoot笔记-注册后发送邮箱点击激活(异步)
- 华为机试——字符串最后一个单词的长度
- 通过options探测服务器信息,WEB服务器启用了OPTIONS方法
- xp系统开机必须启动的服务器,XP系统如何关闭开机启动项呢?
- 【Android】12.0 第12章 Intent及其过滤器—本章示例主界面
- C++写OpenCV图像灰度化
- tc简单开发。窗口类。在窗口初始化时,使用窗口隐藏()
- Vulnhub_COFFEE ADDICTS: 1
- Android剥洋葱式解析JSON数据
- ios 图片简单360度旋转动画
- poscms清除html,poscms用法总结(非定制开发,不涉及后台代码)
- 15.(cesium之家)cesium暗色系地图样式地图(滤镜实现,反色滤镜)
热门文章
- 视频 | MIT计算机科学速成课
- 该文件可能是只读的 或者您要访问的位置_Linux应用编程之文件操作 系统调用篇(下)...
- c++ getline 读不到东西_C++,使用getline一直读取不到文件中的内容
- Jenkins ssh 发布jar 时区不对
- java常见对象_Java各种对象理解
- 最详细的U-net论文笔记
- 2021年上半年系统集成项目管理工程师综合知识真题及答案解析
- 网络规划设计师考试总结
- 开源中国android代码是什么,开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start...
- java 防止js注入_在WebView中如何让JS与Java安全地互相调用