What is the best way to understand things like class loaders and the internals of java compilation process.Is there a good book for that?Can anyone suggest some reference material for related stuff.
For example, i came to know that when a enum is changed(perhaps some enum constants are added/deleted) there is no need to recompile the dependant classes. But its the not case if i use static final variables declared in another class.If i change any static final variables in this class, i have to recomplie all the other classes that are dependant on this class. That's fine. But what i want to know is why it happens like..what happens in former case and the later case.Not for this particular case but i gave this an example. I want some book/reference which can guide me to understand these sort of things.
The Java Language spec is definitely a good guide, but in case you want a book try "Inside the Java Virtual Machine" by Bill Venners. The only problem is that the book is dated 2000, so it will not cover the new features but will definitely help you achieve a solid understanding of class loading, java compilation and linking process.