在學習Java編程語言之前,讓我們一起來看一看它有哪些特性吧?
● 簡單性:Java語言底層采用C++語言實現,相對于C++來說,Java是簡單的,在Java語言中程序員不需要再操作復雜的指針(指針的操作是很復雜的),繼承方面也是只支持單繼承(C++語言是一種半面向對象的編程語言,支持多繼承,多繼承會導致關系很復雜),在很多方面進行了簡化。
● 面向對象:Java中提供了封裝、繼承、多態等面向對象的機制。
● 健壯性:在C++程序當中的無用數據/垃圾數據需要編程人員手動釋放,當忘記釋放內存的時候,會導致內存使用率降低,影響程序的執行;在Java語言當中這種問題得到了解決,因為Java語言引入了自動垃圾回收機制(GC機制),Java程序啟動了一個單獨的垃圾回收線程,時刻監測內存使用情況,在特定時機會回收/釋放垃圾數據,這樣會讓內存時刻處于最好的狀態。
● 多線程:Java語言支持多個線程同時并發執行,同時也提供了多線程環境下的安全機制。
● 可移植性/跨平臺:可移植性/跨平臺表示Java語言只需要編寫/編譯一次,即可處處運行。Java代碼既可以運行在windows的環境下,又可以運行在Linux的環境下,而不需要修改Java源程序,那么它是怎么做到的呢?功勞全在于“Java虛擬機(Java Virtual Machine,簡稱JVM)”這種機制,實際上Java程序運行的時候并不是直接運行在操作系統上面的,而是在操作系統上先安裝了一個JVM,把Java程序放到了JVM當中運行,JVM屏蔽了各操作系統之間的差異,這樣就完成了跨平臺。但是,JVM的出現雖然搞定了跨平臺,同時也帶來了一些問題,比如要想運行Java程序就必須先安裝JVM,沒有JVM,Java程序是運行不了的,就像你要在網頁上看視頻,結果瀏覽器卻提示你需要安裝Flash插件,這一點你是不是感覺非常不爽呀!那么Java程序、Java虛擬機、操作系統之間是怎樣的關系呢?請看下圖:
圖1-7:Java程序、JVM、OS之間的關系