It knows that this is an array, simply by putting the brackets []?
Yes, that's how it works. This is a special syntax for declaring and creating arrays (and accessing their elements).
The language (and the JVM) has special support for arrays (since they are frequently used). In addition to the brackets you found, there is also a special for-each-loop, a syntax to create array literals, and arrays can be used for vararg method parameters.
Is an array not an object?
Arrays in Java are Objects (even arrays of primitive types).
What makes it different?
There is not much that is not different...
Except that you can assign arrays to a variable of type Object (and that they can be null) there is not too much object-like in them. For example, while they have methods such as equals and toString, their implementations probably do not do what you expect (see the Arrays class for more useful versions). You also cannot subclass the internal "classes" that make arrays work.
To sum up, arrays are objects, but special objects. Unlike ArrayList, which is built just like any other class. You could roll your own Collection in Java, but to build your own array, you need to build your own JVM.