Java: "inquinamento di heap"

58

A " Inquinamento da heap " come in Non-Reifiable Tipi (The Java ™ Tutorials > Apprendimento della lingua Java > Generics (aggiornato))

Perché si chiama così?

    
posta gnat 08.07.2012 - 09:29
fonte

1 risposta

67

L'inquinamento di heap implica semplicemente che hai "cose cattive" nel tuo heap. È un'analogia con (per esempio) l'inquinamento delle acque, che è dove si hanno "cose cattive" nell'acqua.

Specificamente, le cose cattive qui sono oggetti di tipo A dove dovresti avere oggetti di tipo B ... secondo la tipizzazione statica. Qualche buco nella tipizzazione statica sta permettendo che le cose cattive si perdano nell'heap ... dove è probabile che causino danni (ad esempio ClassCastExceptions imprevisto) durante il runtime.

Non è un'analogia particolarmente buona, ma è la terminologia con cui i popoli Java hanno coniato ... e hanno (in effetti) definito nella pagina a cui ti sei collegato, e probabilmente in altri posti.

But still - there should be a reason / mnemonic device behind that name.

Perché dovrebbe esserci? Ci sono molte parole e frasi in uso in inglese dove nessuno conosce veramente l'origine o il ragionamento. O dove l'origine è conosciuta, ma è illogica. Ad esempio, la presunta origine del termine "bug" si riferisce a un difetto in un programma per computer. O il significato attuale del termine "salto quantico" nella cultura popolare. O la parola "gay".

(Ma, nel caso di "inquinamento da cumulo", la fonte > > è < < < noto; e il ragionamento alla base della scelta del termine > > < < < < < < persone con lo stesso background linguistico e culturale degli autori.)

It is funny but even google does not seem to know why.

Non proprio. Significa solo che nessuno in precedenza aveva pensato di chiedere una definizione in un posto che Google indicizza. 1) L'uso è limitato alla programmazione AFAIK Java, e 2) l'analogia è ovvia ... alla maggior parte delle persone che userebbero il termine.

    
risposta data 08.07.2012 - 11:10
fonte

Leggi altre domande sui tag