Skip to content

Instantly share code, notes, and snippets.

@diegogaulke
Created January 15, 2015 13:14
Show Gist options
  • Save diegogaulke/504e2b16930ee25be086 to your computer and use it in GitHub Desktop.
Save diegogaulke/504e2b16930ee25be086 to your computer and use it in GitHub Desktop.
Utilizar e alocar recursos de maneira correta
// As vezes com a praticidade em criar objetos e com a dinamica da GC não tratamos alocação de objetos de maneira correta.
// Acabamos, por vício ou esquecimento, deixando a GC com mais trabalho e consequentemente a aplicação mais lenta.
// Exemplifico isso de maneira simples com o código abaixo, e sugiro reflexão
// Ruim
// Percebam a criação de uma instancia de "Font" para cada campo
// Serão criados vários objetos em memória, para a mesma utilização, setar uma fonte igual para os campos
txtNome = new JTextField();
txtNome.setFont(new Font("Tahoma", Font.PLAIN, 10));
txtIdade = new JTextField();
txtIdade.setFont(new Font("Tahoma", Font.PLAIN, 10));
txtDescricao = new JTextField();
txtDescricao.setFont(new Font("Tahoma", Font.PLAIN, 10));
// ...
// Bom
// Utilizar uma variável estática única para ser utilizada em todos objetos que devem ter a mesma fonte.
// Lembrando que o identificador "static" indica que o objeto pertence a classe e não a cada instância criada da classe
// Sendo assim, será criado um único objeto fonte.
// O identificador final indica que a instancia da classe Font não pode ser alterada.
// Quando a referência é identificada como final, existem tratamentos melhores de performance na GC.
private static final Font fontePadrao f = new Font("Tahoma", Font.PLAIN, 10);
txtNome = new JTextField();
txtNome.setFont(fontePadrao);
txtIdade = new JTextField();
txtIdade.setFont(fontePadrao);
txtDescricao = new JTextField();
txtDescricao.setFont(fontePadrao);
// ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment