Java: “Poluição de pilha” [fechado]

63

Uma " poluição de pilha ", como nos tipos não reificáveis (Os tutoriais de Java ™> Aprendendo a linguagem Java> Genéricos (atualizado))

Por que é assim chamado?

mosquito
fonte
3
Um bom motivo para não ter nenhum aviso em seu projeto.
@ ThorbjørnRavnAndersen Good one. Mas ainda assim - deve haver um motivo / dispositivo mnemônico por trás desse nome. É engraçado, mas nem o google parece saber o porquê.

Respostas:

72

A poluição da pilha simplesmente implica que você tem "coisas ruins" na sua pilha. É uma analogia à (por exemplo) poluição da água, que é onde você tem "coisas ruins" na água.

Especificamente, as coisas ruins aqui são objetos do tipo em Aque você deve ter objetos do tipo B... de acordo com a digitação estática. Algum furo na digitação estática está permitindo que as coisas ruins vazem para a pilha ... onde é suscetível de causar danos (por exemplo, inesperado ClassCastExceptions) em tempo de execução.

Não é uma analogia particularmente boa, mas é a terminologia que o pessoal do Java cunhou ... e eles (com efeito) o definiram na página à qual você vinculou e provavelmente em outros lugares.


Mas ainda assim - deve haver um motivo / dispositivo mnemônico por trás desse nome.

Por que deveria haver? Existem muitas palavras e frases em uso em inglês onde ninguém sabe realmente a origem ou o raciocínio. Ou onde a origem é conhecida, mas é ilógica. Por exemplo, a suposta origem do termo " bug " se refere 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 heap", a fonte >> é << conhecida, e o raciocínio por trás da escolha do termo >> é << evidente por si mesmo ... para pessoas do mesmo background linguístico e cultural que Os autores.)

É engraçado, mas nem o google parece saber o porquê.

Na verdade não. Significa apenas que ninguém havia pensado anteriormente em pedir uma definição em um local que o Google indexa. 1) O uso é restrito à programação Java AFAIK e 2) a analogia é óbvia ... para a maioria das pessoas que usariam o termo.

Stephen C
fonte