Ola a todos.
Sou estudante de Engenharia em Informatica (2do ano), e tenho 19 anos. Sou novo aqui, e tenho uma serie de duvidas a respeito de Java! Desde ja agradeco a quem se dispor a ler todo o topico.
Atualmente estou finalizando meu sistema de vendas completo (ou quase) em java.
Meu sistema esta dividido resumidamente em tres partes:
1- Classes de Variaveis: Contem a declaracao de variaveis e de getters e setters para armazenar informacoes que serao compartilhadas entre os formularios e as classes de funcoes que se comunicam com as tabelas da base de dados.
2- Classes de Funcoes: Contem todas as funcoes mediante metodos para realizar as diversas funcoes na base de dados… Insertar, Modificar, Eliminar, Alem de diversos tipos de Selects. (Apenas chamo procedimentos armazenados que defini anteriormente na base de dados).
3- Classes de Apresentacao: Contem todos os formularios que entrarao em contato com o cliente.
Obviamente, tambem tenho uma base de dados com todas as tabelas correspondentes e os dados.
O sistema eh um sistema de vendas normal, onde seleciono os produtos, o cliente, e emito a nota fiscal e o comprovante de pago, alem de conter uma serie de funcoes, como vendas a prazo, relatorio, cadastro de produtos, cadastro de clientes, gerador estadistico de vendas por mes, registro de vendas por data, quantidade vendida, e todos os detalhes de cada venda.
O problema vem agora: Quanto mais vou aprofundando as funcoes do sistema, mais vou me complicando. Nos primeiros testes, percebi que o sistema estava lento e tambem consumindo muita memoria RAM… (125mbs aproximadamente ao executar, esse numero vai subindo de acordo ao aumento de vendas).
Pesquisei sobre Memory Leaks, Heap, etc. e percebi que estava criando muitos objetos, entao comecei a transformar varios metodos e classes com atributos estaticos e comecei a usa-los diretamente desde suas classes sem ter que “Criar” novos objetos, mas isso fez com que no final das contas eu mudasse todas as Classes de Variaveis e metodos a variaveis e metodos totalmente estaticos, e percebi que no final das contas meu sistema praticamente nao usa mais a Orientacao a Objetos. Cada vez estou me complicando mais, e cada vez que eu implemento uma nova parte em meu sistema, fico com uma serie de duvidas…
“Sera que devo fazer esse metodo estatico ou nao?”
“Sera que essas variaveis vao ser estaticas? Acho que sim, porque ai o sistema nao vai ter que “sofrer” tanto para instanciar um novo objeto”
"Sera que as variaveis e objetos que sao criados dentro de um metodo estatico sao excluidos da memoria RAM apos o sistema executar esse metodo? Se sim, acontece o mesmo com metodos que nao sao estaticos?
“Qual a melhor medida a se utilizar em termos de programacao em Java para um sistema fazer o uso mais eficiente possivel da memoria RAM?”
Em resumo, meu sistema tem muitas funcoes, mas internamente esta baguncado, e gostaria muito da ajuda de voces com dicas, conselhos, e respostas a essas minhas questoes, e tambem se eh um bom caminho comecar a vida de programador desenvolvendo um sistema completo (na tentativa e improviso).
Desculpem pela falta de acentuacao, teclado com configuracoes de outro pais. Grato por qualquer resposta. Um abraco!
