Eficiência da Double Brace Initialization em Java: vale a pena usar?
Olá a todos! Sou um desenvolvedor Java iniciante e recentemente me deparei com uma sintaxe interessante — a Double Brace Initialization. Ela parece muito concisa, especialmente quando você precisa criar e preencher rapidamente uma coleção.
Aqui está um exemplo que vejo frequentemente em exemplos de estudo:
```java
Map map = new HashMap<>() {{
put("key1", "value1");
put("key2", "value2");
put("key3", "value3");
}};
```
Por um lado, é muito conveniente — não é necessário criar um bloco de código separado, declarar uma variável e depois preenchê-la com `put()`. Tudo é feito em uma única expressão. Mas me incomoda a questão: quão eficiente isso é? Afinal, aqui é criada uma classe interna anônima, o que gera custos adicionais.
Li no Stack Overflow que essa abordagem pode ser prejudicial para a performance e até levar a vazamentos de memória se usada em projetos grandes. Mas havia muitos comentários contraditórios. Alguns dizem que é um 'açúcar sintático'