成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

新手學(xué)堂:漫談EJB在Java應(yīng)用中的作用

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

Java語(yǔ)言

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

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

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

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

2:關(guān)鍵字。關(guān)鍵字是Java語(yǔ)言本身使用的標(biāo)識(shí)符,它有其特定的語(yǔ)法含義。所有的Java關(guān)鍵字將不能被用作標(biāo)識(shí)符。

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

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

5:分隔符。分隔符用來(lái)使編譯器確認(rèn)代碼在何處分隔。‘’‘’‘;’‘:’都是Java語(yǔ)言的分隔符。

學(xué)習(xí) Java 語(yǔ)言很簡(jiǎn)單,畢竟Java 語(yǔ)言也只包含五十多個(gè)關(guān)鍵詞(keyword)與幾十個(gè)算符(operator),再加上 Java 語(yǔ)法(syntax)也很簡(jiǎn)單,所以一般人可以很快就學(xué)會(huì) Java 語(yǔ)言。

危險(xiǎn)的是,很多人認(rèn)為已經(jīng)完全掌控Java語(yǔ)言,但其實(shí)對(duì)于內(nèi)部的運(yùn)作機(jī)制仍不能掌握,這些盲點(diǎn)有時(shí)候會(huì)讓你無(wú)法完全掌控 Java 語(yǔ)言。

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

學(xué)會(huì)了語(yǔ)言,并不代表就可以設(shè)計(jì)出好的對(duì)象導(dǎo)向系統(tǒng)架構(gòu)。想要成為對(duì)象導(dǎo)向的專家,往往需要:

(1) 多看相關(guān)的書(shū),特別是 Design Pattern 和 Refactoring 的書(shū)。

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

(3) 多寫(xiě)程序。

學(xué)會(huì)Java語(yǔ)言之后,還需要學(xué)會(huì)一些 API 才能寫(xiě)出有用的程序。

Java 的 API 非常多,必須規(guī)劃好一個(gè)學(xué)習(xí)路徑,才不會(huì)在浩瀚的 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 類(這一類不是我的專長(zhǎng),無(wú)法提供學(xué)習(xí)順序建議)

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

JVM

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

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

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

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

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

缺點(diǎn)是,由于在JVM運(yùn)作的程序獨(dú)立在操作系統(tǒng)之外,也就無(wú)法享受操作系統(tǒng)各項(xiàng)特殊功能。

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

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

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

3、代碼數(shù)字簽名(通過(guò)數(shù)字簽名來(lái)確認(rèn)代碼源以及代碼是否完整)。

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

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

由于我們的文章并不是討論JVM,因此,我們只是對(duì)JVM做一個(gè)簡(jiǎn)單的介紹

【編輯推薦】

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

2009-06-25 15:54:18

設(shè)計(jì)模式EJB

2009-06-11 14:25:17

EJBJava

2009-06-29 12:37:21

linux

2022-06-07 08:31:44

JavaUnsafe

2021-09-17 09:30:57

鴻蒙HarmonyOS應(yīng)用

2009-07-03 17:39:20

JSP與EJB

2010-04-15 15:48:46

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

2009-08-17 08:35:22

Linux掛載分區(qū)表fstab

2014-04-29 14:56:07

大數(shù)據(jù)

2010-01-08 18:02:33

VB.NET事件

2023-11-06 08:22:34

AIDLAndroid通信

2011-03-04 10:03:45

EJB數(shù)據(jù)庫(kù)應(yīng)用

2009-06-26 16:01:39

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

2009-02-16 09:25:43

EJBJavaBeanWebSphere

2009-06-12 09:49:25

EJB事務(wù)屬性EJB事物

2010-05-25 16:04:45

VoIPVoWLAN

2010-05-12 16:48:31

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

2018-01-24 20:42:06

數(shù)據(jù)庫(kù)NoSQL驅(qū)動(dòng)力

2009-11-19 15:14:43

路由器系統(tǒng)

2010-02-25 17:22:39

WCF服務(wù)行為
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人影院一区二区三区 | a视频在线播放 | av网站免费观看 | 久久久久久国产 | 亚洲精品中文在线 | 成人永久免费 | www,黄色,com | 羞羞视频在线免费 | 一区二区三区视频 | 嫩草影院网址 | .国产精品成人自产拍在线观看6 | 天天天操 | 日本黄色大片免费 | 欧美一级免费片 | 91视频一区二区三区 | 天天天操操操 | 中文字字幕在线中文乱码范文 | 久久中文字幕av | 黄色片免费在线观看 | 国产高清精品一区 | 久久99精品久久久久久国产越南 | 国产视频日韩 | 超碰伊人 | 97精品超碰一区二区三区 | 久久草在线视频 | 国产精品久久久久久久久久久久冷 | 欧美中文 | 亚洲精品91 | 国产黄色在线观看 | 一区二区三区国产精品 | 欧洲成人 | 亚洲视频在线观看免费 | 久久亚洲欧美日韩精品专区 | 欧美一级三级在线观看 | 天堂av中文在线 | 91精品国产综合久久久久 | 七七婷婷婷婷精品国产 | 91麻豆精品一区二区三区 | av一级在线观看 | 亚洲精品视频久久 | 91日日|