Avatar ·

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'