概述
前言:
equals 比较内容, == 比较地址。
PS.
equals在Object类中,作用和==完全是一样的,都是对对象地址的比较,不是比较值。
在String类中,equals被重写成了字符串的具体值的比较,而不再是地址比较。
==:
1)基本类型之间互相比较:值进行比较。
比如:
return 5==6;
返回false
PS.
byte n1 = 5;
short n2 = 129;
return n1 == n2;
返回false,n1会隐式转为short,低级向高级是隐式类型转换,高级向低级必须强制类型转换,byte<short<int<long<float<double
2)一边是基本类型,一边是包装类型:
同类型的进行比较,如Integer 与int,Long与long进行==比较时,会自动拆箱。
比如:
int a = 220;
Integer b = 220;
System.out.println(a==b);//true
不同类型之间进行比较,如果有一方为非包装类,则会自动拆箱,且会进行自动向上转型。
比如:
int a = 220;
Short b = 220;
System.out.println(a==b);//true
3)两边都是包装类型:
如果两边是同类型的包装类,比较地址。
如果两个都是new出来的对象,直接为false,如果是常量赋值,会引用存在的缓存对象,关于包装类型的;如果两缓存机制,请自行了解;
如果为不同包装类,则不会拆箱,且不能比较,编译会报错。
equals():
先比较类型,再比较值
equals可以用来比较字符串以及引用类型是否相等;但无法比较值类型,如整形int,double
1)基本类型之间互相比较:无法比较。
2)一边是基本类型,一边是包装类型:
同类型的进行比较,如Integer 与int,Long与long进行比较时,先会进行自动装箱,基本型转换为其封装类型;
不同类型之间无法进行比较。
3)两边都是包装类型:
如果是同类型包装类的话,直接比较值;
如果是不同类型包装类,不会进行拆装箱,不能比较,编译会报错。
最后
以上就是大气萝莉为你收集整理的Java中整型数值==和equals的处理的全部内容,希望文章能够帮你解决Java中整型数值==和equals的处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复