• 招生咨詢熱線:4008-569-579 
  • 手機版
    用手機掃描二維碼直達商品手機版
招生咨詢熱線
4008-569-579
機構(gòu)主頁 > 機構(gòu)新聞 > Java的開發(fā)效率比C++高在哪兒
機構(gòu)主頁 > 機構(gòu)新聞>Java的開發(fā)效率比C++高在哪兒

Java的開發(fā)效率比C++高在哪兒

來源:北京達內(nèi)教育        時間:2023-05-25        熱度:33℃        返回列表

閑話少敘,咱直接進入正題。最近和兩位Java大牛喝了牛肉湯后,驚奇發(fā)現(xiàn),他們都提及到了一個很有意思的話題:Java的開發(fā)效率比C++要高!java培訓班小編的常識認為,C++的運行效率高,Java的開發(fā)效率高,但究竟是為什么,我覺得有必要弄個明白,我請教了幾位大牛,他們這樣說:

A Ja man 說


C++是面向內(nèi)存編程,Java則是面向數(shù)據(jù)結(jié)構(gòu)編程。

C++里,內(nèi)存是裸露的,可以拿到地址,隨意徜徉,增了刪了,沒人攔你,等到跑的時候崩給你看。

然而Java里,能操作的都是設(shè)計好的數(shù)據(jù)結(jié)構(gòu),array有長度,String不可變,每一個都是安全的,在內(nèi)存和程序員之間,隔著JVM,像是包住了邊邊角角的房間,隨便小孩折騰,不會受傷。

Java程序員是孩子,嚷嚷要這個那個,玩完了就丟,JVM是家長,買買買,還要負責收拾。有的孩子熊點,屋子很亂,收拾起來費勁,但房子還在。

C++程序員是神,操縱著江河湖海,日月星辰,但能力越大,責任越大,萬一新來的神比較愣,手一滑,宇宙就退出了。

新手寫C++,像是抱著一捆指針,在浩瀚的內(nèi)存中裸奔。跑著跑著,有的針掉了,不知蹤影,內(nèi)存就泄露了;跑著跑著,突然被人逮住,按在地上打的error紛飛,內(nèi)存就越界了;終于到了,舒了口氣,把針插在腳下,念出咒語,“delete”,系統(tǒng)就崩潰啦!

B Ja man 覺得吧


我剛做程序員的時候發(fā)現(xiàn)自己寫的代碼速度非常慢,當時對STL遠比周圍人熟悉,按這樣想,應(yīng)該效率高才對啊。結(jié)果發(fā)現(xiàn)并不是,寫代碼的時候總想:“這樣必然可以work了,但一定有更好的方法,會是啥呢?抽象出一個基類?做個bridge模式?那Ownership的問題怎么解決?誰負責回收內(nèi)存呢?太復雜,別人也理解不了。就先這樣吧,能work就好?!?

就這樣,兜了一個圈子回來。有的時候,這個圈子不是純柏拉圖式的,我會真的實現(xiàn)不少 “優(yōu)化”

設(shè)計來比對,那個時間啊,花花的就耗在里面啦。有的時候確實會獲得一些改進,但是多數(shù)時候是得不償失,旁邊那些在我看來連C都只是一知半解的家伙采用

“CtrlC-CtrlV-Modify-Debug” 大法,早就沖到我前頭去了。這就是“心智包袱”的威力。

C Ja man said


Java是一門你不需要講究,也沒法講究的語言。很多c++資深人士寫不好java 或者寫的很難受,就是因為他們想很多但是又沒法實現(xiàn)哇。

D Ja man 認為


獨孤九劍,摘葉飛花皆可傷人。手中無劍,心中有劍,用龍泉還是莫邪有什么區(qū)別?用神兵還是樹枝有什么區(qū)別?

不過大宋步兵還是不能用樹枝。

對于優(yōu)秀的程序員來說,語法,語言特性,編譯器,運行時環(huán)境都不是問題。不過于此相反的是,對于不優(yōu)秀的程序員,這些通通都是問題。

最簡單的,去掉“指針”,對于獨孤九劍式的程序員,并沒有什么開發(fā)效率的提升,但是對于大宋步兵式的程序員,就少了很多坑,這就帶來了開發(fā)效率的提升。我們當然要追求當獨孤九劍,不過,當你做大宋將軍時,最好別把你的士兵都當獨孤九劍那么用,鐵定死的很慘。

不知上面幾位大哥的見解能否給你一些指引或是腦洞呢,程序娃的常規(guī)認識是C++的運行效率高而Java的開發(fā)效率高(相對而言)。但在某些場景下Java的性能已經(jīng)不輸C++啦,有的即使落后,但感知差距也并不大。而現(xiàn)代C++有了更多方便的語法和工具,開發(fā)效率也是有了很大的提高,所以了解語言之間的差異更多的還是讓我們對技術(shù)實現(xiàn)的原理和深度有了更高層面的認識,有了更好的視野而已。

以上,部分觀點參考知乎!  更多精彩內(nèi)容請關(guān)注java培訓機構(gòu)的官網(wǎng)

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部