淺談Tomcat與JVM有怎樣的內在關係

首先,咱們來看幾個概念:
1.什麼是jvm
咱們從操做系統的層面來理解,jvm其實就是操做系統中的一個進程。既然是一個進程,那麼咱們很容易的能夠經過任務管理器來查看。假設此時咱們啓動myeclipse(myeclipse其實就是用java語言編寫的一個軟件,他的運行必然會啓動一個jvm,咱們能夠把myeclipse理解成咱們本身寫的一個簡單的java版的helloworld程序)。
2.什麼是tomcat
tomcat實際上是一個用java語言開發的免費開源的web服務器(由於是java語言開發,這就是爲何使用tomcat前要配置好jdk,由於jdk裏面有jvm,而運行java應用須要jvm)。此時再次查看任務管理器會發現多了一個javaw.exe
看了二者之間的概念以後,相信咱們都清楚了二者之間的關係。
如今還有一個問題:
同一個tomcat下的java ee項目使用的是否是同一個jvm?答案是是的。(使用的都是啓動tomcat的jvm)這個能夠經過啓動不一樣的web應用來本身判斷。
若是運行的是普通的java se程序,使用的是否是同一個jvm呢?答案是否。這個能夠本身運行程序判斷。(能夠寫一個很簡單的while死循環,便於查看)。
最終總結出四點結論:
一、JVM就一個,就至關於你的電腦安裝XP系統同樣能夠運行word,offfice等一些辦公軟件。讓tomcat跑起來,就得有jdk,而jdk自帶了JVM,安裝完了jdk,把安裝jkd的bin目錄告訴tomca,就能夠了。
二、有的web服務器沒必要安裝jdk,由於自帶了,如weblogic。
三、tomcat web容器,主要和有jsp和servlet有關, 沒有tomcat, 經過必定技術是能夠運行jsp和serlet,因此說JVM跑着tomcat,而沒有JVM tomcat就廢物了。
四、tomcat只是一個web容器,啓動的時候,默認是不會去編譯java及jsp code的,除非在你web工程的web.xml裏配置了一些listener,而後在這些listner裏,本身定義了一些關於jsp編譯的操做。
 java

相關文章
相關標籤/搜索