Eager Class Initialization for Java
We describe a static analysis method on Java bytecode to determine class initialization dependencies. This method can be used for eager class loading and initialization. It catches many initialization circularities that are missed by the standard lazy implementation. Except for contrived examples, the computed initialization order gives the same results as standard lazy initialization.
KeywordsCall Graph Method Invocation Instance Method Application Class Initialization Order
- 1.ACME Java class library. http://www.acme.com/java/software/Package-Acme.html.
- 2.A. V. Aho, J. E. Hopcroft, and J. D. Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974.Google Scholar
- 3.Egon Börger and Wolfram Schulte. Initialization problems for Java. Software Concepts and Tools, 20(4), 1999.Google Scholar
- 4.COLT Java class library. http://tilde-hoschek.home.cern.ch/~hoschek/colt/V1.0.1/doc/overview-summary.html.
- 6.GEO Java class library. http://www.kcnet.com/~ameech/geo/.
- 7.IEEE Standard for Boot (Initialization Configuration) Firmware: Core Requirements and Practices, 1994. IEEE Standard 1275–1994.Google Scholar
- 8.Java development kit, version 1.4. http://www.java.sun.com/.
- 9.Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison Wesley, 1996.Google Scholar
- 10.Martijn Warnier. Specification and verification of sequential Java programs. Master’s thesis, Utrecht University, January 2002.Google Scholar