百科问答小站 logo
百科问答小站 font logo



Java 的开发效率究竟比 C++ 高在哪里? 第1页

  

user avatar   ze.ran 网友的相关建议: 
      

C++是面向内存编程,Java是面向数据结构编程。

C++里,内存是裸露的,可以拿到地址,随意徜徉,增了删了,没人拦你,等到跑的时候再崩给你看。

Java里,能操作的都是设计好的数据结构,array有长度,String不可变,每一个都是安全的,在内存和程序员之间,隔着JVM,像是包住了边边角角的房间,随便小孩折腾,不会受伤。

Java程序员是孩子,嚷嚷要这个那个,玩完了就丢,JVM是家长,买买买,还要负责收拾。有的孩子熊点,屋子很乱,收拾起来费劲,但房子还在。

C++程序员是神,操纵着江河湖海,日月星辰,但能力越大,责任越大,万一新来的神比较愣,手一滑,宇宙就退出了。

新手写C++,像是抱着一捆指针,在浩瀚的内存中裸奔。跑着跑着,有的针掉了,不知踪影,内存就泄露了;跑着跑着,突然被人逮住,按在地上打的error纷飞,内存就越界了;终于到了,舒了口气,把针插在脚下,念出咒语,

“delete”

系统就崩溃了。


user avatar   david-dong-20 网友的相关建议: 
      

我个人的感受,主要在如下几点:

1. java的限制多,实现的方式比较少,不需要考虑很多问题。

2. 垃圾回收,不需要考虑很多内存管理的问题。

3. 语法啰嗦,命名完整,基本上看代码就能看懂在做什么。

4. 工程保护多,新手也不容易对代码造成什么大的破坏。

其实我对c++的了解本身比较少,但用java的过程中觉得它的库和框架很全,生态完整。用maven之类的工具集成很方便,测试也很方便。

java的优势基本是在工程层面的,对新手很友好,不是特别懂也能写代码并且不容易出大错,然后在此基础上提供了很多工程支持,让它可以适应大型软件。C++对新生很不友好的,很容易会写出有很大问题的代码。




  

相关话题

  在用 STL 和 Boost 的,都是什么人? 
  如果编程语言有性别?Java、C++、C、C#是男是女?是GAY还是LES? 
  C 语言这些宏定义前面的 __extension__ 是什么意思? 
  为什么 C++ std::map::operator[] 不提供 const 版本? 
  为什么jvm不用协程实现 gc 呢? 
  gcc,clang,msvc等编译器有什么区别? 
  C++的CRTP所带来的静态多态功能具体有什么用? 
  如何正确理解java中的泛型类型推导? 
  有哪些值得学习的国内 c++ 开源项目? 
  如何反驳“代码混淆只是降低了可读性,安全性并没有得到实质提升”的观点? 

前一个讨论
你的二十八岁,你们都拥有什么?
下一个讨论
英国很多民众为什么冒风险也要脱离欧盟?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利