array1.equals(array2) is the same as array1 == array2, i.e. is it the same array. As @alf points out it's not what most people expect.
Arrays.equals(array1, array2) compares the contents of the arrays.
Similarly array.toString() may not be very useful and you need to use Arrays.toString(array).
array1.equals(array2) is the same as array1 == array2, i.e. is it the same array. As @alf points out it's not what most people expect.
Arrays.equals(array1, array2) compares the contents of the arrays.
Similarly array.toString() may not be very useful and you need to use Arrays.toString(array).
It's an infamous problem: .equals() for arrays is badly broken, just don't use it, ever.
That said, it's not "broken" as in "someone has done it in a really wrong way" — it's just doing what's defined and not what's usually expected. So for purists: it's perfectly fine, and that also means, don't use it, ever.
Now the expected behaviour for equals is to compare data. The default behaviour is to compare the identity, as Object does not have any data (for purists: yes it has, but it's not the point); assumption is, if you need equals in subclasses, you'll implement it. In arrays, there's no implementation for you, so you're not supposed to use it.
So the difference is, Arrays.equals(array1, array2) works as you would expect (i.e. compares content), array1.equals(array2) falls back to Object.equals implementation, which in turn compares identity, and thus better replaced by == (for purists: yes I know about null).
Problem is, even Arrays.equals(array1, array2) will bite you hard if elements of array do not implement equals properly. It's a very naive statement, I know, but there's a very important less-than-obvious case: consider a 2D array.
2D array in Java is an array of arrays, and arrays' equals is broken (or useless if you prefer), so Arrays.equals(array1, array2) will not work as you expect on 2D arrays.
Basically, array types don't override equals to provide value equality... so you end up with the default implementation in Object, which is reference equality.
For value equality in arrays (i.e. equal elements in the same order), use the static methods in the Arrays class.
Plain Java arrays (ie, not ArrayList or some such) do not, themselves, implement equals, but rather use the implementation in Object. This is basically just an address compare.
(But note that java.util.Arrays implements some static equals methods for generic arrays.)