If you need to use lazy initialization for performance on a static field, use the lazy initialization holder class idiom. This idiom exploits the guarantee that a class will not be initialized until it is used [JLS, 12.4.1].
Beware, this lazy initialization applies at the class level! That is, the first access of FieldHolder initializes everything in the FieldHolder class. So, if you have multiple fields you want to use this pattern on, and you put them in one holder class, all of the fields in it will be initialized at the same time (potentially costly). If that's a problem, you have to create a holder for each field (uglier).