稀有名词解释——Java 堆污染(犄角旮旯问题)
2,676 total views, 3 views today
有些面试官喜欢问一些稀有名词,彰显其渊博的知识背景。
所谓堆污染,简单的说就是当一个泛型类型变量赋值给不是泛型类型变量,这种错误在编译期间能被编译器警告,但是可以忽略,直到运行时报错。
1 2 3 4 5 |
ArrayList list=new ArrayList<Integer>(); list.add(100); ArrayList<String> strList=list; String p=strList.get(0);//运行时出错 System.out.println(p); |
Exception in thread “main” java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String………
这又说明了 Java 伪泛型的本质,在 C#中,写不出这种代码。
参考:https://en.wikipedia.org/wiki/Heap_pollution
原创文章,转载请注明出处!http://www.javathings.top/稀有名词解释-java堆污染(犄角旮旯问题)/