« Загрязнение кучи », как в типах, не подлежащих повторному определению (Учебные руководства Java ™> Изучение языка Java> Обобщения (Обновлено))
Почему это так называется?
« Загрязнение кучи », как в типах, не подлежащих повторному определению (Учебные руководства Java ™> Изучение языка Java> Обобщения (Обновлено))
Почему это так называется?
Ответы:
Загрязнение кучи просто подразумевает, что в вашей куче есть «плохие вещи». Это аналогия (например) загрязнения воды, когда у вас есть «плохие вещи» в воде.
В частности, плохие вещи здесь - это объекты типа, A
где вы должны иметь объекты типа B
... в соответствии со статической типизацией. Некоторая дыра в статической типизации позволяет утечке плохого материала в кучу ... где он может привести к повреждению (например, неожиданному ClassCastExceptions
) во время выполнения.
Это не особенно хорошая аналогия, но это терминология, которую придумали люди Java ... и они (фактически) определили ее на странице, на которую вы ссылались, и, возможно, в других местах.
Но все же - за этим именем должна быть причина / мнемоника.
Почему должно быть? В английском языке используется много слов и фраз, в которых никто не знает ни происхождения, ни причин. Или где происхождение известно, но нелогично. Например, предполагаемое происхождение термина « ошибка » относится к недостатку в компьютерной программе. Или текущее значение термина «квантовый скачок» в популярной культуре. Или слово "гей".
(Но в случае «загрязнения кучи» источник >> «известен», и причина выбора термина >> «самоочевидна ...» для людей из того же языкового и культурного происхождения, что и авторы.)
Это смешно, но даже Google, кажется, не знает, почему.
На самом деле, нет. Это просто означает, что ранее никто не думал просить дать определение в месте, которое индексирует Google. 1) Использование ограничено Java-программированием AFAIK, и 2) аналогия очевидна ... для большинства людей, которые будут использовать этот термин.