Olá, Vitor.
Tudo bem?
Em Java, a forma como você declara arrays pode parecer confusa no início, mas na verdade é bem simples. As declarações B[] bs e B bs[] são equivalentes e ambas criam um array de objetos do tipo B. A escolha entre uma forma ou outra é mais uma questão de estilo e preferência pessoal.
Por exemplo, as duas linhas abaixo são equivalentes:
B[] bs = new B[100];
B bs[] = new B[100];
O mesmo vale para String[] args e String args[]. Ambas são formas válidas de declarar um array de String.
Agora, sobre a questão do exercício, a linha B[] bs = new B[100]; cria um array que pode conter 100 objetos do tipo B. No entanto, nesse ponto, nenhum objeto do tipo B foi realmente criado. O que foi criado é apenas o array que pode armazenar esses objetos.
Para realmente criar objetos do tipo B e colocá-los no array, você precisaria fazer algo assim:
for (int i = 0; i < bs.length; i++) {
bs[i] = new B();
}
Como o código fornecido no exercício não faz isso, a resposta correta é a opção B: "Compila e nenhum objeto do tipo B é criado."
Espero ter ajudado e bons estudos!