Este será um artigo mais maligno. No mundo de Java, o transbordamento da memória é apenas um bug que você pode apresentar neste caso. Suas vítimas passarão alguns dias ou até algumas semanas de noites dormindo no escritório.
Neste artigo, apresentarei dois tipos de métodos de transbordamento, que são mais fáceis de entender e reproduzir. E todos são estudos de caso do projeto de origem, mas, para fazer você entender claramente, eu os simplico.
Mas tenha certeza de que, depois de encontrarmos e resolveu o bug transbordante, casos semelhantes serão mais comuns do que você imagina.
Vamos primeiro inserir o estado.
Classe KeylessEntry {Chave de classe estática {ID de Inteiro Inteiro; Args) {mapa m = novo hashmap (); "Número:" "" + i);}}Quando você executa o código acima, pode esperar que ele nunca tenha um problema para executar. No entanto, esse não é o caso. Os elementos sempre crescerão, porque a categoria de chave não implementa um método Equals () Adequado após HashCode ().
A solução é simples, desde que você adicione um método igual como o exemplo a seguir. Mas antes de encontrar o problema, você deve ter gasto muitas células cerebrais valiosas.
@OverridePublic boolean é igual (objeto o) {resposta booleana = false; O próximo que você deve lembrar a seus amigos é lidar com a corda. Seu desempenho será estranho, especialmente quando a diferença da versão da JVM for combinada. O mecanismo de trabalho interno da String foi alterado no JDK 7U6; portanto, se você achar que o ambiente do produto é apenas a diferença entre um número pequeno da versão, estará pronto para as condições. Tarze o código semelhante ao código a seguir e pergunte a ele por que esse bug aparece apenas no produto.
Classe Stringer {Final estático Int MB = 1024*512; nanotime ()); = CreateLongString (MB);O que há de errado com o código acima? Quando é executado antes da versão do JDK 7U6, a string retornada salva uma referência na sequência de cerca de 1m de tamanho. Combinado com as diferenças entre plataformas e versões em seu ambiente experimental, ocorrem coisas que prejudicam as escrituras cerebrais.
Agora, se você deseja encobrir suas pegadas, podemos apresentar alguns conceitos mais avançados. por exemplo
Espero que lhe damos algumas matérias -primas que pensam e alguns materiais quando você deseja consertar alguém. Isso trará depuração sem fim. A menos que seu amigo use o Plumbr para encontrar o local transbordante.