Java的启动速度确实比较慢,但是系统运行稳定后,JIT编译器能够极大地提高Java的运行速度。使用专业定制的商业级jdk后,Java的运行速度已经不是问题,比如ali-jdk。况且对于互联网公司来说,可以通过虚拟化技术大规模增加机器或使用云计算,性能不够机器来凑。现在已经有了混部技术,连机器资源都可以共享了。总的来说,Java的运行效率真的不是瓶颈。
另一方面,Java的生态已经非常成熟,通用的框架、人数众多的程序员、各大公司的商业级应用,都是Java的筹码。Java最成功的就是虚拟机技术,现在又诞生了kotlin等基于jvm的语言,可以说Java的地位短时间内是无法被撼动的。
Java是在c++之后诞生的。解决了很多c++存在的问题,比如指针带来的安全性问题。做了很多优化,比如去除结构化编程是完全的面向对象,增加垃圾回收机制避免了内存泄露。如果不是需要操作底层,比如修改内存数据、操作硬件,而是做纯上层应用,c++不如Java。
分享学习笔记和技术总结,内容涉及 Java 技术、软件架构、前沿技术、开源框架、数据结构与算法、编程感悟等多个领域,欢迎关注微信公众号“程序之心”。
java慢是15年前的事了,那个时候java还是解释型的语言。自从java采用了JIT技术之后,经过多年的优化,java运行的速度已经可以和C++相当了。
而且java的难度比C++低,很易上手,技术社区多,技术体系完善。
硬件已经不是问题,更重要的是生态。java有完整的开发生态,基础组件,开源包众多,关键开发人员多。c++成本高,开发慢,谷歌后面推的go;python;kotlin也多与java调用方便。
你好,Java能在大数据平台占有一定地位,主要有如下原因:
Java语言独特魅力
Java自出身以来就为程序员所追捧,虚拟机的成熟技术,语言的跨平台运用;异常抓捕,增强系统容错能力;垃圾机制的自动处理,减轻了处理内存烦恼以及面向对象的破常规思想等等魅力是让每个程序员为其心动。
JIT编译器技术集成
JIT 是 just in time 的缩写, 也就是即时编译编译器,是一个把Java的字节码(包括需要被解释的指令的程序)转换成可以直接发送给处理器的指令的程序使用即时编译器技术,能够加速 Java 程序的执行速度,所以Java的运行速度相比C++已经不是问题了。
这问题本身就有问题,JAVA不是运行效率慢,是开发效率低,但线上运行效率很吊的,逻辑部分运算什么的基本都是JAVA来写,界面性的东西展示部分用什么无所谓了基本都用什么PHP,JSP等这些脚本语言,还有现在比较流行的前后端分离方案什么mvvc框架之类的,JAVA一直这么火不是没有原因的,当然没有一个完美的语言也没有完美的人所以任何一个语言都有它优缺点,所以不要去喜欢一个而贬低另一个这样不是显出你多么优秀而暴露出你多么的无知,个人喜好,团队因素,应用场景等各方面的因素可以选合适的语言!还有JAVA不是所有灵域都主导,现在人工智能方面就不是它的强项!
其实安卓这么慢,消耗硬件这么多,程序动不动就几百m占用,真的以为用户不在意么?还不是硬件产商,软件厂商为了自己的利益,故意将效率做低。
现在软件的效率已经越来越低,体积越来越大,说白了就是为了钱。
这样想就明白为啥不用c++,而用java了,就是因为它效率低,更能浪费硬件。
1.大数据的精髓就是横向扩展能力...也就是性能不够机器凑...比如原来有4台计算节点...再添四台机器性能就接近翻倍...这是大数据的精髓所在...
2.程序员一人天成本是1500-3000元...这是指老板拿出来的钱...程序员收入比这个低...程序员不加班一个月的成本约是3万-6万...
3.Java的运行效率低于C++...但Java的开发效率要高于C++...也就是说Java开发程序的速度远比C++快的多...假如省下10人月...那就是节约了至少30万的成本...一台二手E5服务器才不到2万...能买15台服务器...现实是1.Java没慢的那么邪乎..2.省下几百人月都是很正常的..
4.招C++程序员你得攒...攒个三年五年差不多能凑个百人队伍...Java程序员不用...1000人也就一周的事...
本来想多写点,比较下两个语言的各自优势,想想还是算了。
客观上:
1、客户不管你用什么语言,客户说用JAVA给爷搞出来
2、客户说爷的维护人员都是搞JAVA的
3、老板想,招聘一堆JAVA程序员应该会容易点吧
1、跨平台性这是java最大的优势,C++可以跨平台,但是需要重新编译,而Java不需要!
2、Java的IDE绝大多数是免费的,C++的IDE最好的应该还是VC++ 但是是需要收费的!
3、Java由于以上两点基础,已经有非常庞大的人员做了非常庞大的底层支持库,以及各种解决方案,Java的开发效率比C++高很多的数量级。
Java实际上运行效率并不是想象中的那么低,虽然比C++略低,但是现在的数据量,已经都采用分布式集群来分担单台服务器的压力,且各种大数据库框架都有很好的解决方案。所以,开发效率高的Java会比C++更适合做大数据平台。
JIT与NATIVE肯定有速度差异,只是不介意us级的应用,对普通用户没影响。但在强运算,及编解码时,还是C。很多上层用户可能并不知他的JAVA调用,下层很有可能是NATIVE库。Android上这种很多。很很内存数据库,也是C写的,如MDB, VOLTDB,只是提供了上层JAVA接口。JAVA开发了很多中间件,适合码农级广大工程人员。但非要像iOS说极限性能,那肯定不如C/C++。主要看应用场景,如果公司实力强,C开发时间能跟上JAVA,那还是用C好。