JVM就是咱們常說的java虛擬機,它是整個java實現跨平臺的 最核心的部分,全部的java程序會首先被編譯爲.class的類文件,這種類文件可 以在虛擬機上執行,也就是說class並不直接與機器的操做系統相對應,而是通過虛擬機間接與操做系統交互,由虛擬機將程序解 釋給本地系統執行。java
JRE是指java運行環境。光有JVM還不能成class的 執行,由於在解釋class的時候JVM須要調用解釋所須要的類庫lib。 在JDK的安裝目 錄裏你能夠找到jre目錄,裏面有兩個文件夾bin和lib,在 這裏能夠認爲bin裏的就是jvm,lib中則是jvm工 做所須要的類庫,而jvm和 lib和起來就稱爲jre。web
JDK是java開發工具包,開發者用來編譯和調試,基本上每一個學java的人都會先在機器 上裝一個JDK,那他都包含哪幾部分呢?讓咱們看一下JDK的安裝目錄。在目錄下面有 六個文件夾、一個src類庫源碼壓縮包、和其餘幾個聲明文件。其中,真正在運行java時起做用的 是如下四個文件夾:bin、include、lib、 jre。如今咱們能夠看出這樣一個關係,JDK包含JRE,而JRE包 含JVM。docker
(jvm < jre < jdk) 下載了jdk,至關於整套的java運行環境都進行了下載tomcat
2. tomcat安全
做爲一個web的服務器。一個tomcat中能夠有多個web項目,使用同一個jvm。若是是多個tomcat,那麼就會啓動多個jvm服務器
3. dockerjvm
容器技術利用 Linux Namespace、cgroups 等完成容器的隔離與資源限制,容器之間共享同一個操做系統內核。jsp
相比容器技術,系統級虛擬化在隔離性方面更加成熟。它爲用戶提供了一個包括虛擬硬件(CPU/內存/IO 設備等)、操做系統在內的完整環境。工具
而容器在啓動銷燬速度、資源消耗、彈性伸縮等方面表現得極爲高效;但在隔離性與安全性方面,仍有很長的路要走。開發工具
容器並無像以前人們想象的同樣順利取代系統級虛擬化。隨着兩者的發展和應用,他們在不少場景巧妙結合,相輔相成,共同完成特定目標。
4.vm
虛擬機 (VM) 是一個物理硬件層抽象,用於將一臺服務器變成多臺服務器。 管理程序容許多個 VM 在一臺機器上運行。每一個VM都包含一整套操做系統、一個或多個應用、必要的二進制文件和庫資源,所以 佔用大量空間 ,並且 VM 啓動也十分緩慢
5. tomcat(docker,vm)
docker 是容器,tomcat是jsp應用服務器(在docker和vm上層) tomcat能夠安裝在物理機上,虛擬機上,也能夠安裝在Docker上。因此從這個角度講,Docker也能夠看作是一種超輕量化的虛擬機