Consider the following code:
for(int i = 0;i < 200;i++)
{
ArrayList currentList = new ArrayList() {{
add(i);
}};
/
The compiler is going to transform any anonymous class to a named inner class. So your code, will be transformed to something along the lines of:
class OuterClass$1 extends ArrayList {
OuterClass$1(int i) {
super();
add(i);
}
}
for (int i = 0; i < 200; i++) {
ArrayList currentList = new OuterClass$1(i);
}