Smart pointery - pokud s tím nějaká knihovna nepočítá, tak to moc práce neusnadní. (Jak kdy.) Navíc při reference countingu je potřeba dát si pozor na cykly.
K if(a=1): to je dobrá věc, Java zde ale jde trošku dál s typovou bezpečností - požaduje boolean.
Cyklus v JVM ani .NETu nevadí (v PHP už dokonce taky nevadí - od 5.3), problém je spíš ten neodregistrovaný listener.

