I always thought that any array type is like a different class but it seems like any reference type arrays are also considered an object of Object[] and their superclasses' array form. (Is this exactly right?)
Consider the following array
Integer[] numbers = { 20, 15, 10, 5 };
When I pass this array to Arrays.sort which expects an Object[] value, it works fine. But an Object doesn't have any method to compare, how does it know which compare method to use?