Java Performance Tuning, 2nd Edition by Jack Shirazi The following corrections were made to the 10/03 reprint: Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem (192) Existing code line: public static final Class FOO_BAR_CLASSNAME = Class.forName("foo.bar.ClassName"); NOW READS: public static final Class FOO_BAR_CLASSNAME = foo.bar.ClassName.class; Text below that (pp. 192-193): Existing paragraph: Note that foo.bar.ClassName.class is a valid construct to refer to the foo.bar.ClassName class object. However, the compiler generates a static method that calls Class.forName( ) and replaces the foo.bar.ClassName.class construct with a call to that static method. So it is better to use the FOO_BAR_CLASSNAME static variable as suggested, rather than: NOW READS: Note that foo.bar.ClassName.class is a valid construct to refer to the foo.bar.ClassName class object. However, the compiler generates a static method that calls Class.forName( ) and replaces the foo.bar.ClassName.class construct with a call to that static method. So if the contruct will be accessed more than once, it is better to use the FOO_BAR_CLASSNAME static variable as suggested, rather than: