1
resposta

Quando estou lidando com dados que seria incluídos na base de dados. Como fazer com o HashMap?

Quando estou lidando com dados que seria incluídos na base de dados. Como fazer com o HashMap? Por exemplo, suponha que o meu javaColecoes.matricula inserisse o dado na base de dados e também no meu HashMap, neste caso meu HashMap não poderia ocupar muita memória durante a execução do programa?

1 resposta

Fala, Diego! Tudo bem contigo?

Desculpe a demora em dar um retorno!

Isso pode acontecer sim, viu!

De repente você esteja rodando uma aplicação e aparecer o seguinte erro:

java.lang.OutOfMemoryError:

A nossa aplicação roda em cima da nossa jvm, que por sua vez roda em cima do sistema operacional... pode ser que isso aconteça de verdade!

Cada vez que criamos variáveis e objetos, um determinado espaço está sendo tomado dentro da jvm e a maneira de evitarmos esse problema é otimizando nossas aplicações. Sei que isso parece vago da maneira que citei, mas temas como SOLID e Design Patterns vai trazer maneiras e técnicas de como otimizar nosso código para entender esses assuntos de otimização.

A jvm possui um "aliado" chamado de Garbage Collector, onde a função dele é "coletar o lixo", como o nome mesmo já diz. E o que seria esse "lixo"? É tudo aquilo que já faz um tempo que não é utilizado e ele "entende" que não é necessário para você. Logo, joga fora!!!

Ele faz o trabalho de limpar sua JVM e liberar espaços para que possa trabalhar com mais dados.

O problema é que essa limpeza não acontece tão rapidamente e nem sempre ele saberá, com exatidão, qual Objeto não está sendo mais usado, dando essa margem para probabilidade de erro.

Como dica, Diego, já que citou a utilização de banco de dados, dê uma olhada nesta aula de Spring onde ele faz uma implementação utilizando Cache e acredito que vai te dar uma outra visão sobre essa questão de utilizar listas buscando em memória! Não sei se está familiarizado com Spring, mas vale assistir pelo menos essa aula para que veja na prática como seria essa questão que abordou aqui no fórum!!!

Esperto ter contribuído, meu amigo!!!

Qualquer dúvida nos procure!!!

Um abraço e bons estudos!!!