溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

tomcat和java虛擬機(jī)是什么

發(fā)布時(shí)間:2020-05-29 18:47:12 來(lái)源:億速云 閱讀:575 作者:鴿子 欄目:系統(tǒng)運(yùn)維

tomcat

1、Tomcat 簡(jiǎn)介T(mén)omcat是Apache軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由
Apache、Sun和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。
Tomcat服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器。目前Tomcat最新版本為9.0。Java容器還有resin、weblogic等。
Tomcat官網(wǎng): http://tomcat.apache.org

2、Tomcat好幫手---JDK

JDK是 Java 語(yǔ)言的軟件開(kāi)發(fā)工具包,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序。JDK是整個(gè)java開(kāi)發(fā)的核心,它包含了JAVA的運(yùn)行環(huán)境(JVM+Java系統(tǒng)類(lèi)庫(kù))和JAVA工具。 http://www.oracle.com/technetwork/java/javase/downloads/index.html

端口: tomcat自身服務(wù)的端口:8005
tomcat和其他應(yīng)用通信的端口:8009 tomcat給客戶端瀏覽器訪問(wèn)頁(yè)面使用的端口:8080

JVM基礎(chǔ)

一、JVM 虛擬機(jī)常識(shí)作為了解JVM 虛擬機(jī)的開(kāi)始。我們很有必要弄明白以下兩個(gè)問(wèn)題。

1.什么是JAVA虛擬機(jī)

所謂虛擬機(jī),就是一臺(tái)虛擬的計(jì)算機(jī)。他是一款軟件,用來(lái)執(zhí)行一系列虛擬計(jì)算機(jī)指令。大體上,虛

擬機(jī)可以分為系統(tǒng)虛擬機(jī)和程序虛擬機(jī)。大名鼎鼎的VisualBox、VMware就屬于系統(tǒng)虛擬機(jī)。他們完全是對(duì)物理計(jì)算機(jī)的仿真。提供了一個(gè)可以運(yùn)行完整操作系統(tǒng)的軟件平臺(tái)。
程序虛擬機(jī)的典型代表就是Java虛擬機(jī),它專門(mén)為執(zhí)行單個(gè)計(jì)算機(jī)程序而設(shè)計(jì),在Java虛擬機(jī)中執(zhí)行
的指令我們稱為Java字節(jié)碼指令。無(wú)論是系統(tǒng)虛擬機(jī)還是程序虛擬機(jī),在上面運(yùn)行的軟件都唄限制于虛擬機(jī)提供的資源中。

2.JAVA 如何做到跨平臺(tái)

同一個(gè)JAVA程序(JAVA字節(jié)碼的集合),通過(guò)JAVA虛擬機(jī)(JVM)運(yùn)行于各大主流操作系統(tǒng)平臺(tái)比如Windows、CentOS、Ubuntu等。程序以虛擬機(jī)為中介,來(lái)實(shí)現(xiàn)跨平臺(tái)。

1/14

3.虛擬機(jī)基本結(jié)構(gòu)我們要對(duì)JVM虛擬機(jī)的結(jié)構(gòu)有一個(gè)感性的認(rèn)知。畢竟我們不是編程人員,認(rèn)知程度達(dá)不到那么深入。

1)、類(lèi)加載子系統(tǒng)
負(fù)責(zé)從文件系統(tǒng)或者網(wǎng)絡(luò)中加載Class信息,加載的類(lèi)信息存放于一塊稱為方法區(qū)的內(nèi)存空間。除了類(lèi)信息外,方法區(qū)中可能還會(huì)存放運(yùn)行時(shí)常量池信息,包括字符串字面量和數(shù)字量。

2/14

2)、Java堆

在虛擬機(jī)啟動(dòng)的時(shí)候建立,它是Java程序最主要的內(nèi)存工作區(qū)域。幾乎所有的Java對(duì)象實(shí)例都放Java堆中。堆空間是所有線程共享的,這是一塊與Java應(yīng)用密切相關(guān)的內(nèi)存區(qū)間。

3)、Java的NIO庫(kù)(直接內(nèi)存)

允許Java程序使用直接內(nèi)存。直接內(nèi)存是在Java堆外的、直接向系統(tǒng)申請(qǐng)的內(nèi)存區(qū)間。通常訪問(wèn)直接內(nèi)存的速度會(huì)優(yōu)于Java堆。因此出于性能考慮,讀寫(xiě)頻繁的場(chǎng)合可能會(huì)考慮使用直接內(nèi)存。由于直接內(nèi)存
在Java堆外,因此它的大小不會(huì)受限于Xmx指定的最大堆大小。但是系統(tǒng)內(nèi)存是有限的,Java堆和直接內(nèi)存的總和依然受限于操作系統(tǒng)能給出的最大內(nèi)存。

4)、垃圾回收系統(tǒng)
垃圾回收系統(tǒng)是Java虛擬機(jī)的重要組成部分,垃圾回收器可以對(duì)方法區(qū)、Java堆和直接內(nèi)存進(jìn)行回
收。

5)、Java棧

每一個(gè)Java虛擬機(jī)線程都有一個(gè)私有的Java棧。一個(gè)線程的Java棧在線程創(chuàng)建的時(shí)候被創(chuàng)建。Java保存著幀信息,Java棧中保存著局部變量、方法參數(shù),同時(shí)和Java方法的調(diào)用、返回密切相關(guān)。

4.虛擬機(jī)堆內(nèi)存結(jié)構(gòu)

JVM中堆空間可以分成三個(gè)大區(qū),年輕代、老年代、永久代(方法區(qū))。

新生代:新生區(qū)

類(lèi)在這里產(chǎn)生和應(yīng)用,最后被垃圾回收。所有的類(lèi)在伊甸區(qū)被new出來(lái),當(dāng)伊甸區(qū)滿了,GC會(huì)對(duì)該區(qū)不用的對(duì)象銷(xiāo)毀,剩余有用的轉(zhuǎn)到幸存區(qū)。

老年代:老年區(qū)用于存放生成周期比較長(zhǎng)的對(duì)象。

3/14

永久代:永久區(qū)存放JDK自帶的class,interface。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI