Object-c和java的簡單對比

jopen 9年前發布 | 53K 次閱讀 Objective-C開發 Object-C

object-c的一些點

object-c通常寫作objective-c或者obj-c,是根據C語言所衍生出來的語言,繼承了C語言的特性,是擴充C的面向對象編程語言。

java的一些點

Java是一種簡單的,跨平臺的,面向對象的,分布式的,解釋的,健壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。
Java分為三個體系Java SE(J2SE,Java2 Platform Standard Edition,標準版),JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企業版),Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。
Java通過JDBC為多種關系數據庫提供統一訪問,JDBC是一種用于執行SQL語句的Java API,它由一組用Java語言編寫的類和接口組成。

一些相同點

在與c++對比上,他們有相同的地方,沒有c++的指針、運算符重載、類的多繼承。
java 和object-c 都區分大小寫,并且都是采用駝峰命名法。
java和object-c都有異常處理

一些對比點

java沒有指針,object-c中所有對象都是指針的形式。
java含有構造方法和析構方法finalize ,對比object-c相當于init方法和dealloc方法。
java是通過set和get方法來訪問成員變量,java的成員變量是在類體的變量部分中定義的變量,也稱為屬性。成員變量又稱全局變量,定義在類中,和類的方法處于同一個層次。 object-c的屬性也是類似概念,它通過@property與@synthesize配對使用來實現屬性概念,并且默認實現setter和 getter方法。
java中包是類和接口的集合,這相當于object-c中的framework。
java通過輸入流和輸出流來讀寫文件,object-c則通過更簡單的NSData來實現。
java是通過jvm來進行垃圾回收的,objective-c則通過ARC的機制進行自動內存管理。

java和object-c是如何實現多繼承的?

java中不可以繼承多個父類,但是可以實現多個接口,這樣就實現了多繼承概念。object-c則通過Categories和protocols來提供多繼承。

java是解釋型語言,object-c編譯型語言

解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。解釋型語言,執行速度慢、效率低;依賴解釋器、跨平臺性好。如Java、Basic。
編譯型語言:把做好的源程序全部編譯成二進制代碼的可運行程序。然后,可直接運行這個程序。 編譯型語言,執行速度快、效率高;依賴編譯器、跨平臺性差些。如C、C++、object-c、Delphi、Pascal,Fortran。

jvm和gcc

java是一種解釋型語言,它的編譯器不是直接變異成機器指令,而只需生成在Java虛擬機(jvm)上運行的目標代碼(二進制字節碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執行字節碼時,把字節碼解釋成具體平臺上的機器指令執行。這就是Java的能夠“一次編譯,到處運行”的原因。
gcc全稱GNU編譯器套件(GNU Compiler Collection),它把object-c編譯成機器指令。

來自:http://www.coderyi.com/archives/177

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!