equals和=,==的区别
一. ==和equals的区别
1. ==是运算符
2. equals是String对象的方法
一般有两种类型的比较
1. 基本数据类型的比较
2. 引用对象的比较
1. 基本数据类型的比较
==和equals都比较的是值是否相等,相等则为true,否则为false
2. 引用对象的比较
==和equals都是比较是栈内存中的地址是否相等,相等则为true,否则为false
注意:
1. String是一个特殊的引用数据类型,==比较的是字符串对象的引用地址是否一样,equals比较的是栈中的内容是否一致。
String ss = new String("abc");
String sss = new String("abc");
if(ss == sss){
System.out.println("ss == sss is true");
}
if(ss.equals(sss)){
System.out.println("ss equals sss is true");
}
控制台输出:
ss != sss
ss equals sss
表明:ss和sss在栈中的内存地址不同,但是在堆中的内容是相同的。
String ss = new String("abc");
String ssss = ss;
//判断ss和ssss在栈中的引用地址是否一样
if(ss == ssss){
System.out.println("ss == ssss");
}else{
System.out.println("ss != ssss");
}
//判断ss和ssss在堆中的内容是否一样
if(ss.equals(ssss)){
System.out.println("ss equals ssss");
}else{
System.out.println("ss not equals ssss");
}
控制台输出:
ss == ssss
ss equals ssss
这表明ss和ssss是相同的对象,并且他们在堆中的内容一样
2. 引用对象的比较
TestBean obj1 = new TestBean();
TestBean obj2 = new TestBean();
TestBean obj3 = obj1;
if(obj1 == obj2){
System.out.println("obj1 == obj2");
}else{
System.out.println("obj1 != obj2");
}
if(obj1 == obj3){
System.out.println("obj1 == obj3");
}else{
System.out.println("obj1 != obj3");
}
控制台输出:
obj1!= obj2
obj1== obj3
表明obj1和obj2不是同一个对象,在栈中的引用地址不同
obj1和obj3是相同的对象,在栈中的引用地址相同
二. =和equals ==的区别
=表示的是赋值,即将=右边的值赋给左边的变量。equals和==是表示操作
转载于:https://www.cnblogs.com/minshia/p/5950969.html
equals和=,==的区别相关推荐
- 【Java常识】6.0面向对象认知和Eclipse的实用使用、==号和equals方法的区别
1.曾经写过很多自以为很通俗易懂的面向对象的解释. 如下是目前最通俗的一种解释: 2.Eclipse的补充解释. 运行的快捷键:F11. 3.Eclipse快捷键大全 大全放本文最后,这里主要放常用的 ...
- JAVA 中equals()与==的区别
原文地址:http://www.chineselinuxuniversity.net/articles/29594.shtml 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存 ...
- c# equals与==的区别
c# equals与==的区别 对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false.对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 ...
- 面试官:谈谈equals() 和 == 的区别
引言 谈谈equals() 和 == 的区别,这是一个非常经典的问题,不是特别难,面试也时有问道:但是很多小伙伴在面试时脑子却一片空白,痛失offer:所以在这里我详细介绍一下这两者的区别,希望对你能 ...
- Java基础 抽象类和接口的区别、equals 与 == 的区别
一.抽象类和接口有什么区别 抽象类与接口都用于抽象,但是抽象类可以有自己的部分实现,而接口规范某一行为,调用者实现这个接口. 主要区别: 1.抽象类还是类只能单继承,而接口却可以多实现. 2.抽象类满 ...
- 浅谈equals和==的区别
基本数据类型 八大基本数据类型:Byte,short,int,long,double,folat,boolean,char 引用数据类型 四大基本数据类型:String,数组类型 [ ] ,class ...
- Java基础之equals和==的区别深入解析
Java基础之equals和==的区别深入解析 以下是本文目录大纲 equals 和 == 的区别 equals 的重写 复写hashCode方法,有31这个数字的作用 1. equals 和 == ...
- Equals 和 == 的区别
在比较Equals 和 ==的区别前.我们先来了解下相关的知识 C#数据类型 1.值类型 值类型有: 值类型包括:简单类型.结构类型.枚举类型. byte(1).sbyte(1).short(2).u ...
- equals()与==的区别
"=="比较两个变量本身的值,即两个对象在内存中的首地址. "equals()"比较字符串中所包含的内容是否相同. 比如: String s1,s2,s3 = ...
- 处理对象(toString()方法详解和==与equals方法的区别)
处理对象(toString()方法详解和==与equals方法的区别) toString()是一个非常特殊的方法,它是一个自我描述的方法.当程序员直接打印该对象的时候,系统会输出该对象的"自 ...
最新文章
- html根据字段制作曲线图,canvas制作简单的HTML图表,折线或者矩形统计(原创)
- 安装Oracle9I出现加载数据库时出错:areasQueries错误,提示停止该组件或所有组件安装,之后安装不能进行...
- Web控件文本框Reset的功能
- java jtable defaulttablemodel_java – JTable和DefaultTableModel
- P5273 【模板】多项式幂函数 (加强版)
- 域环境下文件服务器,域和文件服务器
- win7/win8/win8.1 telnet命令无法使用的解决方案(提示不是内部命令或外部命令)
- tp5设置session有效期
- k8s 离线安装_使用 Kind 在离线环境创建 K8S 集群
- 微信小程序input安卓手机获取焦点时候上移
- python基础编程语法-Python基础语法一
- linux内核中创建线程方法
- python编写小程序、模拟实现自动按下键盘_Python 实现键盘鼠标按键模拟
- switch中使用枚举
- AJPFX平台:01.14日内交易策略
- OpenCV3的GPU模块编译
- 创智汇集,汉韵流芳!大创智国风汉服赏与您相约十月
- 网页版outlook邮箱慢如蜗牛登不上,解决办法
- 【图解数据结构】排序全面总结(一)
- java.lang.NullPointerException: null无堆栈信息
热门文章
- MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes
- UNIX网络编程——套接字选项(SO_RCVBUF和SO_SNDBUF)
- 怎么去掉Flex4生成的SWF加载时的进度条
- Yii的路由机制分析
- .Net PetShop 4.0的缓存处理
- RUNOOB python练习题17
- 吴恩达机器学习+林轩田机器学习+高等数学和线性代数等视频领取
- React文档(五)组件和props
- Sqli-labs less 64
- 解决SublimeCodeIntel回车换行误打代码