Java: „Zanieczyszczenia hałd” [zamknięte]

63

Zanieczyszczenie sterty ” jak w typach niepodlegających zwrotowi (Samouczki Java ™> Nauka języka Java> Ogólne (zaktualizowane))

Dlaczego tak się nazywa?

komar
źródło
3
Dobry powód, dla którego nie ma żadnych ostrzeżeń w projekcie.
@ ThorbjørnRavnAndersen Dobry. Ale nadal - za tą nazwą powinien znajdować się powód / urządzenie mnemoniczne. To zabawne, ale nawet Google nie wydaje się wiedzieć, dlaczego.

Odpowiedzi:

72

Zanieczyszczenie sterty oznacza po prostu, że masz „złe rzeczy” na swoim stosie. Jest to analogia do (na przykład) zanieczyszczenia wody, w którym znajdują się „złe rzeczy” w wodzie.

W szczególności złe rzeczy tutaj to obiekty typu, w Aktórych powinieneś mieć obiekty typu B... zgodnie z typowaniem statycznym. Pewna dziura w typowaniu statycznym pozwala wyciekom złych rzeczy do sterty ... gdzie może spowodować uszkodzenie (np. Nieoczekiwane ClassCastExceptions) w czasie wykonywania.

Nie jest to szczególnie dobra analogia, ale to terminologia, którą wymyślili ludzie Javy ... i oni (w efekcie) zdefiniowali ją na stronie, do której prowadziłeś link i prawdopodobnie w innych miejscach.


Ale nadal - za tą nazwą powinien znajdować się powód / urządzenie mnemoniczne.

Dlaczego powinien być? W języku angielskim jest wiele słów i zwrotów, w których nikt tak naprawdę nie zna pochodzenia ani uzasadnienia. Lub gdzie pochodzenie jest znane, ale jest nielogiczne. Na przykład domniemane pochodzenie terminu „ błąd ” odnoszącego się do usterki w programie komputerowym. Lub obecne znaczenie terminu „skok kwantowy” w kulturze popularnej. Lub słowo „gej”.

(Ale w przypadku „zanieczyszczenia hałdy” źródło >> jest << znane, a uzasadnienie wyboru terminu >> jest << oczywiste ... dla osób z tego samego języka i kultury, co autorzy.)

To zabawne, ale nawet Google nie wydaje się wiedzieć, dlaczego.

Nie całkiem. Oznacza to po prostu, że nikt wcześniej nie pomyślał o zapytaniu o definicję w miejscu indeksowanym przez Google. 1) Wykorzystanie jest ograniczone do programowania AFAIK w Javie, i 2) analogia jest oczywista ... dla większości osób, które użyłyby tego terminu.

Stephen C.
źródło