Java: "Забруднення купи" [закрито]


63

А " Забруднення Heap " , як і в типах Non-Reifiable (The Java ™ Підручники> Вивчення Мови Java> Generics (Оновлено))

Чому його так називають?


3
Важлива причина того, що у вашому проекті немає попереджень.

@ ThorbjørnRavnAndersen Добрий. Але все ж - за цією назвою має стояти причина / мнемонічний пристрій. Це смішно, але навіть Google не здається знати, чому.

Відповіді:


72

Забруднення купи просто означає, що у вас в купі "погані речі". Це аналогія (наприклад, забрудненню води), де у вас є "погані речі" у воді.

Зокрема, тут погані речі - це об'єкти типу, Aде ви повинні мати об’єкти типу B... відповідно до статичного набору тексту. Деякий отвір у статичному наборі тексту дозволяє поганим предметам просочуватися у купу ... там, де це може призвести до пошкодження (наприклад, несподіваного ClassCastExceptions) під час виконання.

Це не дуже хороша аналогія, але це термінологія, яку придумали люди Java ... і вони (фактично) визначили це на сторінці, на яку ви пов’язали, і, мабуть, в інших місцях.


Але все ж - за цією назвою має стояти причина / мнемонічний пристрій.

Чому це повинно бути? Англійською мовою користується багато слів і фраз, де ніхто не знає ні походження, ні міркувань. Або там, де походження відомо, але нелогічно. Наприклад, передбачуване походження терміна " помилка ", що посилається на недолік у комп'ютерній програмі. Або сучасне значення терміна «квантовий стрибок» у популярній культурі. Або слово "гей".

(Але у випадку "забруднення купи" джерело >> є << відомим, і міркування щодо вибору терміна >> є << самоочевидним ... людям з того ж мовного та культурного походження, що і автори.)

Це смішно, але навіть Google не здається знати, чому.

Не зовсім. Це просто означає, що раніше ніхто не думав просити визначення в місці, яке Google індексує. 1) Використання обмежується Java програмуванням AFAIK, і 2) аналогія очевидна ... для більшості людей, які використовують цей термін.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.