web-dev-qa-db-ja.com

Java:「ヒープ汚染」

A "ヒープ汚染" as Non-Reifiable Types (The Java™Tutorials> Learning the Java Language>ジェネリック(更新))

なぜそのように呼ばれるのですか?

64
user18404

ヒープ汚染は単に、ヒープに「悪いもの」があることを意味します。これは、(たとえば)水質汚染に類似しており、水に「悪いもの」が含まれています。

具体的には、ここでの悪い点は、静的型付けに従ってA型のオブジェクトを持つべきB型のオブジェクトです。静的型付けの一部の穴により、悪意のあるものがヒープにリークする可能性があります...実行時に損傷(たとえば、予期しないClassCastExceptions)を引き起こす可能性があります。

これは特に良いアナロジーではありませんが、Javaの人々が作り出した...の用語であり、彼らは(事実上)リンク先のページで定義しています。場所。


しかし、それでも-その名前の背後に理由/ニーモニックデバイスがあるはずです。

なぜあるべきなのか?英語で使われている語句はたくさんありますが、その起源や理由は誰にもわかりません。または起源が知られているが、非論理的です。たとえば、「 バグ 」という用語の想定される起源は、コンピュータプログラムの欠陥を指します。あるいは、大衆文化における「量子跳躍」という用語の現在の意味。または「ゲイ」という言葉。

(しかし、「ヒープ汚染」の場合、出典>> is <<であり、用語の選択の背後にある理由>> is <<自明...と同じ言語的および文化的背景を持つ人々に作家たち。)

おかしいですが、グーグルでさえその理由を知りません。

あんまり。これは、Googleがインデックスに登録する場所に定義を求めることをこれまで誰も考えなかったことを意味します。 1)使用法はJavaプログラミングAFAIK)に制限されています。2)類推は明らかです...この用語を使用するほとんどの人にとっては明らかです。

8年後、これはまだ「なぜ」の質問に答えようとする唯一のページです。 「自明」はそれを適切にカバーしていると思います:-)

76
Stephen C