A poluição de heap simplesmente implica que você tem "coisas ruins" em sua pilha. É uma analogia com (por exemplo) a poluição da água, que é onde você tem "coisas ruins" na água.
Especificamente, as coisas ruins aqui são objetos do tipo A
, onde você deve ter objetos do tipo B
... de acordo com a tipagem estática. Algum buraco na tipagem estática está permitindo que as coisas ruins vazem para o heap ... onde é possível causar dano (por exemplo, ClassCastExceptions
inesperado) em tempo de execução.
Não é uma analogia particularmente boa, mas é a terminologia que o pessoal do Java cunhou ... e eles (na verdade) a definiram na página que você conectou, e provavelmente em outros lugares.
But still - there should be a reason / mnemonic device behind that name.
Por que deveria haver? Há muitas palavras e frases em uso em inglês, onde ninguém conhece a origem ou o raciocínio. Ou onde a origem é conhecida, mas é ilógica. Por exemplo, a suposta origem do termo "bug" refere-se a uma falha em um programa de computador. Ou o significado atual do termo "salto quântico" na cultura popular. Ou a palavra "gay".
(Mas, no caso de "poluição de heap", a fonte > é conhecida e o raciocínio por trás da escolha do termo < < < auto-evidente ... para pessoas do mesmo contexto lingüístico e cultural que os autores.)
It is funny but even google does not seem to know why.
Não realmente. Significa apenas que ninguém pensou em pedir uma definição em um lugar que o Google indexe. 1) O uso é restrito à programação Java AFAIK, e 2) a analogia é óbvia ... para a maioria das pessoas que usariam o termo.