標籤:介面 支援 1.2 允許 jvm 整數 執行 效率 位元組碼
1.1 Java的特點
1.1.1物件導向:
· 與C++相比,JAVA是純的物件導向的語言
C++為了向下相容C,保留了很多C裡面的特性,而C,眾所周知是面向過程的語言,這就使C++成為一個"混血兒"。而JAVA文法中取消了C++裡為相容C所保留的特性,如取消了標頭檔、指標演算法、結構、單元等。
1.1.2可移植(平台無關性):
· 產生中間位元組碼指令 與其他程式設計語言不同,Java並不產生可執行檔(.exe檔案),而是產生一種中間位元組碼檔案(.class檔案)。任何作業系統,只要裝有Java虛擬機器(JVM),就可以解釋並執行這個中間位元組碼檔案。這正是Java實現可移植的機制。
· 未經處理資料類型儲存方法固定,避開移植時的問題
Java的未經處理資料類型的大小是固定的。比如,在任何機器上,整型都是32位,而C++裡整型是依賴於目標機器的,對16位處理器(比如8086),整數用兩個位元組表示;在像Sun SPARC這樣的32位處理器中,整數用4個位元組表示。在Intel Pentium處理器上,整數類型由具體的作業系統決定:對於DOS和Win32來說,整數是2個位元組;對於Windows 9x 、NT和2000,整數是4個位元組。當然,使整數類型平台無關之後,效能必然有所下降,但就Java來說,這個代價是值得的。Java的字串,則採用標準的Unicode格式儲存。可以說,沒有這個特性,Java的可移植性也不可能實現。 1.1.3簡單 · JAVA在文法上與C++類似
JAVA的文法與C++很接近,有過C或者C++編程經驗的程式員很容易就可以學會JAVA文法;
· 取消了C++的一些複雜而低效的特性比如:用介面技術代替了C++的多重繼承。C++中,一個類允許有多個超類,這個特性叫做"多重繼承",多重繼承使得編譯器非常複雜且效率不高;JAVA的類只允許有一個超類,而用介面(Interface)技術實現與C++的多繼承相類似的功能
其它被取消的特性包括:虛擬基礎類、運算子過載等
· JAVA的基本解譯器和類支援模組大概僅40K
即使加入基本的標準庫和支援線程的模組,也才220K左右。與GUI(圖形化使用者介面)相比,明顯小很多
java學習筆記1