自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

新手學堂:漫談EJB在Java應用中的作用

開發(fā) 后端
本文將談談EJB在Java應用中的作用,EJB (Enterprise JavaBean)是J2EE的一部分,定義了一個用于開發(fā)基于組件的企業(yè)多重應用程序的標準。其特點包括網(wǎng)絡服務支持和核心開發(fā)工具(SDK)。

Java語言

Java語言最早被稱為Oak,它是為了實現(xiàn)嵌入式的消費類電子產(chǎn)品應用而產(chǎn)生的,它的作者是James Gosling.Ed Frank, Patrick Naughton, Jonathan Payne, Chris Warth在隨后的幾年時間中為Java語言加入了大量的特性,并把Java語言的目標做了一個重新的定位,定位于適合Internet的語言。

Java語言是一種多用途的語言、并發(fā)的語言、以類為基礎,面向?qū)ο蟮恼Z言。它的設計盡可能的做到和操作系統(tǒng)是無關的,也就是Java所宣傳的那句話:“一次編寫,到處運行?!盝ava的設計參考了C和C++語言,因此熟悉C和C++的程序員對Java語言上手很快,而Java設計的原則是能夠利用Java語言快捷的編寫應用,所以我們可以發(fā)現(xiàn),在Java語言中,并沒有那些C和C++中的復雜的機制。最明顯的就是C中被大量使用的指針,由于它的隨意性,被Java以引用來代替了。而C++中的操作符重載、模板、泛型的特性也因為使用比較復雜,Java也不予采用。但是目前Java應用仍然不斷的推出新的特性,以滿足應用的發(fā)展。例如在新推出的JDK1.4中,Java語言就能夠支持Assertment機制和Perl語言中最有用的正則表達式機制。

Java語言主要由以下五種元素組成:標識符、關鍵字、文字、運算符和分隔符。這五種元素有著不同的語法含義和組成規(guī)則,它們互相配合,共同完成Java語言的語意表達。

1:標識符。變量,類和方法都需要一定的名稱,我們將這種名稱叫做標識符。

2:關鍵字。關鍵字是Java語言本身使用的標識符,它有其特定的語法含義。所有的Java關鍵字將不能被用作標識符。

3:數(shù)據(jù)類型。Java應用有著不同的數(shù)據(jù)類型。比較值得一提的是字符串數(shù)據(jù)類型,字符串數(shù)據(jù)類型是用一對雙引號括起來的字符序列,字符串數(shù)據(jù)實際上是由String類所實現(xiàn),而不是C語言中所用的字符數(shù)組。每一個字符串數(shù)據(jù)將產(chǎn)生一個String類的新的實例,用戶不必對字符串與類這個概念發(fā)生關系而感到擔心,由于類的特性,你不必擔心如何去實現(xiàn)它們,它們會自己照顧好自己,需要說明的是字符串在Java里作為類只是出于安全的考慮。

4:運算符。任何語言都有自己的運算符,Java語言也不例外,如+、-、*、/等都是運算符,運算符的作用是與一定的運算數(shù)據(jù)組成表達式來完成相應的運算。對不同的數(shù)據(jù)類型,有著不同的運算符。

5:分隔符。分隔符用來使編譯器確認代碼在何處分隔。‘’‘’‘;’‘:’都是Java語言的分隔符。

學習 Java 語言很簡單,畢竟Java 語言也只包含五十多個關鍵詞(keyword)與幾十個算符(operator),再加上 Java 語法(syntax)也很簡單,所以一般人可以很快就學會 Java 語言。

危險的是,很多人認為已經(jīng)完全掌控Java語言,但其實對于內(nèi)部的運作機制仍不能掌握,這些盲點有時候會讓你無法完全掌控 Java 語言。

克服這些盲點的方式是看「The Java Language Specification, 2nd Ed.」(沒有中文版)來徹底弄懂 Java 程序語言,并看「Inside the Java Virtual Machine, 2nd Ed.」來徹底掌握 Java 虛擬機器的運作方式。

學會了語言,并不代表就可以設計出好的對象導向系統(tǒng)架構(gòu)。想要成為對象導向的專家,往往需要:

(1) 多看相關的書,特別是 Design Pattern 和 Refactoring 的書。

(2) 多觀摩別人的程序(例如 Java API 的 design 與 implementation)

(3) 多寫程序。

學會Java語言之后,還需要學會一些 API 才能寫出有用的程序。

Java 的 API 非常多,必須規(guī)劃好一個學習路徑,才不會在浩瀚的 API 大海中迷失。必備的API 包括了:IO、New IO、Collection Framework、Network、RMI、JAXP…… 等。

至于其它的 API,就看你的需求而定,大致上分成:

◆GUI 類:JavaBean -> Swing -> JavaHelp -> Java2D -> Image IO -> JAI -> Java 3D ……

◆Enterprise 類:JDBC -> JDO -> Servlet -> JSP -> EJB -> JMS -> JTA/JTS……

◆J2ME 類(這一類不是我的專長,無法提供學習順序建議)

Java語言通常都是根據(jù)Java虛擬機規(guī)范(The Java Virtual Machine Specification)中的定義,編譯為字節(jié)碼指令集和二進制格式。因此我們接下來就討論Java虛擬機(JVM)

JVM

我們已經(jīng)談過Java語言的語法類似于C和C++,但是摒棄了C和C++中復雜、疑惑和不安全的特性。Java語言最早是用來構(gòu)建消費類網(wǎng)絡設備的軟件的,因此它要支持多主機的架構(gòu),并要求能夠提供安全的軟件組件。為了滿足這些需求,編譯好的代碼就必須能夠通過網(wǎng)絡來傳播,能夠在任何客戶端上運行,同時還要保證客戶端是足夠安全的。

