Bloqueo en un literal de cadena
synchronized("one") { /* block one A*/ }
synchronized("one") { /* block one B*/ }
Nombres de clase muy largos. (en el JRE)
com.sun.java.swing.plaf.nimbus.
InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
Mala estructura de herencia
com.sun.corba.se.internal.Interceptors.PIORB extends
com.sun.corba.se.internal.POA.POAORB extends
com.sun.corba.se.internal.iiop.ORB extends
com.sun.corba.se.impl.orb.ORBImpl extends
com.sun.corba.se.spi.orb.ORB extends
com.sun.corba.se.org.omg.CORBA.ORB extends
org.omg.CORBA_2_3.ORB extends
org.omg.CORBA.ORB
Una excepción que no lo es.
public interface FlavorException { }
Manejo de errores sin sentido y críptico
if (properties.size() > 10000)
System.exit(0);
Creación innecesaria de objetos.
Class clazz = new Integer(0).getClass();
int num = new Integer(text).intValue();
Lanzar una excepción para otros fines
try {
Integer i = null;
Integer j = i.intValue();
} catch (NullPointerException e) {
System.out.println("Entering "+e.getStackTrace()[0]);
}
Uso de objetos de instancia para métodos estáticos.
Thread.currentThread().sleep(100);
Sincronización en un campo no final
synchronized(list) {
list = new ArrayList();
}
Copia sin sentido de una cadena constante
String s = new String("Hello world");
Llamada inútil a String.toString ()
String s = "Hello";
String t = s.toString() + " World";
Llamadas a System.gc () para liberar algo de memoria
Establecer la variable local en nulo para liberar algo de memoria
// list is out of scope anyway.
list = null;
}
Usar ++ i en lugar de i ++ por razones de rendimiento (o cualquier otra micro-micro-optimización)