Java是壹種強類型語言,它允許在編譯時擴展檢查潛在類型不匹配的功能。Java要求顯式方法聲明,不支持C風格的隱式聲明。
Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序。
Java的特性:
Java具有簡單性、面向對象、分布式、健壯性、安全性、平臺獨立性和可移植性、多線程、動態性等特點。下面詳細介紹壹下:
1,簡單
Java看起來很像C++,但是為了讓語言變得小巧,便於熟悉,設計師們去掉了C++語言中很多可用的特性,這些特性是普通程序員很少用到的。例如,Java不支持go to語句,而是提供break和continue語句以及異常處理。Java還消除了C++的運算符重載和多重繼承特性,不使用主文件,從而消除了預處理器。因為Java沒有結構,數組和字符串都是對象,所以不需要指針。Java可以自動處理對象引用和間接引用,實現無用單元的自動收集,讓用戶不用擔心存儲管理,可以把更多的時間和精力放在研發上。
2.面向對象
Java語言提供了面向對象的特性,如類、接口和繼承。為了簡單起見,只支持類之間的單壹繼承,支持接口之間的多重繼承,支持類和接口之間的實現機制(關鍵字是implements)。Java語言完全支持動態綁定,而C++語言只對虛函數使用動態綁定。總之,Java語言是壹種純面向對象的編程語言。
3.分配
Java是為支持網絡應用而設計的,它是壹種分布式語言。Java不僅支持各種層次的網絡連接,而且用Socket類支持可靠的流網絡連接,因此用戶可以產生分布式的客戶機和服務器。
網絡成為軟件應用程序的分布式載體。Java程序只要寫壹次就可以在任何地方運行。
4.編譯和解釋
Java編譯器生成字節碼,而不是通常的機器碼。Java字節碼提供了壹種與體系結構無關的目標文件格式,該代碼被設計用來有效地將程序轉移到多個平臺。Java程序可以在任何實現Java解釋器和運行時系統的系統上運行。
在解釋性環境中,程序開發的標準“鏈接”階段已經大大消失了。如果說Java還有壹個鏈接階段,那只是壹個將新類放入環境的過程,是壹個增量的輕量級的過程。因此,Java支持快速原型和簡單測試,這將導致快速的程序開發。這是壹個微妙的開發過程,與傳統耗時的“編譯、鏈接和測試”形成鮮明對比。
5.穩健性
Java最初被用作編寫消費電子產品軟件的語言,所以它被設計用來編寫高度可靠和健壯的軟件。Java消除了壹些編程錯誤,使得用它編寫可靠的軟件變得非常容易。
Java的強類型機制、異常處理和自動垃圾回收是Java程序健壯性的重要保證。丟棄指針對Java來說是明智的選擇。Java的安全檢查機制使得Java更加健壯。
6.安全
Java的存儲分配模型是其防禦惡意代碼的主要方法之壹。Java沒有指針,所以程序員無法得到隱藏的內部信息和假指針指向內存。更重要的是,Java編譯器不處理存儲安排決策,因此程序員無法通過查看聲明來猜測類的實際存儲安排。編譯後的Java代碼中存儲引用的實際存儲地址是由Java解釋器在運行時確定的。
Java操作系統使用字節碼驗證過程來確保網絡上加載的代碼不違反任何Java語言限制。這種安全機制包括如何從互聯網加載類。例如,加載的類被放在單獨的名稱空間中,而不是本地類中,以防止惡意小程序用它們自己的版本替換標準Java類。
7、便攜性
Java使語言聲明獨立於實現方面。例如,Java明確說明了每個基本數據類型的大小及其操作行為(這些數據類型由Java語法描述)。
Java環境本身可以移植到新的硬件平臺和操作系統。Java編譯器也是用Java寫的,Java運行系統是用ANSIC語言寫的。
8、高性能
Java是壹種先編譯後解釋的語言,所以沒有完全編譯的語言快。但是,在某些情況下,性能非常重要。為了支持這些情況,Java設計者們做了壹個“即時”編譯器,可以在運行時將Java字節碼翻譯成特定CPU(中央處理器)的機器碼,即實現全編譯。
Java字節碼格式設計考慮到了這些“適時”編譯器的需求,所以生成機器碼的過程相當簡單,而且可以產生相當好的代碼。
9、多線程
在Java語言中,線程是壹個特殊的對象,它必須由Thread類或其子類創建。創建線程通常有兩種方式:
1),通過使用構造為Thread(Runnable)的子類將實現Runnable接口的對象包裝到線程中,
2)從Thread類派生壹個子類,重寫run方法。這個子類創建的對象是壹個線程。值得註意的是,Thread類實現了Runnable接口,所以任何線程都有它的run方法,run方法包含了線程想要運行的代碼。線程的活動由壹組方法控制。Java語言支持多線程的同時執行,並提供了多線程之間的同步機制(關鍵字是synchronized)。
10,動態
Java語言的設計目標之壹是適應動態環境。Java程序需要的類可以動態加載到運行環境中,也可以通過網絡加載。這也有利於軟件升級。此外,Java中的類有壹個運行時表示,可以檢查運行時的類型。
11,平臺獨立性
Java程序(帶有Java後綴的文件)在Java平臺上被編譯成與架構無關的字節碼格式(帶有class後綴的文件),然後可以在任何實現這個Java平臺的系統上運行。這種方法適用於異構網絡環境和軟件分發。