




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java 語言的特點和實現機制Java 使得語言聲明不依賴于實現的方面。 例如, Java 顯式說明每個基本數據類型的大小和它的運算行為 ( 這些數據類型由 Java 語法描述 ) 。 下面是的關于Java 語言的特點和實現機制, 希望大家認真閱讀 !java 語言定義:Java 是一種可以撰寫跨平臺應用程序的面向對象的程序設計語言。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PG數據中心、游戲控制臺、科學超級計算機、移動電 話和互聯網,同時擁有全球最大的開發者專業社群。組成:Java由四方面組成: Java編程語言,即語法。 Java文件格式,即各種文件夾、文件的后
2、綴。 Java虛擬機(JVM),即處理 *class文件的解釋器。 Java應用程序接口(JavaAPI)。Java 分為三個體系,分別為JavaSE(J2SE,Java2PlatformStandardEdition ,標準版 ) , JavaEE(J2EE,Java2Platform,EnterpriseEdition ,企業版 ) , JavaME(J2ME,Java2PlatformMicroEdition ,微型版 ) 。Java 是功能完善的通用程序設計語言,可以用來開發可靠的、要求嚴格的應用程序。優點 :指針:任何一個學過C或者C+制人都知道指針的操作對于他們是很重要的 , 為什
3、么 , 指針能夠支持內存的直接操作, 這樣的直接操作能夠帶來的是效率上的提高 . 但是任何一個東西都是有副作用的 , 指針給程序員帶了的混亂也是無可比擬的 . 對于一個不是很強勁的 C 程序員而言,指針是要命的(對我而言也是,我幾乎不會寫C代碼).而 JAVAM為我們省去了這樣的麻煩,或者說JAVA完整的限制了對內存 的直接操作, 讓程序員能夠安心去搞業務邏輯, 而不用管自己后院的那堆內存有沒有人來收拾.垃圾回收:其實垃圾回收也是 JAVA對于內存操作的限制之一, 也大大解放了程序員的手腳 . 但是也正是這樣的一個內存保姆的存在導致JAVA程序員在內存上幾乎沒有概念 一個純粹的JAVA程序員
4、對于內存泄露這樣的問題是從來沒有概念的 , 因為他從來不用擔心,因為大多數情況下即便他大手大腳也不會有什么問題 , 這樣也就導致 了 JAVA 一個很顯見的缺點,我們后面會講到.這里我說點我想到的東 西吧.其實JAVA并沒有讓程序員完全省心,他代辦的事情也僅僅是 內存罷了 , 其他資源的調用和釋放都還是需要程序員自己來關心的 , 比如數據庫, 比如文件 . 當然了 , 我們不能指望什么都吃現成的 , 總有東西是要自己做的吧 .平臺無關性的真正意義在于程序的可移植性高,能夠在多個平臺平滑遷移。這點就特別適合網絡應用。缺點:1 效率這樣一個問題伴隨著JAVA的出身,一直困擾了我們可憐的JAVA寶寶
5、很久 , 雖然他在自己長大成人以后不斷地修煉自己 , 來改變這個問題 . 但是先天的就是先天的 , 哎 讓我說你什么好呢 1.1 當然首先就是內存操作限制帶來安全的同時帶來的副面效果了 1.2 其次呢 , 就是面對對象的一個很重要的特點所帶來的多態,這個東西是娘胎里帶出來的,誰也沒辦法,而且這個因素的“后果很嚴重”(我等下會講我們的JAVA小朋友自己跟別人學了一招來解 決這個問題)。但是不對啊,C+壞也聲稱自己面對對象的嘛,這個問 題他也有,你干嗎非說我呢?JAVA勺聲辯。哈哈,這你就不如人C+圓滑了吧, 人家的多態是編譯器編譯和連接時實現的, 可你是運行時 實現的,效率問題可見一斑了吧。JA
6、VA 小朋友想了很久,想了一招。我已經不記得他什么時候開始會這招了,但是他真的會,征對一些不會變化的程序,他就讓大家可以用預編譯來實現。其實這個事情也是C+H正做的。但是這樣的一個解決方案就屏蔽了動態創建和連接的能力。 這里還需要說明的是, 這樣的方法一般都運用在變化少而且對性能要求特別高的時候。畢竟如果不是面對大批量的處理和集中請求這樣的問題, 我們的硬件應該能滿足這樣的要求。1 。 3平臺無關性帶來的。由于需要平臺無關,所以JAVA是不能直接調用OS的API的,JAVA需要調用自己的API來隱式地調用OS 的API,大家可想而知這樣的效果。多一層調用,必然多一層代碼需要加載到棧內了。不過這
7、個問題目前也有解決方案了吧。這個方這個方面我不是很在行,只是看到一些資料而已,接觸太少。比如JNI(JavaNativeInterface)2 逆向編譯問題確實是第一次聽說這樣的問題,天啊,沒接觸的東西還真的。這里就只能套書上的話了。由于JAVA程序是動態連接的,從一個類到另外一個類的引用是符號化的。 在靜態連接的可執行程序中, 類之間的只是直接的指針或者偏移量,。相反地,在JAVAclass 文件中,指向另一個類的引用通過字符串清楚地標明了所指向的類的名字。 如果引用指向一個字段的話, 這個字段的名字和描述符會被詳細說明。 如果引用指向一個成員變量,這個成員變量的名字和描述符( 方法的返回類
8、型,方法參數的數量和類型 ) 也會被詳細說明。這有什么關系哦。不過據說這樣就能通過逆向編譯一下子就把我原來的代碼給搞到了。 。 。 那我寫了那么久不是太虧了嘛。 。 。這樣看來。產權問題咯 ( 呼呼,上升到法律了。西西,我喜歡)3 線程調度問題關于線程調度,說老實話,我在學操作系統的時候,所有的線程問題都是在linux下用C去做的,原因第一是linux的線程API比 較清晰,而且我受不了 Windows的那些API的名構造。第2就是因為 我覺得 Java 雖然是一個總進程下的多線程,但是線程間的調度沒有非常的清晰, 相比較而言, 還不如直接調用操作系統的線程支持呢 ( 雖然 linux 對線程
9、級別支持也不是特別好,但是畢竟不是有包支持的嘛),記得當初的哲學家饑餓問題我最后算是用JAVA調配出結果了,可是到最后我自己都暈了。 這些都是我個人的看法, 也很可能是一些偏見, 至于別人書上專業的解釋是: 由于為了能夠支持多種系統的不同的線程支持策略,JAVA只能采取這樣籠統而又松散的線程規范。其實優點和缺點是相對的 , 做過比較就知道, 其實優點和缺點有時候正是同一個因素帶來的 . 這也需要我們用唯物主義辨證原理來看待(我只是說唯物主義, 沒有國籍的那種 ). 更多的時候我們需要在我們所需要的東西和我們為此需要付出的代價間作出正確的tradeoff.( 操作系統老師最喜歡說的詞 ).優劣勢
10、:java 優勢,是適合團隊開發,軟件工程可以相對做到規范,這是一個很難比擬的優勢。java 劣勢,是 j2ee 的架構很完美,第一版軟件可以做滿意,但是很不適合互聯網模式的持續不斷修改。 互聯網軟件工程管理上的不足,持續的修修補補導致架構的破壞。系統更新需要重啟web服務, 很難接受。特點:語言特點Java編程語言的風格十分接近 C C+畸言。Java是一個純粹的面向對象的程序設計語言,它繼承了 C+皓言面向對象技術的核心。Java舍棄了 C+畸言中容易引起錯誤的指針(以引用取代)、運算符重 載(operatoroverloading)、多重繼承(以接口取代)等特性,增加了 垃圾回收器功能用
11、于回收不再被引用的對象所占據的內存空間, 使得 程序員不用再為內存管理而擔憂。在Java1.5版本中,Java又引入了泛型編程(GenericProgramming) 、 類型安全的枚舉、 不定長參數和自動裝 / 拆箱等語言特性。Java 不同于一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編譯成二進制字節碼 (bytecode) , 然后依賴各種不同平臺上的虛擬機來解釋執行字節碼。從而實現了“一次編譯、到處執行”的跨平臺特性。不過,每次的執行編譯后的字節碼需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。主要特征Java語言是簡單的。Java語言的語法與
12、C語言和C+®言很接近,使得大多數程序員很容易學習和使用Java 。另一方面,Java 丟棄了 C+用很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地, Java 語言不使用指針, 并提供了自動的廢料收集, 使得程序員不必為內存管理而擔憂。Java 語言是面向對象的。 Java 語言提供類、 接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現機制(關鍵字為implements)。Java語言 全面支持動態綁定,而C+錯言只對虛函數使用動態綁定。總之,Java 語言是一個純的面向對象程序設計語言。Java 語言是分布式的。 Java 語言支持 Inter 應用的開發, 在基本的 Java 應用編程接口中有一個網絡應用編程接口 (java) ,它提供了用于網絡應用編程的類庫,包括URL、 URLConnection、 Socket 、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。Java 語言是健壯的。 Java 的強類型機制、異常處理、廢料的自動收集等是 Java 程序健壯性的重要保證。 對指針的丟棄是Java 的明智選擇。 Java 的安全檢查機制使得 Ja
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海洋文化創意產品開發
- 老年護理初級課件
- 綠色環保新能源公交車駕駛員聘用合同
- 出國勞務人員意外傷害賠償擔保合同樣本
- 部分應收賬款處置及回款合同
- 老人清潔護理課件
- 美術課件介紹視頻
- 美術消防員課件圖片
- 美術教師技能大賽課件
- 美術圖案分析課件
- 期末作文預測外研版七年級英語下冊
- 2025-2030中國功率半導體器件市場格局與投資方向報告
- 統編版五年級升六年級語文暑期銜接《課外閱讀》專項測試卷及答案
- 2025年 煙草陜西公司招聘考試筆試試題附答案
- 2025年老年教育課程設置:藝術修養與審美教學探索報告
- 譯林版一年級下冊全冊英語知識點梳理
- 2025年河北高考真題化學試題+解析(參考版)
- 護理事業十五五發展規劃(2026-2030)
- 2025至2030中國數字出版行業產業運行態勢及投資規劃深度研究報告
- 2025至2030中國中藥材種植行業運作模式與競爭格局分析報告
- 人教版(2024)七年級下冊英語全冊教案(8個單元整體教學設計)
評論
0/150
提交評論