當前位置:編程學習大全網 - 編程語言 - Java的開發效率比C++高在哪兒?

Java的開發效率比C++高在哪兒?

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

AJaman說

C++是面向內存編程,Java則是面向數據結構編程。

C++裏,內存是裸露的,可以拿到地址,隨意徜徉,增了刪了,沒人攔妳,等到跑的時候崩給妳看。

然而Java裏,能操作的都是設計好的數據結構,array有長度,String不可變,每壹個都是安全的,在內存和程序員之間,隔著JVM,像是包住了邊邊角角的房間,隨便小孩折騰,不會受傷。

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

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

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

BJaman覺得吧

我剛做程序員的時候發現自己寫的代碼速度非常慢,當時對STL遠比周圍人熟悉,按這樣想,應該效率高才對啊。結果發現並不是,寫代碼的時候總想:“這樣必然可以work了,但壹定有更好的方法,會是啥呢?抽象出壹個基類?做個bridge模式?那Ownership的問題怎麽解決?誰負責回收內存呢?太復雜,別人也理解不了。就先這樣吧,能work就好。”就這樣,兜了壹個圈子回來。有的時候,這個圈子不是純柏拉圖式的,我會真的實現不少“優化”設計來比對,那個時間啊,花花的就耗在裏面啦。有的時候確實會獲得壹些改進,但是多數時候是得不償失,旁邊那些在我看來連C都只是壹知半解的家夥采用“CtrlC-CtrlV-Modify-Debug”大法,早就沖到我前頭去了。這就是“心智包袱”的威力。

CJamansaid

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

DJaman認為

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

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

對於優秀的程序員來說,語法,語言特性,編譯器,運行時環境都不是問題。不過於此相反的是,對於不優秀的程序員,這些通通都是問題。

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

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

以上,部分觀點參考知乎!?更多精彩內容請關註java培訓機構的官網

  • 上一篇:疫情過後,哪些行業會興起?
  • 下一篇:去興業銀行面試綜合櫃員,面試官壹般會問些什麽問題呢?求指點。
  • copyright 2024編程學習大全網