jdk+tomcat(一)

紫翼龍王夜發表於2015-03-25
Java體系結構包括四個獨立但相關的技術:
Java程式設計語言
Java class檔案格式
Java API
Java VM

用Java語言編譯原始碼,把它編譯成Java Class檔案,然後在Java VM中執行class檔案;當編寫程式時,透過呼叫類(Java API)中的方法來訪問系統資源,而當程式執行時,它透過呼叫class檔案中實現了Java API的方法也滿足程式的Java API呼叫。Java VM和Java API一起組成了一個“平臺”,所有Java程式都在其上編譯和執行,因此,它們有時也被稱作Java執行時環境。

Java VM的主要任務是裝載class檔案並且執行其中的位元組碼。Java VM包含一個類裝載器(class loader),它可以從程式和API裝載class檔案;而Java API的類只在程式執行中需要時才會被裝載。

Java位元組碼由執行引擎來執行。而不同的Java VM中,其執行引擎的實現可能各不相同。最簡單的執行引擎不是一次性解釋位元組碼,而另一種稱為“即時編譯器(just-in-time compiler)”的執行引擎執行速度更快,但要消耗更多的記憶體資源。即時編譯模式下,第一次被執行的位元組碼會被編譯成本地機器程式碼並快取下來以實現“複用”。第三種執行引擎是所謂的自適應最佳化器,此種方法中,虛擬機器始的時候解釋位元組碼,介是會監視執行中程式的活動,並且記錄下使用最頻繁的程式碼。程式執行時,虛擬機器只把那些活動最頻繁的程式碼編譯成原生程式碼,而不頻繁的程式碼則仍然保留為位元組碼由虛擬機器解釋執行。自適應最佳化器可以使得Java VM在80%-90%的時間裡執行被最佳化過的原生程式碼,而只需要編譯10%-20%對效能有影響的程式碼。最後一種虛擬機器由硬體晶片構成,它用本地方法執行Java位元組碼,其執行引擎內嵌於晶片中。

Sun公司建立了第一個Servlet容器,即Java Web Server, 但JWS只是為了演示Servlet的相應功能,所以其很不穩定。與此同時,ASF建立了JServ專案,一個能夠與apache整合起來的servlet容器。1999年,Sun把JWS捐給了ASF,於是兩個專案合二為一,即今天Tomcat的前身。第一個tomcat版本是Tomcat 3.x系列,而釋出於2001年Tomcat4.0則是在此前基礎上進行了重新設計和實現,其程式碼專案被命名為Catalina。目前最新的版本則是7.x系列。

Java SE則包含了Java二進位制程式(如JVM和Java位元組碼編譯器)和Java的核心程式碼庫,而Jave EE標準則包含了一組適用於建立企業級Web應用程式的API。Jave EE建立在Java SE的基礎上,並依賴於Java SE才能正常工作。當然,任何級別的應用程式均能從Java EE中獲益,但Jave EE卻更適合解決大型軟體系統設計中的問題。

JAVA EE包含多個獨立的API,Servlet和JSP就是其中的兩個,而JAVA EE中著名的API中還包含如下的幾個:

JAVA EE APIs:
EJB(Enterprise JavaBeans):JAVA相關的諸多高階功能的實現,如RMI(Remote Method Invocation), 物件/關係對映,跨越多個資料來源的分散式事務等;

JMS(Java Message Service):高效能非同步訊息服務,實現JAVA EE應用程式與非JAVA程式的“透明”通訊;

JMX(Java Management Extensions):在程式執行時對其進行互動式監控和管理的機制;

JTA(Java Transaction API):允許應用程式在自身的一個或多個元件中平滑地處理錯誤的機制;

JavaMail:透過工業標準的POP/SMTP/IMAP協議傳送和接收郵件的機制;


Java SE APIs:
JNDI(Java Naming and Directory Interface):用於與LDAP服務互動的API;
JAXP(Java API for XML Processing):用於分析及轉換XML(基於XSLT實現);

Java SE API + JDK

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30129545/viewspace-1473589/,如需轉載,請註明出處,否則將追究法律責任。

相關文章