heap pollution이란 parameterized type의 변수가 해당하는 타입을 참조하지 않는 경우를 말한다.
예를들어:
List ln = new ArrayList<Number>();
List<String> ls = ln;  // unchecked warning
String s = ls.get(0); // ClassCastException
ln을 ls에 대입하면 List<String> 타입의 변수 ls는 List<Number>를 가리키게 된다. 이러한 상황이 heap pollution이다. heap pollution은 ClassCastException을 초래한다.
위 코드를 컴파일 하면 unchecked warning이 발생하는데, 이런류의 경고가 없도록 컴파일 하면 help pollution을 예방할 수 있다.
참고
- Wikipedia, Heap polution
 - What is heap pollution?