两个数组比较看看结果

简单代码如下,究竟会返回什么结果呢?

package com.hehe;
public class Main {
    public static void main(String[] args) {
        double[] d1={1,2,3,5};
        double[] d2={1,2,3,5};
        System.out.println(d1==d2);
        System.out.println(d1.equals(d2));
    }
}

是不是出乎了你的意料呢?呵呵…………

解答:array属于对象,对象使用==返回false. 。对象使用equals 对比的是内存地址。两个arrays内存地址不一样。值一样。

详细一点的来说:

"=="是判断两个变量或实例是不是指向同一个内存空间。

"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。

"equals"在JAVA中是一个方法。

"=="在JAVA中只是一个运算符合。

那么比较两个数组里面的内容是否相等呢?

 @Test
    public void test01(){
        double[] d1={1,2,3,5};
        double[] d2={1,2,3,5};
        boolean flag = Arrays.equals(d1, d2);
        System.out.println(flag);
    }

看结果:

不相等的也来一个吧:

 @Test
    public void test01(){
        double[] d1={1,2,3,5,6};
        double[] d2={1,2,3,5};
        boolean flag = Arrays.equals(d1, d2);
        System.out.println(flag);
    }

结果:

原文地址:https://www.cnblogs.com/zhang-yawei/p/10413509.html