Java 的开发效率究竟比 C++ 高在哪里?
Java和c++的相似之处多于不同之处,Java吸收了C/C++的优点,但是丢弃了指针等容易使程序崩溃的内容,提升了语言的健壮性。
内存
两个例子,申请变量
Object a = new Object();
void * a = malloc(sizeof(void*));
对于java 来说
因为存在 垃圾收集器,申请的变量,放置在堆还是栈上,其实 可以不用那么在意,只有在做性能分析 , OOM 的时候才有用。
而对于C/C++ 来说
- 你应该堆你申请的每一个直接都有个清晰的认知,申请一个字节就可以为何申请4个字节,
- 申请的内存,何时释放
- 赋值操作导致拷贝,从而发生内存的增加,如何避免 大内存的拷贝。
- 如果 一个三方库,提供申请内存函数,理论上也会提供 销毁内存的回调,不要忘记调用
总的来说 C++程序员更关注 内存的布局 以及性能对于程序的影响
关于java好用的项目工具
IDE
主流的 Java 开发工具现在非 IntelliJ IDEA 莫属。前几年,可能 Eclipse 还能和 IDEA 一争高下,到了现在已经基本是 IDEA 的天下了。
如果你问我用 IDEA 到底哪最牛,我觉得有 3 点:
- 代码智能提示,牛!
- 代码自动生成,牛!
- 代码调试,牛!
而这 3 点,恰恰就是能极大提高程序员开发效率的 3 点。所以建议做 Java 后端开发的程序员,可以优先考虑 IDEA 作为开发工具。
版本管理工具
对于项目中的代码版本管理工具,Git 已经处于垄断地位了,新项目的话不需要再考虑 SVN、CVS了。
之所以 Git 现在处于垄断地位,主要胜在 2 点:
- Git 是分布式的,不会因为版本管理服务器崩溃导致完整的代码历史版本丢失。
- Git 创建分支是非常廉价的操作,可以随意创建分支,从而使并行开发很容易落地。而 SVN、CVS 这些版本管理工具创建分支则非常笨拙,并行开发非常麻烦。
上述第 1 点大大提升了代码资产的安全可靠程度;第 2 点则完美适应当代的敏捷开发需求。也因此,Git 大行其道就不足为怪了。
构建工具Java 项目的构建工具现在是龙争虎斗,业内一般有两个选择:Maven 和 Gradle。
如果是后端的 Java 项目,那绝大部分用的还是 Maven 去构建项目。如果是前端的 Android 项目,则选择 Gradle。Gradle 本身要比 Maven 先进很多:它配置灵活,性能优秀,真的是个非常优秀的构建工具。那为什么在后端 Java 项目构建的时候,大部分用的还是 Maven 呢?
因为Gradle本身太过灵活了,这种灵活带来了两个和后端项目构建特性不太匹配的问题:
- Gradle 因为灵活,所以用法规则多变,导致学习门槛过高——后端项目本身的构建流程,套路比较死板,变化非常少,所以不需要太多的构建特性、构建规则。也就是说,灵活本身引入的多种用法、规则、特性对后端项目意义不大,为了构建工具本身的使用,去投入时间学习,本身性价比不高。
- 上面说了,后端项目本身的构建流程是比较套路化的,需要进行一些强约束,去保证这种套路的可靠与稳定。而 Gradle 因为本身比较灵活的配置规则,反而失去了 Maven 的那种强约束,这就很可能因为失去了约束,从而造成团队在使用 Gradle 的时候,出现各种冲突和潜在的错误,造成项目构建的不稳定,这对后端项目来说是得不偿失的。
02maven项目构建_哔哩哔哩_bilibili
03maven程序安装_哔哩哔哩_bilibili
04maven仓库类型_哔哩哔哩_bilibili
07maven的常用命令_哔哩哔哩_bilibili
以上有兴趣的朋友可以研究一下