- 深入淺出Java虛擬機:JVM原理與實戰
- 李博
- 1472字
- 2025-03-28 16:45:16
1.2 Java散發的獨特魅力
了解完了Java語言的發展史之后,讀者可能會覺得Java語言走向成功的道路真是崎嶇曲折。本章重點介紹Java語言的基本特點。
1. Java編程語言最引人注目的特性便是跨平臺性,它是指服務系統不會伴隨軟硬件架構體系的變化而發生不可用的狀態,也就是說在不同的環境下都可以正常運行。
JVM的設計思想和原則很天然地就實現了跨平臺性,而Java源代碼通過Java編譯器處理后得到了Class字節碼,Class字節碼又是實現跨平臺性的基石,同時也是能夠被各種環境下的JVM所識別的媒介標準。JVM的執行引擎能夠達到操作系統級別的屏障能力,從而最終實現跨平臺性。
2. 面向對象。面向對象是軟件科學里一個偉大的成果,該特性大大地提升了軟件領域里解決問題的能力,是軟件發展過程中的一個重大里程碑。面向對象的設計思想是指以對象元組作為基本單元,其結構主要通過屬性集合及方法集合組成,其方法代表對象自身所擁有的行為及服務能力等,而屬性則代表著對象內部所具有的數據狀態和數據信息等,面向對象的設計思想大大地降低了人類解決問題的困難和復雜度,如Java便是經典的面向對象的編程語言。如果采用面向對象的設計思想,我們就可以很簡單地進行方法的復用和擴展。
3. 分布式。Java語言之所以可以實現分布式技術,是因為它使用網絡層面的API技術接口,可以實現互聯網層面的技術開發。Java SE中有專項與網絡方面相關的API接口且有很多網絡編程類庫,主要以Socket編程為主,其中包含3種IO模型(BIO、NIO和AIO)。
在實現網絡技術編程中衍生出了眾多技術方案,如Java原生體系的RMI(遠程方法調用技術)、SOAP技術和WebService技術,以及目前特別火熱的RPC技術體系,它們都是分布式開發體系中的Java技術棧。
4. 安全性。Java在安全性層面中有很多技術沉淀,如在加解密體系和安全管理器等層面上實現了較為強大的功能,這些特點促使Java可以完成很多安全領域中的業務。對此筆者進行了總結,主要有以下6點特性。
(1)Java屏蔽了開發者直接使用指針,如申請和釋放內存等,這樣可以減少很多由于開發者的失誤和漏洞造成的系統內存的錯誤操作。
(2)Java的安全性在于Java的基本結構單元是對象,所以對象內部的屬性的數據類型及對象的數據類型都具有安全性。
(3)在編譯層面,當編譯器在對Java源碼進行編譯時,會根據Java指令的語義和詞法做出安全層面的分析和檢測。
(4)在裝載或調用(不屬于方法分派)層面,在執行Class字節碼時,Classloader類加載器會進行加載,加載后,經過校驗階段方可運行。
(5)在資源訪問的層面,Java語言具有安全管理器和訪問控制器的功能組件,它們保證了被訪問資源的權限和安全。
(6)內存地址的安全性層面,如果在編譯后的Class字節碼中進行引用,那么只有在執行時通過Java解釋器才能確定其真實存儲地址,對此開發者也無法得知真實的運行地址,降低了內存數據被篡改及被攻擊的風險。
5. 支持多線程,Java語言的多線程技術體系較為全面和成熟,其擁有內置的線程池及異步線程層面上的技術API,此外很多第三方廠商也貢獻了很多工業級的框架和工具組件,從而支持更加強大的功能。
此外,其本身還具有JMM體系,可以屏蔽系統差異性問題。對于多線程情況下出現的線程安全問題,它也擁有同步機制及Happen-Before原則進行控制。
6. 動態性,主要是基于多態角度,Java語言可以將真正對象的實現延遲到運行階段,從而可以實現程序的動態化和多樣化運行,主要表現在以下兩個方面。
(1)加載時的織入性(LTW,Load Time Weaving):Java應用程序可通過類加載器動態地加載到JVM中,當然也可以從其他渠道加載,如數據庫、網絡、文件服務器等;還可以將新代碼動態地加入一個正在運行的程序中,并且立即刷新生效。
(2)運行時的可見性:在程序運行過程中,可以簡單、直觀地查詢運行時的信息。
- scikit-learn Cookbook
- 程序員修煉之道:程序設計入門30講
- UML和模式應用(原書第3版)
- JavaScript 從入門到項目實踐(超值版)
- Java EE框架整合開發入門到實戰:Spring+Spring MVC+MyBatis(微課版)
- C語言程序設計立體化案例教程
- 精通API架構:設計、運維與演進
- PostgreSQL 11從入門到精通(視頻教學版)
- PhoneGap Mobile Application Development Cookbook
- Windows Forensics Cookbook
- Python數據結構與算法(視頻教學版)
- Practical GIS
- Oracle Data Guard 11gR2 Administration Beginner's Guide
- Python Deep Learning
- 計算機組裝與維護(第二版)