Learning about Java bytecode and the JVM?

Suggested reading: the JVM spec. You might also want to play with BCEL - there are other libraries around for manipulating bytecode, but that's probably the best known one.

I was unaware such a spec even existed. Thats really helpful. – faceless1_14 Jul 30 '09 at 15:08.

The Apache BCEL will allow you to analyse and hand craft . Class files from bytecode. Javap will allow you to disassemble existing .

Class files. It's particularly useful for knocking up quick test classes to understand what is really going on underneath the covers.

Programming for the Java Virtual Machine is a good book for this topic. (Disclosure: I work with the author. ).

I learned by reading the ASM tutorial and mucking about with the library itself. IMHO, ASM is better than BECL. BCEL is already being used successfully in several projects such as compilers, optimizers, obsfuscators, code generators and analysis tools.

Unfortunately there hasn't been much development going on over the past few years. Feel free to help out or you might want to have a look into the ASM project at objectweb. - jakarta.apache.org/bcel.

ASM Project: asm. Ow2. Org – sova Dec 16 '10 at 7:07.

For understanding Java/the JVM's architecture: read Wikipedia, the specs and the source code. For understanding how object-orientated code is done on a low level: try and emulate features like inheritance/polymorphism/encapsulation in a lower-level language like C. In C you can achieve the above through, for example, a combination of function pointers and nested structures.

I really like this second suggestion. I think I may have to attempt to come up with an elegant way of doing that. I know of some really convoluted ones for polymorphism and inheritance but they are all really inefficient techniques I came up with that probably don't even really count as emulating the features.

– faceless1_14 Jul 30 '09 at 15:00 Added more information about doing this in C. It's actually not that hard when you have a good understand of the language and how pointers work. – Mike McQuaid Jul 30 '09 at 16:06.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions