Does anyone have any information on what optimisations (I realise this is implementation specific) most JVMs will do when confronted with a final object? In particular, an array of final objects in Java? For example:

```
final class A { }
A myArray[] = new A[10];

```

If the class "A" is final then it can have no subclasses, so it seems like it would be possible to allocate (not calling constructors) the entire array (i.e. malloc(sizeof(A)\*10)) and save on garbage collection/book keeping.