This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
This ensures that Foo is lazily initialized when the getFoo() method is first called, because of the implications of the static keyword in the context of class initialization. Also, because of static initilization there's no need for synchronization. See the JLS for more details, because these are all the details I remember, having read Java Concurrency in Practice a good while ago. [ September 11, 2008: Message edited by: Jelle Klap ]