- in
MethodInvocationProceedingJoinPointuse the same approach as inInjectionPoint.getAnnotations()to do only one volatile read for all calls after field initialization instead of two. - in
AutowiredAnnotationBeanPostProcessorwe are guareded bysynchronized AbstractCacheManagernewly createdLinkedHashSetalways has some extra capacity, so calculation of it's size +1 is redundant