1. 程式人生 > >programming for java virtual machine note

programming for java virtual machine note

JVM is devided into four conceptual data space:

class areas: the code and the constant are kept

java stack: which keep track of which the method has been called and the  data associated with each method invocation

heap: the object are kept

Native method stack: for support mative method

Oolong is a assembly language for java virtual machine

There is a spacial method named <clinit> that is used to initialize the class as a whole, It's often used to initialize static fields. The <clinit> method taked no arguments and return nothing. It's called by JVM when class is loaded. There is no need for you to call it.

The verification algorithm is to ensure the class file that are loaded into machine follow certain rules. Those rules guarantee the programm can not gain access the fields and methods that they are not allow to access and they can not otherwise trick the JVM into doing unsafe things. The verification algorithm is applied ot every class as they are loaded into the system. before the instences are created or the static properties are used.

class load can take place in two phases, loading and link

After loading, the virtual machine know the name of the class, where it fit into the class hierarchy, and what fields and methods is has.

In the second phase, called linking or resolution,the class is verified to ensure it is well formed and don't try to violate the any the virtual machine's safe constraints. then the static initializer <clinit> is invoked. After linking, the class is ready to use.

The two-stage process allows classes to reference to one another whithout causing infinite loops when two class reference each other.