考虑以下代码:
for(int i = 0;i < 200;i++)
{
ArrayList<Integer> currentList = new ArrayList<Integer>() {{
add(i);
}};
// do something with currentList
}
- Java将如何对待类
currentList
?
- 它会将 200 个对象中的每一个对象视为不同的类吗?
- 即使在创建第一个对象之后,性能也会受到影响吗?
- 它是否以某种方式缓存它?
我只是好奇 :)
编译器会将任何匿名类转换为命名内部类。因此,您的代码将被转换为以下内容:
class OuterClass$1 extends ArrayList<Integer> {
OuterClass$1(int i) {
super();
add(i);
}
}
for (int i = 0; i < 200; i++) {
ArrayList<Integer> currentList = new OuterClass$1(i);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)