Ява: «Загрязнение кучи» [закрыто]


63

« Загрязнение кучи », как в типах, не подлежащих повторному определению (Учебные руководства Java ™> Изучение языка Java> Обобщения (Обновлено))

Почему это так называется?


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.