Java與其說是種語言,不如說是一種平臺更為合適。Java的每一個類都有一個class文件和它對應,Java在程序的啟動的時候將程序運行需要用到的類加載到虛擬機中,根據Java的虛擬機規范進行連接(動態連接),程序的組裝是在運行的時候完成的。因此,Java程序非常容易進行組件式的開發,程序的組件非常的容易替換。
C 和其他的編譯型的語言一樣,它的程序的組裝方式是一種傳統的組裝方式。C 在編譯的時候生成適用於某一平臺的二進制代碼,在連接的時候找到需要調用的庫,然後將這些庫中的代碼連接進可執行程序之中,生成的可執行程序運行速度非常的快,但是可執行代碼已經變成瞭一個整體,不可能再分開。(未考慮動態鏈接的情況)
C 當然也可以以組件的形式開發,如COM,但那些都是基於動態鏈接庫的,不可跨平臺的,COM實際上也是定義瞭一個二進制的組件標準。是不可跨平臺的。