== 和 equals 的区别是什么?

约定不等于承诺〃 2022-09-03 00:17 410阅读 0赞

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

发表评论

表情:
评论列表 (有 0 条评论,410人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ==equals()有什么区别

    1.基本数据类型和引用数据类型==的比较作用效果是不同的 1)基本数据类型 = =比较的是值是相同 2)引用数据类型 = =比较的是引用的地址是都相同 2.equa