freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

外文翻譯---java技術(shù)及ssh框架和jsp技術(shù)的介紹-jsp程序-文庫(kù)吧

2025-04-17 11:12 本頁(yè)面


【正文】 和控件的支持。但是升陽(yáng)公司和其他使用Java 運(yùn)行時(shí)系統(tǒng)的公司對(duì)于微軟的操作對(duì)用戶提供無(wú)償?shù)牡谌讲寮统绦蛑С帧?Java 語(yǔ)言使用解釋層最初是為了輕巧性。所以這些程序的運(yùn)行效率比 C語(yǔ)言和 C++要低很多,用戶也對(duì)此頗有微詞。很多最近的調(diào)查顯示 Java 的程序運(yùn)行速度比幾年前要高出許多,有些同樣功能的程序的效率甚至超過(guò)了 C++和 C 語(yǔ)言編寫(xiě)的程序。 Java 語(yǔ)言在最開(kāi)始應(yīng)用的時(shí)候是沒(méi)有解釋層的,所有需要編譯的代碼都直接轉(zhuǎn)換成機(jī)器的原始代碼。這樣做的后果就是獲得了最佳的性能,但是程序臃腫異常。從 JIT 技術(shù)開(kāi)始, Java 的程序都經(jīng)過(guò)一次轉(zhuǎn)換之后才變成機(jī)器碼。很多老牌的第三方虛擬機(jī)都使用一種叫做“動(dòng)態(tài)編譯”的技術(shù),也就是說(shuō)虛擬機(jī)實(shí)時(shí)監(jiān)測(cè)和分析程序的運(yùn)行行為,同時(shí)選擇性地對(duì)程序所需要的部分進(jìn)行編譯和優(yōu)化。所有這些技術(shù)都改善了代碼的運(yùn)行速度,但是又不會(huì)讓程序的體積變得失常。程序的輕便性事實(shí)上是軟件編寫(xiě)很難達(dá)到的一個(gè)目標(biāo), Java雖然成功地實(shí)現(xiàn)了“一次編譯,到處運(yùn)行”,但是由于平臺(tái)和平臺(tái)之間的差異,所編寫(xiě)的程序在轉(zhuǎn)換代碼的時(shí)候難免會(huì)出現(xiàn)微小的、不可察覺(jué)的錯(cuò)誤和意外。有些程序員對(duì)此非常頭疼,他們嘲笑 Java 的程序不是“一次編譯, 到處運(yùn)行”,而是“一次編譯,到處調(diào)試”。 平臺(tái)無(wú)關(guān)性讓 Java 在服務(wù)器端軟件領(lǐng)域非常成功。很多服務(wù)器端軟件都使用 Java 或相關(guān)技術(shù)創(chuàng)建。 Java的性能和復(fù)雜性 關(guān)于 Java 的批評(píng) Java 試圖通過(guò)新的方式解決軟件編寫(xiě)的復(fù)雜性。很多人認(rèn)為 Java 語(yǔ)言做到了它承諾的一切。但是 Java 并不是一門完美的語(yǔ)言。整體性問(wèn)題并不是所有的工程和環(huán)境需要企業(yè)級(jí)別的復(fù)雜性,比如一個(gè)簡(jiǎn)單的個(gè)人網(wǎng)站或者獨(dú)自編程的程序師所寫(xiě)的程序。這些程序師會(huì)發(fā)現(xiàn) Java 的復(fù)雜管理對(duì)于自己要做的程序來(lái)說(shuō)過(guò)于強(qiáng)大了。一些人覺(jué)得 Java 在面向?qū)ο笊厦孀龅臎](méi)有 Ruby 和 Smalltalk 純粹。但是最新出現(xiàn)的用 Java 實(shí)現(xiàn)的語(yǔ)言 Groovy 解決了這些問(wèn)題。 作為一種已經(jīng)創(chuàng)建的新技術(shù), Java 顯然綜合了很多語(yǔ)言的特性,比如 C++、C 語(yǔ)言、 Python 等等。一些對(duì)于 Java 的評(píng)論認(rèn)為 Java 的不變性在動(dòng)搖。 語(yǔ)言問(wèn)題有些程序師不喜歡原始類型( primitive type)和類( class)的分離,尤其是那些曾經(jīng)使用過(guò) Smalltalk 和 Ruby 的程序師。 Java 的代碼相對(duì)于其他的代碼來(lái)說(shuō)過(guò)于冗長(zhǎng),這與它的輕便化聲明相違背。 Java 是一種單層繼承的語(yǔ)言。這也導(dǎo)致了 程序師在試圖使用多重繼承時(shí)候的不便,而很多語(yǔ)言都可以使用這個(gè)特性。但是 Java 可以使用接口類,把多重繼承可能導(dǎo)致的風(fēng)險(xiǎn)減少到最小。 Java 不支持運(yùn)算符重載,這是為了防止運(yùn)算符重載使得代碼的功能變得不清晰。但是用 Java 實(shí)現(xiàn)的語(yǔ)言 Groovy 可以進(jìn)行運(yùn)算符重載。過(guò)去 Java 對(duì)于文本的操作和其他語(yǔ)言,比如 Perl 和 PHP 相比差的較多,但 Java在 版本時(shí)候引入了正則表達(dá)式。 類庫(kù)問(wèn)題使用 Swing 平臺(tái)編寫(xiě)的帶有 GUI(圖形用戶接口)的程序和其他原始程序非常不同。選用 AWT 工具包編寫(xiě)程序的程序師看到的都是原始 接口,而且也無(wú)法獲得先進(jìn)的 GUI 編程支持,如果使用的話,就要提供每個(gè)平臺(tái)上面所需的 API,這將是一項(xiàng)龐大的工程。 Swing 則是完全用 Java 語(yǔ)言所寫(xiě)的程序,避免了接口元素重復(fù)的問(wèn)題,只使用所有平臺(tái)都支持的最基本的繪圖機(jī)制。但是很多用戶不知道如何在 Java 風(fēng)格和 Windows 風(fēng)格之間進(jìn)行轉(zhuǎn)換,結(jié)果造成了 Java 程序的接口在很多程序中非常特殊。蘋果電腦已經(jīng)提供了優(yōu)化過(guò)的 Java 運(yùn)行時(shí)程序,包含了 Mac OS X 的經(jīng)典 Aqua 接口風(fēng)格。性能問(wèn)題由于 Java 編譯器和虛擬機(jī)的不同對(duì) Java 代碼的性能影響比語(yǔ)言本身的影 響大的多,所以統(tǒng)一討論 Java 的程序的性能經(jīng)常是有誤導(dǎo)性的。據(jù) IBM 的數(shù)據(jù),在同樣的硬件上 2020 年時(shí)的 IBM JDK 版本的性能是 1996 年的 JDK 版本的十倍左右。見(jiàn) IBM 東 京 研 究 院 的 數(shù) 據(jù) : 而即使是在同一時(shí)期,不同公司的 JDK 和 JRE 的性能也不一樣,比如 SUN、 IBM、 BEA 等公司都有自己開(kāi)發(fā)的 JDK 和 JRE。 Java 語(yǔ)言的一些特性不可避免的有額外的性能代價(jià),例如數(shù)組范圍 檢查、運(yùn)行時(shí)類型檢查等等。 Java 程序的性能還會(huì)因?yàn)椴煌膭?dòng)態(tài)復(fù)雜性和垃圾處理機(jī)制使用的多少而各有不同。如果 JVM 的實(shí)現(xiàn)比較優(yōu)化的話,那么這些功能甚至可以增加存儲(chǔ)器分配的性能。這和總是使用 STL 或者托管 C++的程序的情況類似。 盡管如此,仍然有許多人認(rèn)為 Java 的性能低。這部分歸因于 Sun 公司最初的 JVM 實(shí)現(xiàn)使用未優(yōu)化的解釋機(jī)制來(lái)運(yùn)行字節(jié)碼。一些新版本的 JVM 使用JustInTime( JIT)編譯器,在加載字節(jié)碼的時(shí)候?qū)⑵渚幾g成針對(duì)運(yùn)行環(huán)境的本地代碼來(lái)實(shí)現(xiàn)一些本地編譯器的優(yōu)化特性。 JustInTime 機(jī)制和本地編譯的性能比較仍舊是一個(gè)有爭(zhēng)議的話題。 JIT 編譯需要很多時(shí)間,對(duì)于運(yùn)行時(shí)間不長(zhǎng)或者代碼很多的大型程序并不適宜。但是不算 JIT 編譯階段的話,程序的運(yùn)行性能在很多 JVM 下可以和本地編譯的程序一爭(zhēng)短長(zhǎng),甚至在一些計(jì)算比較密集的數(shù)值計(jì)算領(lǐng)域也是這樣。目前, Java 已經(jīng)使用更先進(jìn)的 HotSpot 技術(shù)來(lái)代替 JIT 技術(shù), Java 的性能有了更進(jìn)一步的提升。另外,在使用 server 選項(xiàng)運(yùn)行 java 程序時(shí),也可以對(duì) java 進(jìn)行更深入的優(yōu)化,比如在運(yùn)行時(shí)將調(diào)用較多的方法內(nèi)聯(lián)( inline)到程序中來(lái)提高運(yùn)行速度,這 就是所謂的“動(dòng)態(tài)優(yōu)化”,而本地編譯器是無(wú)法做到這一點(diǎn)的;這也是一些 java 代碼比對(duì)應(yīng)用 C/C++等語(yǔ)言編寫(xiě)的本地代碼運(yùn)行的更快的原因之一。微軟的 .NET 平臺(tái)也使用 JIT 編譯器,所以也有類似問(wèn)題。 Java 的設(shè)計(jì)目的主要是安全性和可攜性,所以對(duì)于一些特性,比如對(duì)硬件架構(gòu)和存儲(chǔ)器地址訪問(wèn)的直接訪問(wèn)都被去除了。如果需要間接調(diào)用這些底層功能的話,就需要使用 JNI( Java 本地接口)來(lái)調(diào)用本地代碼,而間接訪問(wèn)意味著頻繁調(diào)用這些特性時(shí)性能損失會(huì)很大,微軟的 .NET 平臺(tái)也有這樣的問(wèn)題。所以到目前為止,性能敏感的代碼,例如 驅(qū)動(dòng)程序和 3D 視頻游戲,還是大多使用本地編譯,甚至直接以不直接支持面向?qū)ο蟮?C 語(yǔ)言或機(jī)器碼編寫(xiě)。但最近已經(jīng)有了許多用純 Java 編寫(xiě)的 3D 游戲,其效果與用 C 語(yǔ)言編寫(xiě)的不相上下,例如“合金戰(zhàn)士”(英文名: Chrome)。這主要是因?yàn)樾掳娴?Java 3D技術(shù)已經(jīng)能像 C++一樣調(diào)用硬件加速,也就是使用顯卡來(lái)加速,無(wú)論是 C++還是 Java 語(yǔ)言寫(xiě)的 3D 游戲都是使用顯卡及 GPU 來(lái)處理,從而使得 CPU 可以專注于其他方面的工作。 垃圾回收機(jī)制 自動(dòng)垃圾回收( Garbage Collection) C++語(yǔ)言被用戶詬病的原因之一 是大多數(shù) C++編譯器不支持垃圾收集機(jī)制。通常使用 C++編程的時(shí)候,程序員于程序中初始化對(duì)象時(shí),會(huì)在主機(jī)存儲(chǔ)器堆棧上分配一塊存儲(chǔ)器與地址,當(dāng)不需要此對(duì)象時(shí),進(jìn)行解構(gòu)或者刪除的時(shí)候再釋放分配的存儲(chǔ)器地址。如果對(duì)象是在堆棧上分配的,而程序員又忘記進(jìn)行刪除,那么就會(huì)造成存儲(chǔ)器泄漏( Memory Leak)。長(zhǎng)此以往,程序運(yùn)行的時(shí)候可能會(huì)生成很多不清除的垃圾,浪費(fèi)了不必要的存儲(chǔ)器空間。因此如果同一存儲(chǔ)器地址被刪除兩次的話,程序會(huì)變得不穩(wěn)定,甚至崩潰。因此有經(jīng)驗(yàn)的 C++程序員都會(huì)在刪除之后將指針重置為 0,然后在刪除之前 先判斷指針是否為 0。 C++中也可以使用“智能指針”( Smart Pointer)或者使用 C++托管擴(kuò)展編譯器的方法來(lái)實(shí)現(xiàn)自動(dòng)化存儲(chǔ)器釋放,智能指針可以在標(biāo)準(zhǔn)類庫(kù)中找到,而 C++托管擴(kuò)展被微軟的 Visual C++ 及以上版本所支持。智能指針的優(yōu)點(diǎn)是不需引入緩慢的垃圾收集機(jī)制,而且可以不考慮線程安全的問(wèn)題,但是缺點(diǎn)是如果不善使用智能指針的話,性能有可能不如垃圾收集機(jī)制,而且不斷地分配和釋放存儲(chǔ)器可能造成存儲(chǔ)器碎片,需要手動(dòng)對(duì)堆進(jìn)行壓縮。除此之外,由于智能指針是一個(gè)基于模板的功能,所以沒(méi)有經(jīng)驗(yàn)的程序員在需 要使用多態(tài)特性進(jìn)行自動(dòng)清理時(shí)也可能束手無(wú)策。 Java 語(yǔ)言則不同,上述的情況被自動(dòng)垃圾收集功能自動(dòng)處理。對(duì)象的創(chuàng)建和放置都是在存儲(chǔ)器堆棧上面進(jìn)行的。當(dāng)一個(gè)對(duì)象沒(méi)有任何參考的時(shí)候, Java 的自動(dòng)垃圾收集機(jī)制就發(fā)揮作用,自動(dòng)刪除這個(gè)對(duì)象所占用的空間,釋放存儲(chǔ)器以避免存儲(chǔ)器泄漏。注意程序員不需要修改 finalize 方法,自動(dòng)垃圾收集也會(huì)發(fā)生作用。但是存儲(chǔ)器泄漏并不是就此避免了,當(dāng)程序員疏忽大意地忘記解除一個(gè)對(duì)象不應(yīng)該有的參考的時(shí)候,存儲(chǔ)器泄漏仍然不可避免,例如以下的程序: String str = 這是一段字串 。 (s)。 for(int i){ (Hallo Would+i)。 } 在循環(huán)開(kāi)始之前,字符串 str已經(jīng)不會(huì)再用到了,但未將這個(gè)參考指向 null,因此字符串 str 無(wú)法被 gc 所回收。這種存儲(chǔ)器泄漏必須等到一個(gè)函數(shù)退出之后才會(huì)被系統(tǒng)取回,自不過(guò)發(fā)生的機(jī)率要比不激活垃圾收集機(jī)制的 C++程序少很多。但是總體來(lái)講,自動(dòng)垃圾收集機(jī)制要安全和簡(jiǎn)單許多。 不同廠商、不同版本的 JVM 中的存儲(chǔ)器垃圾回收機(jī)制并不完全一樣,通常越新版本的存儲(chǔ)器回收機(jī)制越快, IBM、 BEA、 SUN 等等開(kāi)發(fā) JVM 的公司都曾宣稱過(guò)自己制造出了世界上最快的 Template:WhatJVM, JVM 性能的世界紀(jì)錄也在不斷的被打破并提高。 IBM 有一篇有關(guān) Java 存儲(chǔ)器回收機(jī)制比不激活垃圾收集機(jī)制的 C++存儲(chǔ)器處理快數(shù)倍的技術(shù)文章,而著名的 Java 技術(shù)書(shū)籍《 Java 編程思想》( Thinking in Java)也有一段論述 Java 存儲(chǔ)器及性能達(dá)到甚至超過(guò) C++的章節(jié)。 Java 的設(shè)計(jì)者們不想讓 Java 有多重繼承的特性,因?yàn)?C++的多重繼承顯示了這種特性的困難 。 Java 的接口功能可以提供同樣的功能,但是又不會(huì)很復(fù)雜。應(yīng)用程序開(kāi)發(fā)接口在 Java 語(yǔ)言中,應(yīng)用程序接口( API)化身成類,并且分組成為包。每個(gè)包中包含有相關(guān)的接口和類。對(duì)于不同的平臺(tái), Java 提供了不同版本的包。 API 的設(shè)定由 sun 公司和其他公司通過(guò) JCP( Java 社區(qū)程序)決定。任何公司和個(gè)人都可以參與這個(gè)工程,對(duì) API 進(jìn)行設(shè)計(jì)。 2020 年,IBM 和 BEA 公司準(zhǔn)備聯(lián)合對(duì)官方的 Java 開(kāi)源軟件工程進(jìn)行支持,但是 2020年初, sun 公司拒絕了這個(gè)支持。 JSP技術(shù) 簡(jiǎn)介 JSP(JavaServer Pages)是由 Sun Microsystems 公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。 JSP 技術(shù)有點(diǎn)類似 ASP 技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè) HTML 文件 (*.htm,*.html)中插入 Java 程序段 (Scriptlet)和 JSP 標(biāo)記 (tag),從而形成 JSP 文件 (*.jsp)。用 JSP 開(kāi)發(fā)的 Web 應(yīng)用是跨平臺(tái)的,即能在 Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 JSP 技術(shù)使用 Java 編程語(yǔ)言編寫(xiě)類 XML 的 tags 和 scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò) tags 和 scriptlets 訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。 JSP 將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于 Web 的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。 Web 服務(wù)器在遇到訪問(wèn) JSP 網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同 JSP 文件中的 HTML 代碼一起返回給客戶。插入的 Java 程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP 與 Java Servlet 一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè) HTML 文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP 的 規(guī)范的最后 版本是 1999 年 9 月推出的, 12 月又推出了 規(guī)范。目前較新的是 規(guī)范, 規(guī)范的征求意見(jiàn)稿也已出臺(tái)。 JSP 頁(yè)面由 HTML 代碼和嵌入其中的 Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些 Java 代碼進(jìn)行處理,然后將生成的 HTML 頁(yè)面返回給客戶端的瀏覽器。 Java Servlet 是 JSP 的技術(shù)基礎(chǔ),而且大型的 Web 應(yīng)用程序的開(kāi)發(fā)需要 Java Servlet 和 JSP 配合才能完成。JSP 具備了 Java 技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο螅哂衅脚_(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 Spring Spring Framework 是一個(gè)開(kāi)源的 Java/Java EE 全功能棧( fullstack)的應(yīng)用程序框架,以 Apache 許可證形式發(fā)布,也有 .NET 平臺(tái)上的移植版本。該框架基于 Expert OneonOne Java EE Design and Development ( ISBN 0764543857)一書(shū)中的代碼,最初由 Rod Johnson 和 Juergen Hoeller 等開(kāi)發(fā)。 Spring Framework 提供了一個(gè)簡(jiǎn)易的開(kāi)發(fā)方式,這種開(kāi)發(fā)方式,將避免那些可能致使底層代碼變
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1