2,==和equals的区别是什么?

凡是比较基本类型都只能用==,比较的结果就是眼睛能看到的字面量,基本类型只有8种,byte,short,int,long,char,float,double,记住String不是基本类型。基本类型不是对象,所以不存在使用equals比较。

凡是比较引用类型(对象)的时候==和equals的使用是有区别的。==的使用是比较两个引用(对象)是不是指向同一个内存地址,equals比较的是字面量是不是一致。

基本类型的包装类是对象类型,所以除非两个相同字面量的引用指向同一个内存地址,值才会相等。

String str1 = "123abc";

String str2 = "123abc";

System.out.println(str1 == str2);//true

String str3 = "123" + "abc";

System.out.println(str1 == str3);//true

String str4 = new String("abc");

String str5 = new String("123");

String str6 = str4 + str5;

System.out.println(str1 == str6);//false

String 字面量不可改变 +两边连接的字面量会直接认为是一个完整的,不会创建新对象

发布了58 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zh_chong/article/details/103561661
今日推荐