Alguem que entenda de bytecode pode de dizer pq isso acontesse?
Isso esta mesmo correto.
Se eu remover a linha do “created=0” funciona corretamente.
public class M {
private int created = 0;
public M(){
int created = 0;
for (int i = 0; i < 2; i++) {
System.out.println(++created);
inDeep();
}
}
private void inDeep() {
System.out.println(created);
}
public static void main(String[] args) {
M c = new M();
}
}
Saida
1
0
2
0