Je dirai que tout le monde à raison 
Car oui, c'est mieux d'utiliser synchronized si on en a pas besoin. Mais je me poserai plutôt la question de savoir si la personne sait à quoi sert synchronized.
Car synchronized sert aussi aux autres à savoir que cette partie de code est partagée et donc qu'il faut faire attention avant d'y fait le moindre changement.
Sinon pour les optimisations je dirai qu'il n'y a pas trop de règles et surtout que la plupart du temps en utilisant un profiler on les trouve 
Par exemple une fois en voulant optimiser une partie de code, on s'est aperçu que la méthode qui prenait le plus de temps c'était la concaténation de chaine.
on voyait partout du: String s = "X"+"y"+"Z";
...
Et bien en utilisant un petit Stringbuilder on a complement enlevé le problème.
Du même genre, mettre des traces de debug c'est bien mais éviter:
logger.debug("la string est "+object.toString());
Car on perd du temps a essayer d'afficher une chaine qui ne sert peut-être pas et donc lui préferait:
1 2 3
| if (logger.isDebugEnabled()){
logger.debug("la string est "+object.toString());
} |
Sinon il y a le projet findbugs qui donne déjà un bon premier aperçut des dégâts.
Partager