區別:JDK,JRE,JVM,JIT
JDK:java development kit,oracle(現在是sun)的一個產品,不僅包含了jre,還有compiler,debugger等等,相當於eclipse。
JRE:java runtime environment,就是平常電腦沒有java要下載的java程式,把我搞死的那個sas就是通過這個。。。這是為了提供一個統一的平臺,讓所有java的program或application能執行。
上述這兩個,JRE是隻用來run 程式的,JDK是用來編譯開發的,JDK裡有JRE裡沒有的javac的compiler,只要下了jdk就不用下JRE了。
JVM:java virtue machine,這是jre的一個例項,就是經常說的interpretor。According to
The JVM, which is the instance of the 'JRE' (Java Runtime Environment), comes into action when a Java program is executed. When execution is complete, this instance is garbage collected. JIT is the part of the JVM that is used to speed up the execution time. JIT compiles parts of the byte code that have similar functionality at the same time, and hence reduces the amount of time needed for compilation.
JIT:just in time,在上邊一段有提及,說到這就得說起java program的compilation過程了,上圖:
當jvm 做interpretation的時候,發現有部分code是hot spot,於是乎,just-in-time(顧名思義,及時地)發現,然後這段code繼續compile到機器碼,於是乎,cpu可以幹活了,速度顯著提高,through this way來優化。(http://nullpointer.debashish.com/primer-difference-between-javac-and-jit)