UNDERSTANDING JAVA VIRTUAL MACHINE helps readers in gaining in-depth knowledge of underlying Java virtual machine architecture. Chapters in this book are outcome of author's understanding, developed while coding Java Virtual Machine. Initial chapters give the background of platform dependency and how platform independence can be achieved. It explains the building blocks of the Java Virtual Machine like heap, stacks and other storage areas. In subsequent chapters, it continues with algorithms that Java Virtual Machine performs. This book uses 'C' programming language for explaining the algorithms. Audience having background of 'C' or other language will have an advantage in understanding Java Virtual Machine algorithms. Final chapters help target audience in understanding the implementation of java native interface, muti-threading and garbage collection in Java Virtual Machine.