閱讀1000 返回首頁    go 技術社區[雲棲]


簡單給初學者說說JAVA語言的幾個特點

0



Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供breakcontinue語句以及異常處理。Java還剔除了C++的操作符過載overload和多繼承特征,並且不使用主文件,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。


Java是一個麵向對象的語言。對程序員來說,這意味著要注意應中的數據和操縱數據的方法(method),而不是嚴格地用過程來思考。在一個麵向對象的係統中,類class是數據和操作數據的方法的集合。數據和方法一起描述對象(object)的狀態和行為。每一對象是其狀態和行為的封裝。類是按一定體係和層次安排的,使得子類可以從超類繼承行為。在這個類層次體係中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。

Java還包括一個類的擴展集合,分別組成各種程序包Package,用戶可以在自己的程序中使用。例如,Java提供產生圖形用戶接口部件的類java.awt包),這裏awt是抽象窗口工具集(abstract windowing toolkit)的縮寫,處理輸入輸出的類java.io包)和支持網絡功能的類java.net包)


Java設計成支持在網絡上應用,它是分布式語言。Java既支持各種層次的網絡連接,又以Socket類支持可靠的流stream網絡連接,所以用戶可以產生分布式的客戶機和服務器。


Java編譯程序生成字節碼(byte-code),而不是通常的機器碼。Java字節碼提供對體係結構中性的目標文件格式,代碼設計成可有效地傳送程序到多個平台。Java程序可以在任何實現了Java解釋程序和運行係統(run-time system)的係統上運行。

在一個解釋性的環境中,程序開發的標準“鏈接”階段大大消失了。如果說Java還有一個鏈接階段,它隻是把新類裝進環境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導致快速程序開發。這是一個與傳統的、耗時的“編譯、鏈接和測試”形成鮮明對比的精巧的開發過程。



Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風格的隱式聲明。這些嚴格的要求保證編譯程序能捕捉調用錯誤,這就導致更可靠的程序。

可靠性方麵最重要的增強之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和訛誤數據的可能性。類似地,Java自動的“無用單元收集”預防存儲漏泄和其它有關動態存儲分配和解除分配的有害錯誤。Java解釋程序也執行許多運行時的檢查,諸如驗證所有數組和串訪問是否在界限之內。


Java的存儲分配模型是它防禦惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內幕和偽造指針去指向存儲器。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜測類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程序決定實際存儲地址。


Java使得語言聲明不依賴於實現的方麵。例如,Java顯式說明每個基本數據類型的大小和它的運算行為(這些數據類型由Java語法描述)


Java是一種先編譯後解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設計者製作了“及時”編譯程序,它能在運行時把Java字節碼翻譯成特定CPU(中央處理器)的機器代碼,也就是實現全編譯了。


Java是多線索語言,它提供支持多線索的執行(也稱為輕便過程),能處理不同任務,使具有線索的程序設計很容易。Java的lang包提供一個Thread類,它支持開始線索、運行線索、停止線索和檢查線索狀態的方法。

Java的線索支持也包括一組同步原語。這些原語是基於監督程序和條件變量風範,由C.A.R.Haore開發的廣泛使用的同步化方案。用關鍵詞synchronized,程序員可以說明某些方法在一個類中不能並發地運行。這些方法在監督程序控製之下,確保變量維持在一個一致的狀態。


最後更新:2017-07-13 11:02:22

  上一篇:go  阿裏京東紛紛入局 無人便利店正成為新風口
  下一篇:go  APMCon 2017中國應用性能管理大會將於8月10日北京召開!