c++
java的長處 都是c的短處
c的長處是夠精煉,可以開發(fā)很底層?xùn)|西,并作為新語言的母體
c的有些語法格式過分死板 比如
int i;
for(i=0;i<10;i++);
而java中除了可以這樣寫之外 還可以
for(int i=0;i<10;i++);
綜上 總結(jié)一下
優(yōu)點(diǎn):
c應(yīng)該夠精煉 夠簡單 可以作為其他語言的母體 或基于硬件的開發(fā)(操作系統(tǒng)等)
缺點(diǎn):
生產(chǎn)力比較低 我的意思 用c某些方面開發(fā)效率很低
學(xué)習(xí)C++有一些難點(diǎn)需要注意:
知識(shí)點(diǎn)廣泛而且難度高。按照幾年前Scot Mayer在Effective C++中對(duì)C++的定義來看,C++是一門多范型語言,包括了C、面向?qū)ο缶幊毯头盒途幊獭3绦騿T需要正確理解很多基礎(chǔ)概念,比如,堆和棧的區(qū)別、指針、指針的指針、虛函數(shù)的內(nèi)部原理、繼承引發(fā)的對(duì)象內(nèi)存布局、多繼承引發(fā)的模棱兩可、模板以及編譯器推導(dǎo)、STL算法等。C++的內(nèi)容如此廣泛,因此每個(gè)知識(shí)點(diǎn)的學(xué)習(xí)和積累都不是件容易的事情, 自然誤用的情況常會(huì)發(fā)生。
C++打開了直接面向操作系統(tǒng)API編程的大門,因此使用C++完成工作,很多時(shí)候需要學(xué)習(xí)大量的平臺(tái)相關(guān)的API,這些API有的非常復(fù)雜。比如被稱為噩夢(mèng)般的技術(shù),Windows提供的COM/COM+庫,其實(shí)就是需要了解一大堆基礎(chǔ)知識(shí)才能操縱好。再比如:面向接口編程、虛函數(shù)表、設(shè)計(jì)模式中的工廠模式、Windows DLL地獄的由來、Windows注冊(cè)表、序列化、Windows安全、RPC、IDL語言、支持腳本語言的自動(dòng)化技術(shù)(IDispatch)、對(duì)象引用計(jì)數(shù)器,線程安全和套間和ATL模板技術(shù)等。
而在C++的演化過程中,因?yàn)槿狈ι虡I(yè)公司的大力贊助,缺乏良好設(shè)計(jì)的跨平C++類庫,多數(shù)人只能使用標(biāo)準(zhǔn)C++庫,但跨平臺(tái)效果也不佳。直到近幾年Boost為代表的現(xiàn)代C++庫起到了很大的作用。同時(shí),Java程序員早就享受著非常好的支持,SUN的豐富的JDK,大量活躍的開源社區(qū)(比如Apache) 對(duì)Java的推動(dòng)也是非常明顯的。
C++程序員成長周期長,特別是中國很多靠做項(xiàng)目掙錢的成長型企業(yè)面對(duì)選用C++作為編程語言會(huì)有所顧慮。
優(yōu)勢(shì)同樣很明顯:
假定程序員能很好的運(yùn)用C++,那么程序可以獲得很高的性能,消耗較少的資源。在云計(jì)算時(shí)代,C++在很多關(guān)鍵業(yè)務(wù)上起到不可替代的作用,也為這個(gè)地球節(jié)能。舉個(gè)例子,我有一次要在美國服務(wù)器上部署一個(gè)JSF編寫的網(wǎng)站,安裝GlassFish失敗是因?yàn)樘摂M機(jī)核心線程和進(jìn)程的總數(shù)被限制,只能換成C++編寫的網(wǎng)站。這臺(tái)服務(wù)器還同時(shí)運(yùn)行著C++編寫的TCP服務(wù)程序和NoSQL數(shù)據(jù)庫。
聯(lián)系客服