== 和 equals 的区别是什么?

1.注意事项

java有两种数据类型:
一种是基本数据类型(byte、short、int、long、char、double、float、boolean),
一种是引用数据类型(对象、数组、八大基本类型的包装类)

2.比较结果

基本数据类型:

【==比较】:用 == 比较的是值,左右相等即相等
【equals比较】:不能用equals方法比较

基本类型的包装类:

【==比较】:会自动拆箱成基本数据类型进行比较,注意(-128 ~ +127 之间的包装类内存地址相同,因为是从常量池拿的,其余是在堆上创建了一个新的对象)
【equals比较】:先判断类型,再判断值,二者都成立时结果为true

String字符串类型:

【==比较】:比较的是两个对象的内存地址值是否相同
注意1:String str=”hello” 这种方式是是在方法区的常量池中创建一个”hello”字面值 ,然后之后由这种创建方式的变量都由栈中指向这个地址,这样创建的用 == 比较结果为true;
注意2:String str2=new String(“hello”);这种创建方式的过程具体是在堆中创建一个新的对象,这样创建的用 == 比较结果为false;
【equals比较】:先判断类型,再判断值,二者都成立时结果为true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值