Java虛擬機是Java和Java 2 平臺的基石。它能夠保證Java語言和硬件、操作系統(tǒng)無關,保證編譯后的代碼最小,并保護用戶不受惡意程序的攻擊。Java虛擬機到底是什么呢。其實它就是一臺不實際存在的計算機。和真實的計算機類似,它也有自己的指令集,并可以在運行環(huán)境中分配內(nèi)存區(qū)域。使用虛擬機機制來實現(xiàn)編程語言并不是Java的創(chuàng)舉,這已經(jīng)是非常普遍的做法了,最著名的許你就莫過于UCSD Pascal的P-Code機。

只要瀏覽器檢測到目前所處理的Web文件內(nèi)容含有一個Java Applet,瀏覽器將會為這個Java小程序另外開一個JVM,執(zhí)行這個Java應用小程序。在JVM中執(zhí)行的Java小程序可以得到充分安全的保護。如同我們上面所說,JVM是一個自給自足的作業(yè)環(huán)境,就像是一臺獨立的計算機一樣。例如,在JVM運作的Applet,無法存取主機操作系統(tǒng)。優(yōu)點是:

1. 系統(tǒng)中立。Java應用程序可以在任何JVM中運作,不論該系統(tǒng)使用何種硬件、軟件。

2. 安全。正因JVM跟操作系統(tǒng)沒有任何接觸,Java程序很難損害到其它檔案或應用程序。

缺點是,由于在JVM運作的程序獨立在操作系統(tǒng)之外,也就無法享受操作系統(tǒng)各項特殊功能。

Java技術之所以在今天得到了如此廣闊的應用,其中它的安全性是不能不提的。不同于其它技術(例如Microsoft的ActiveX)中安全性作為附加設計和補丁,Java從設計之初便考慮到了安全性。因此Java應用的安全性是在語言層次實現(xiàn)的。Java應用的安全性由下列三個方面保證:

1、語言特性(包括數(shù)組的邊界檢查、類型轉(zhuǎn)換、取消指針型變量)。

2、資源訪問控制(包括本地文件系統(tǒng)訪問、Socket連接訪問)。

3、代碼數(shù)字簽名(通過數(shù)字簽名來確認代碼源以及代碼是否完整)。

Java的源代碼是先編譯成為一種字節(jié)碼的中間代碼,存放這種代碼的文件就是class的文件。真正執(zhí)行的時候是將class文件裝載到JVM(虛擬機)中,然后由JVM解釋執(zhí)行的。所以數(shù)組的上下界檢查及合法的類型轉(zhuǎn)換是通過JVM得到保證的。Java通過一個類裝載器類(ClassLoader)將虛擬機代碼文件(即class文件)裝載到JVM中,當完成裝載后,一個被稱做安全管理器(SecurityManager)的類開始運行,例如當一個Applet的class文件被缺省的類裝載器裝載到JVM中后,JVM會立即為它裝載一個SecurityManager的子類AppletSecurity,由這個管理器來驗證操作。代碼的所有動作(例如文件讀寫)都要先經(jīng)過驗證,只有被該安全管理器接受的動作才能完成,否則就會拋出SecurityException異常。

對于JDK1.0,權限被籠統(tǒng)的劃分為兩大塊。一是擁有所有的權限,一個是僅擁有"沙箱"(sandBox)權限,這也是普通的Applet所擁有的權限。這時本地文件讀寫或是與源主機(Orignal Server)以外的主機連接都是被禁止的。這種劃分的最大問題就是缺乏靈活性。例如我們希望一個Applet在用戶信任的情況下能夠?qū)Ρ镜匚募到y(tǒng)的某個目錄進行讀寫,但并不要通過Socket與其它主機連接。這是JDK1.0的權限劃分就不能達到要求。JDK1.1后改進了權限的劃分,引入了權限集(PermissionSet)的概念。

由于我們的文章并不是討論JVM,因此,我們只是對JVM做一個簡單的介紹

【編輯推薦】

  1. 專題:Java實用開發(fā)全集_51CTO.COM
  2. Java開發(fā)者盛宴:JavaOne 2009技術前瞻
  3. http://developer.51cto.com/art/200904/119400.htm
  4. Flex連接Java EE的技術選擇
  5. 高手Java核心技術學習筆記
責任編輯:張燕妮 來源: 賽迪網(wǎng)
相關推薦

2009-06-25 15:54:18

設計模式EJB

2009-06-11 14:25:17

EJBJava

2009-06-29 12:37:21

linux

2022-06-07 08:31:44

JavaUnsafe

2009-07-03 17:39:20

JSP與EJB

2010-04-15 15:48:46

什么是無線網(wǎng)橋

2009-08-17 08:35:22

Linux掛載分區(qū)表fstab

2021-09-17 09:30:57

鴻蒙HarmonyOS應用

2010-01-08 18:02:33

VB.NET事件

2009-06-12 09:49:25

EJB事務屬性EJB事物

2014-04-29 14:56:07

大數(shù)據(jù)

2023-11-06 08:22:34

AIDLAndroid通信

2009-02-16 09:25:43

EJBJavaBeanWebSphere

2009-06-26 16:01:39

EJB組織開發(fā)EJB容器EJB

2011-03-04 10:03:45

EJB數(shù)據(jù)庫應用

2010-05-25 16:04:45

VoIPVoWLAN

2009-08-27 10:19:04

Linux操作系統(tǒng)軟件安裝包Linux

2010-05-12 16:48:31

重組數(shù)據(jù)中心統(tǒng)一通信

2010-06-17 10:19:52

虛擬化實驗室管理器

2010-02-25 17:22:39

WCF服務行為
點贊
收藏

51CTO技術棧公眾號