1.2.2 Java語言特點
Java語言能夠流行起來并長久不衰,得益于Java語言有很多優秀的關鍵特點。這些特點包括簡單、面向對象、分布式、結構中立、可移植、解釋執行、健壯、安全、高性能、多線程和動態。下面給出詳細解釋。
1.簡單
Java的設計目標之一就是能夠方便學習,使用簡單。因為當初C++程序員很多,介紹C++語言的書籍也很多,所以Java語言的風格設計成為類似于C++的語言風格,但Java摒棄了C++中容易引發程序錯誤的地方,如指針、內存管理、運算符重載和多繼承等。一方面,C++程序員可以很快遷移到Java;另一方面,沒有編程經驗的初學者也能很快學會Java。
2.面向對象
面向對象是Java最重要的特性。Java是徹底的、純粹的面向對象語言,在Java中“一切都是對象”。Java完全具有面向對象的三個基本特性:封裝、繼承和多態,其中封裝性實現了模塊化和信息隱藏,繼承性實現了代碼的復用,用戶可以建立自己的類庫。而且Java采用的是相對簡單的面向對象技術,去掉了多繼承等復雜的概念,只支持單繼承。
3.分布式
Java語言就是為分布式系統而設計的。JDK(Java Development Kits,Java開發工具包)中包含了支持HTTP和FTP等基于TCP/IP的類庫。Java程序可以憑借URL打開并訪問網絡上的對象,其訪問方式與訪問本地文件系統幾乎完全相同。
4.結構中立
Java程序需要在很多不同網絡設備中運行,這些設備有很多不同類型的計算機和操作系統。為使Java程序能夠在網絡的任何地方運行,Java編譯器編譯生成了與機器結構(CPU和操作系統)無關的字節碼(byte-code)文件。任何種類的計算機,只要可以運行Java虛擬機,字節碼文件就可以在該計算機上運行。
5.可移植
體系結構的中立也使得Java程序具有可移植性。針對不同的CPU和操作系統,Java虛擬機有不同的版本,這樣就可以保證相同的Java字節碼文件可以移植到多個不同的平臺上運行。
6.解釋執行
為實現跨平臺,Java設計成為解釋執行的,即Java源代碼文件首先被編譯成為字節碼文件,這些字節碼本身包含了許多編譯時生成的信息,在運行時Java解釋器負責將字節碼文件解釋成為特定的機器碼運行。
7.健壯
Java語言是強類型語言,它在編譯時進行代碼檢查,使得很多錯誤能夠在編譯期被發現,不至于在運行期發生而導致系統崩潰。
Java摒棄了C++中的指針操作,指針是一種強大的技術,能夠直接訪問內存單元,但同時也很復雜,如果指針操控不好,會導致內存分配錯誤、內存泄漏等問題。而Java中則不會出現由指針所導致的問題。
在內存管理方面,C/C++等語言采用手動分配和釋放內存,經常會導致內存泄漏,從而導致系統崩潰。而Java采用自動內存垃圾回收機制,程序員不再需要管理內存,從而減少了內存錯誤的發生,提高了程序的健壯性。
8.安全
在Java程序執行過程中,類裝載器負責將字節碼文件加載到Java虛擬機中,這個過程中由字節碼校驗器檢查代碼中是否存在著非法操作。如果字節碼校驗器檢驗通過,由Java解釋器負責把該字節碼解釋成為機器碼進行執行,這種檢查可以防止木馬病毒。
另外,Java虛擬機采用的是“沙箱”運行模式,即把Java程序的代碼和數據都限制在一定內存空間里執行,不允許程序訪問該內存空間外的內存。
9.高性能
Java編譯器會在編譯時對字節碼進行一些優化,使之生成高質量的代碼。Java字節碼格式就是針對機器碼轉換而設計的,實際轉換時相當簡便。Java在解釋運行時采用一種即時編譯技術,可使Java程序的執行速度顯著提升。經過多年的發展,Java虛擬機也有很多改進,這也使得Java程序的執行速度有很大提升。
10.多線程
Java是為網絡編程而設計的,這要求Java能夠并發處理多個任務。Java支持多線程編程,多線程機制可以實現并發處理多個任務,互不干涉,不會由于某一任務處于等待狀態而影響了其他任務的執行,這樣就可以容易地實現網絡上的實時交互操作。
11.動態
Java應用程序在運行過程中可以動態地加載各種類庫,即使更新類庫也不必重新編譯使用這一類庫的應用程序。這一特點使之非常適合在網絡環境下運行,同時也非常有利于軟件的開發。
- ASP.NET Core:Cloud-ready,Enterprise Web Application Development
- Practical Data Analysis Cookbook
- 深度實踐OpenStack:基于Python的OpenStack組件開發
- The Modern C++ Challenge
- 垃圾回收的算法與實現
- Learning ArcGIS Pro 2
- 基于Java技術的Web應用開發
- Spring Boot+Spring Cloud+Vue+Element項目實戰:手把手教你開發權限管理系統
- OpenStack Cloud Computing Cookbook(Fourth Edition)
- MATLAB實用教程
- 用Python實現深度學習框架
- PhoneGap:Beginner's Guide(Third Edition)
- Create React App 2 Quick Start Guide
- Learning Apache Karaf
- Quantum Computing and Blockchain in Business