- Java程序設計基礎教程
- 陳振興等主編
- 1670字
- 2024-03-22 12:33:30
1.2 Java語言的特點
Java語言具有簡單性、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點。Java語言可以用來編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
1.簡單性
Java語言從某種意義上可看作C++語言的簡單版。James Gosling領導的項目組一開始準備采用C++作為編程語言,但在項目推進過程中發現C++語言太過復雜且安全性較差,于是他們拋棄了C++語言中容易引起程序崩潰的指針、指針運算、內存管理,以及難以理解且十分煩瑣的運算符重載、類的多重繼承、結構、虛基類等。但Java語言還保留了C++語言的優勢,許多程序員發現他們可以輕而易舉地從C、C++語言開發轉換到Java語言開發。Java語言的自動垃圾回收機制也極大地簡化了程序設計者對內存管理的工作。Java語言中提供的豐富類庫可以使開發者方便快捷地開發程序。
Java語言的簡單性還體現在Java語言支持開發能夠在小型機器上獨立運行的軟件系統。目前,Java ME又稱為J2ME(Java Platform,Micro Edition),是為機頂盒、移動電話和PDA等嵌入式消費電子設備提供的Java語言平臺。
2.面向對象
面向對象是一種符合人類思維習慣的編程思想。現實生活中存在各種不同形態的事物,這些事物之間存在著各種各樣的聯系。在程序中可以使用對象來映射現實中的事物,也可以使用對象的關系來描述事物之間的聯系。面向對象的編程語言具有以下優點。
(1)結構清晰,程序是模塊化和結構化的,更加符合人類的思維方式。
(2)易擴展,代碼重用率高,可繼承、可覆蓋,可以設計出低耦合的系統。
(3)易維護,系統低耦合的特點有利于減少程序的后期維護工作量。
(4)Java語言的設計完全是面向對象的,將重點放在數據及其操作方法的接口上,具有面向對象的諸多優勢。面向對象的技術使得應用程序的開發變得簡單易用、節省代碼。
3.分布式
Java有一套強大的通信功能子庫,支持HTTP、FTP等TCP/IP協議,使Java具有強大的、易于使用的聯網能力。Java應用程序可以像訪問本地資源一樣方便地訪問網絡資源,非常適合用于開發分布式計算程序。
Java的分布式包括以下內容。
(1)操作分布,即在多個不同的主機上執行相關操作。
(2)數據分布,即將數據分別布置在不同主機上,這些主機是網絡中的不同成員,程序可以方便地訪問不同主機上的數據。
4.健壯性
Java語言在進行編譯時能檢測出許多錯誤,避免后期問題的累加。另外,Java語言還采用指針模型來消除內存中數據被重寫和損毀的可能性。
如果出現某種出乎意料的情況,Java程序也不會崩潰,而是把該異常拋出,再通過異常處理機制加以處理。
5.安全性
Java常用于網絡/分布式環境中,為此,Java提供了一個安全機制以抵御惡意代碼的攻擊。Java摒棄了C、C++語言中的指針,并且一切對內存的訪問都必須通過對象的實例來實現,避免了非法內存操作。Java程序代碼要經過代碼程序校驗、指針校驗等很多測試步驟才能夠運行,因此未經允許的程序不能出現損害系統平臺的行為。
6.平臺獨立與可移植性
Java利用虛擬機解決了因操作系統變化、處理器升級,以及核心系統資源變化帶來的問題。大多數編譯器產生的目標代碼往往只能運行在某種CPU或者某種操作系統上。Java編譯器產生的目標代碼是運行在一種并不存在的CPU——Java虛擬機(Java Virtual Machine,JVM)上的,在不同的CPU和操作系統環境下,只要安裝了Java虛擬機,就可以運行Java程序。
Java編譯器生成的字節碼可在所有安裝了Java虛擬機的系統上運行,與平臺無關,由此提高了Java語言的可移植性。同時,Java類庫中也實現了與平臺無關的接口,使得Java程序即使使用了相關類庫也可以方便地進行移植。
7.多線程
單線程可以看作只有一條通道(主路徑)可以到達目的地,而多線程則有多條通道可以到達目的地,即有多條執行路徑。Java應用程序可以在同一時間并行執行多項任務。而且相應的同步機制可以保證不同線程能夠正確地共享數據。多線程帶來的更大的好處是更好的交互性能和更強的實時控制能力。
8.動態性
Java語言具有動態性。Java語言的動態性是其面向對象設計方法的擴展,它能適應不斷變化的環境,允許程序動態地裝入運行過程中所需的類。Java不會因為程序庫的某些部分更新而重新編譯程序。
總之,Java是一門健壯而安全的開發語言,可以用于快速開發多線程、分布式程序,并且不用考慮具體的程序運行環境。
- iOS面試一戰到底
- Qt 5 and OpenCV 4 Computer Vision Projects
- 密碼學原理與Java實現
- Cocos2d-x游戲開發:手把手教你Lua語言的編程方法
- JMeter 性能測試實戰(第2版)
- AngularJS深度剖析與最佳實踐
- Practical Windows Forensics
- Spring Cloud、Nginx高并發核心編程
- PHP+MySQL+Dreamweaver動態網站開發實例教程
- Unity 5.x By Example
- 低代碼平臺開發實踐:基于React
- Mastering Data Mining with Python:Find patterns hidden in your data
- Multithreading in C# 5.0 Cookbook
- HTML+CSS+JavaScript編程入門指南(全2冊)
- 鴻蒙OS應用編程實戰