您当前的位置:学院动态 > 校区新闻 > 正文

 Java开发效率比C++高在这

 
  最近几年软件开发行业热门程度无人不晓,越来越多的同学想要跻身于软件开发行业,因此学习软件开发技术成为他们进入软件开发行业的第一步。另他们迷茫的是,不知道应该选择Java还还是C++好,有人说Java好,Java开发效率比C++高!小编的常识认为,C++的运行效率高,Java的开发效率高,但究竟是为什么,我们有必要弄个明白,小编请教了几位大牛,他们这样说:


 
Java开发效率比C++高
Java开发效率比C++高


 
  A说
 
  C++是面向内存编程,Java则是面向数据结构编程。
 
  C++里,内存是裸露的,可以拿到地址,随意徜徉,增删,没人拦你,等到跑的时候崩给你看。
 
  然而Java里,能操作的都是设计好的数据结构,array有长度,String不可变,每一个都是安全的,在内存和程序员之间,隔着JVM,像是包住了边边角角的房间,随便小孩折腾,不会受伤。
 
  Java程序员是孩子,嚷嚷要这个那个,玩完了就丢,JVM是家长,买买买,还要负责收拾。有的孩子熊点,屋子很乱,收拾起来费劲,但房子还在。
 
  C++程序员是神,操纵着江河湖海,日月星辰,但能力越大,责任越大,万一新来的神比较愣,手一滑,宇宙就退出了。
 
  新手写C++,像是抱着一捆指针,在浩瀚的内存中裸奔。跑着跑着,有的针掉了,不知踪影,内存就泄露了;跑着跑着,突然被人逮住,按在地上打的error纷飞,内存就越界了;终于到了,舒了口气,把针插在脚下,念出咒语,“delete”,系统就崩溃啦!
 
  B觉得吧
 
  刚做程序员时发现自己写代码速度非常慢,当时对STL远比周围人熟悉,按这样想,应该效率高才对啊。结果发现并不是,写代码的时候总想:“这样必然可以work了,但一定有更好的方法,会是啥呢?抽象出一个基类?做个bridge模式?那Ownership的问题怎么解决?谁负责回收内存呢?太复杂,别人也理解不了。就先这样吧,能work就好。”就这样,兜了一个圈子回来。有的时候,这个圈子不是纯柏拉图式的,我会真的实现不少“优化”设计来比对,时间花花的就耗在这啦。有时确实会获得一些改进,但是多数是得不偿失,旁边那些在我看来连C都只是一知半解的家伙采用“CtrlC-CtrlV-Modify-Debug”大法,早就冲到我前头去了。这就是“心智包袱”的威力。
 
  C说
 
  Java是一门你不需要讲究,也没法讲究的语言。很多c++资深人士写不好java或写的很难受,就是因为他们想很多但是又没法实现。
 
  D认为
 
  独孤九剑,摘叶飞花皆可伤人。手中无剑,心中有剑,用龙泉还是莫邪有什么区别?用神兵还是树枝有什么区别?
 
  不过大宋步兵还是不能用树枝。
 
  对于优秀的程序员来说,语法,语言特性,编译器,运行时环境都不是问题。但相反的是,对于不优秀的程序员,这些全都是问题。
 
  最简单的,去掉“指针”,对于独孤九剑式的程序员,并没有什么开发效率的提升,但是对于大宋步兵式的程序员,就少了很多坑,这就带来了开发效率的提升。我们当然要追求当独孤九剑,不过,当你做大宋将军时,最好别把你的士兵都当独孤九剑那么用,铁定死的很惨。
 
  Java开发效率比C++高在这!不知几位大牛的见解能否为你带来一些指引或脑洞呢!常识觉得'C++的运行效率高而Java的开发效率高'。但在某些场景下C++已完全不胜Java了,有的即使超前,但感知差距也不大。现代C++有了更多方便的语法以及工具,开发效率也提高了,因此,了解语言间的差异,更多的还是对技术实现的原理及深度有更高层面的认识,有更好的视野而已。