tomcat
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了扎賚諾爾免費(fèi)建站歡迎大家使用!
1、Tomcat 簡(jiǎn)介Tomcat是Apache軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由
Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。
Tomcat服務(wù)器是一個(gè)免費(fè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 語言的軟件開發(fā)工具包,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序。JDK是整個(gè)java開發(fā)的核心,它包含了JAVA的運(yùn)行環(huán)境(JVM+Java系統(tǒng)類庫)和JAVA工具。 http://www.oracle.com/technetwork/java/javase/downloads/index.html
端口: tomcat自身服務(wù)的端口:8005
tomcat和其他應(yīng)用通信的端口:8009 tomcat給客戶端瀏覽器訪問頁面使用的端口:8080
JVM基礎(chǔ)
一、JVM 虛擬機(jī)常識(shí)作為了解JVM 虛擬機(jī)的開始。我們很有必要弄明白以下兩個(gè)問題。
1.什么是JAVA虛擬機(jī)
所謂虛擬機(jī),就是一臺(tái)虛擬的計(jì)算機(jī)。他是一款軟件,用來執(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ī),它專門為執(zhí)行單個(gè)計(jì)算機(jī)程序而設(shè)計(jì),在Java虛擬機(jī)中執(zhí)行
的指令我們稱為Java字節(jié)碼指令。無論是系統(tǒng)虛擬機(jī)還是程序虛擬機(jī),在上面運(yùn)行的軟件都唄限制于虛擬機(jī)提供的資源中。
2.JAVA 如何做到跨平臺(tái)
同一個(gè)JAVA程序(JAVA字節(jié)碼的集合),通過JAVA虛擬機(jī)(JVM)運(yùn)行于各大主流操作系統(tǒng)平臺(tái)比如Windows、CentOS、Ubuntu等。程序以虛擬機(jī)為中介,來實(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)、類加載子系統(tǒng)
負(fù)責(zé)從文件系統(tǒng)或者網(wǎng)絡(luò)中加載Class信息,加載的類信息存放于一塊稱為方法區(qū)的內(nè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庫(直接內(nèi)存)
允許Java程序使用直接內(nèi)存。直接內(nèi)存是在Java堆外的、直接向系統(tǒng)申請(qǐng)的內(nèi)存區(qū)間。通常訪問直接內(nèi)存的速度會(huì)優(yōu)于Java堆。因此出于性能考慮,讀寫頻繁的場(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ū)
類在這里產(chǎn)生和應(yīng)用,最后被垃圾回收。所有的類在伊甸區(qū)被new出來,當(dāng)伊甸區(qū)滿了,GC會(huì)對(duì)該區(qū)不用的對(duì)象銷毀,剩余有用的轉(zhuǎn)到幸存區(qū)。
老年代:老年區(qū)用于存放生成周期比較長(zhǎng)的對(duì)象。
3/14
永久代:永久區(qū)存放JDK自帶的class,interface。