equal与==的区别
equal与==
1.最大的区别是,==是运算符,equal是方法
简述几种情况下的equal与==
- java基本类型
- 比较包装类型
- 比较String类型
- 比较对象
1.java基本类型(short,int,long,byte,char,float,double,boolean)
比较基本类型,只能用==,不能用equal,这里的==比较的是两个变量的值
2.比较包装类型
==比较的是内存地址,因为a和b是new出来的,是两个不同的对象,所以地址肯定是不同的,而equal比较的是值,附上源码
3.比较String类型
==比较的是内存地址,equal比较的是值
这里给出一道题,来供参考
这道题我们一步一步来解决,首先s1==s2,==比较的是内存地址,而s2是new出来的新对象,new String("xxxx")放在堆中,而s1的“xxxx”放在常量池中,所以比较结果是false
第二,s1==s5,字符串+的本质是创建了StringBulider对象进行append操作,然后将拼接后的StringBulider对象用toString进行处理,处理后生成的字符串放在字符串池中找有没有相同值的字符串,如果有将引用(s5)直接连接到已有的字符串地址,所以s1和s5的地址相同
第三,s1=s3+s4,这个的原理是涉及到类加载时初始化的问题,s3和s4的结果无法在编译期间确定,如果把s3和s4定义为final类型,结果就是true了,java在编译时,就知道“Program”+"ming"="Programming"了,但却是在运行时才知道s3+s4="Programming"
4.比较对象
==和equal比较的都是内存地址,因为equal没有被重写,没有被重写的equal都是object的equal方法
equal与==的区别相关推荐
- C#中equal与==的区别
C#中equal与==的区别 来源 https://www.cnblogs.com/dearbeans/p/5351695.html C#中,判断相等有两种方式,一种是传统的==操作,一种是objec ...
- Java中equal和==的区别
equal和==均表示相等的意思,但是它们进行实际的相等的判定的时候,却有非常大的区别.这还得从JAVA的堆栈说起.初学者对他们的两者的概念的理解很容易模糊.在实际编程工作中就容易造成一些不容易发现的 ...
- string 相等 java_java中string相等问题(==与.equal的具体区别。求详细解释)
展开全部 这要和String的JVM内部工作原理相结合! 比如:String s1="accp" Java内部将此62616964757a686964616fe58685e5aeb ...
- Android equal和==的区别
怕自己以后忘了,所以在这里先写写! equal和==的区别是,一个用于判断字符串,一个用于判断int是否相等 equal比较的是对象,==比较的是值 转载于:https://www.cnblogs.c ...
- string.Compare字符串比较函数中文详解以及与Equal、==的区别
Chinar blog :www.chinar.xin String 比较函数详解 本文提供全流程,中文翻译 助力快速理解 String 字符串比较函数的区别 为初学者节省宝贵的时间,避免采坑! Ch ...
- equalwith java_java中==与equal()方法的区别
java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==), ...
- java string equal 与==的区别
关于String类中重写的equals方法 请先看下面这段代码: public class EqualsTest { public static void main(String[] args ...
- ==与equal在java中应用的感悟
今天又算是长见识了.了解了下平时不注意的equal和==的区别. 不管是==又或是equal都是用来比较相同与否.当问题就在这里了,比较什么相同呢? 我的在日常的比较无非也就是两种:1.基本数据类型之 ...
- java中strings1等于s2_s1,s2都是String对象,说说表达式s1==s2与s1.equal(s2
s1,s2都是String对象,说说表达式s1==s2与s1.equal(s2 (2009-10-20 21:33:58) 标签: 杂谈 问题:s1,s2都是String对象,说说表达式s1==s2与 ...
最新文章
- Python可视化中Matplotlib(4.三种设置样式方法、设置坐标刻度以及标签、设置显示出特殊字符)
- php性能优化分析工具XDebug 大型网站调试工具
- ARM系列处理器的分类
- C语言经典编程题--哥德巴赫猜想 、完数 、猜数字等
- 安卓USB开发教程 六 安卓 AOA 2.0
- MyEclipse+Tomcat 启动时出现 configuration error occured during startup错误的解决方法
- 来做网课老师不?年薪两百万,上不封顶...
- autojs 如何获取控件的desc_owchart教程三:如何添加成交量?
- 简单理解L0、L1与L2范数
- ASP.NET绑定控件语法
- 酷站欣赏:12个漂亮的国外单页网站设计案例
- SharePoint读取和设置列表栏的内容
- python关闭文件-python_文件的打开和关闭
- 文件服务器代码大全,文件服务器 代码
- glnxa64 matlab 什么版本_Matlab 2014a 免费版-Matlab2014 Mac版下载 V2014b免费版-PC6苹果网...
- 陈丹琦新作:关系抽取新SOTA,用pipeline方式挫败joint模型
- 机械键盘恢复出厂fn_机械键盘使用说明
- android如何加密所有的布局文件夹,android:是否可以加密文件夹
- 服务器怎么设置mqtt遗嘱消息,MQTT 遗嘱消息、Retained消息、QOS上线下线实现
- 计算机存储单位:bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB