What are the scenarios in which case a new class will be loaded?
That is when you have any jar file attached to you your class path. then as far as i know any class from the jar is loaded for the first time wh开发者_C百科en,
- when you create any object of that type. or
- If you are accessing any static member or method of that class. or
- when you load that by using Class.forName() method.
So are there any other ways of loading a class for the first time?
This may be helpful:
5.3 Creation and Loading on the The JavaTM Virtual Machine Specification
I think this pretty much covers it, though of course, class loading is "transitive".
If you are loading a class that references X (e.g., as a return value, as an instantiation, etc.), then X will have to be loaded.
I'm not sure if the loader is allowed to delay the actual load until the reference is really needed.
Also, whenever ClassLoader.loadClass(className)
is called.
精彩评论