JVM Notes - 1

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

To be a Java programmer in quite a long time, But for the most important component of java - JVM, I

still know very little about, To understant what does java do beyond the source code is quite

necessary, It will help me to understand java well, also It is a good attitude to learn the things-

always try to investigate the core.

What is JVM?

It is the abstract machine which runs on the top the real hardware, and It is the core reason that

Java is the portable language. Since it resides on the middleware rather works on the specific CPU

, registers and so forth.

What is the content in *.class files?

The JVM will compile the source code into the .class file which is the form of bytecodes. It can also

be considered as the machine language of the JVM. To the JVM, a stream of bytecodes is a sequence

of instructions. Each instruction consists of a one-byte opcode and zero or more operands. The

opcode tells the JVM what action to take. If the JVM requires more information to perform the

action than just the opcode, the required information immediately follows the opcode as operands.

Like any kind of language, Java has its owns mnemonic, it can be found from

JVM Specification Mnemonic

Unfortunately, Sun did not offer us any explanation on this horrable simple words.

What is the key component of JVM?

JVM can be divided in to 4 parts which are:

register

stack

heap

method area

The exact location is decided by the specific JVM, but in any forms of the JVM, they must include those

four parts. JVM is 32 bits which means it can address up to 2 to the power of 32(4G),

JVM contains several kinds of primitive types like : byte, short, int, long and so forth and all

this primitive types are mapped to the java language itself. That is the reason we do not need to consider

about how long is such primitive type in specific machine when we programming in Java. That is conveniet for

programmer.

About the registers.

Since JVM is the stack-oriented design, more of the action operates in the stack rather than the register

it keeps the JVM's instrcution set to be quite small. JVM only maintains 3 register:

optop register

frame register

var register

They work together with the program counter to manage the stack.

The program counter(pc) register:

The Java virtual machine can support many threads of execution at once. Each Java thread has its own pc (program counter) register. At any point, each Java virtual machine thread is executing

the code of a single method, the current method (§3.6) for that thread. If that method is not native, the

pc register contains the address of the Java virtual machine instruction currently being executed. If the

method currently being executed by the thread is native, the value of the Java virtual machine's pc register

is undefined. The Java virtual machine's pc register is wide enough to hold a returnAddress or a native pointer on the specific platform.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航