Created
January 15, 2015 13:14
-
-
Save diegogaulke/504e2b16930ee25be086 to your computer and use it in GitHub Desktop.
Utilizar e alocar recursos de maneira correta
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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