There is a big difference. The former can be used only during initialization of an array. Code compilation will fail if you try to initialize an already defined / declared array with an array constant expression like {1,2,3}
The latter can be used any-time. The byte-code is same in both cases.