Ciao a tutti

Ho una domandina veloce sui costruttori, comincio a spiegarla direttamente dal codice sorgente:

Siano A e B due classi con i relativi campi di esemplare (per A si ha un ArrayList, per B un array contenente ArrayList) e costruttori.

codice:
public class A{
    private ArrayList<X> listaX;
    
    public A(){
        listaX=new ArrayList<X>();
}//A

public class B{
    private listaX[] listaY;

    public B(int n){
        listaY=new listaX[n];
    }
}//B


Nel costruttore della classe B, cosa succede attraverso l'istruzione che ho appena fatto? Cosa contiene ogni "cella" dell'array? Essa contiene un riferimento ad un oggetto listaX già allocato o ancora da allocare? Se volessi che fosse allocato, dovrei gestire un ciclo for all'interno del costruttore di B che mi alloca ogni singolo riferimento a un oggetto listaX scorrendo l'array?

Grazie, spero di essere stato chiaro