Java in the virtual machine is developed in other languages, with the C language + assembly language based on the above is the Java itself the virtual machine only plays an analytic role
In addition, Java is not slower than the C language, said Java slow is generally the 90 's Java, and now in a good Java program and C program implementation efficiency is not much difference and now Java can be as C language, directly compiled into executable files (no virtual machine, Cross-platform for the price)
I don't know, you've seen great programming. Two (using low-level thinking to write advanced code) there is no, that detail of the high-level language from the writing to compile the implementation of the process, through the object of the disassembly of the document comparison, found C,c++,java, Dephi and other languages in the same quality of the target file length is basically not much different, a language running speed, and you write code in the process of whether the compiler rules are closely related. You can go and see the book sometime.
Java low-level implementation is written in C language, because a lot of encapsulation, so slower than C language speed.
The JVM is written in C, so the usual attack on the JVM is the buffer overflow.
C language, java6.0 have been open source.
In the Windows platform JVM implementation is written in VC, you download the JDK actually have a src.zip, that is the Java source code.
The original is written in C, such as Javac command, the following function is written by Java itself, such as the API, now mostly open source, interested can look at that project, called OPENJDK, you can also provide code, perhaps later version will be adopted.