问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java跨平台优势不再,还有哪些优势

发布网友 发布时间:2022-04-29 21:28

我来回答

2个回答

热心网友 时间:2022-06-23 04:31

有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是
Linux用户,这时候如果不想多投入成本对各个平台进行适配,那么Java所谓的”Write once, run
everywhere”就显得异常光彩。然而今天,整个软件世界都在向B/S应用倾倒(嵌入式除外),即使要做客户端跨平台,QT等第三方框架远远比
Swing更强大,Java在桌面应用领域基本被淘汰已经是不争的事实了,而当初Java引以为豪的Applet也早已销声匿迹。如果说客户端Java还
有一点优秀的话,那只有Android了。
Android最初确实靠JVM屏蔽了不同硬件设备之间的区别并取得了巨大的成功,但在今天,Android
L中ART模式的出现也即将*这一情况,况且Google还可能会想用自家的Go语言取代Java成为Android平台的第一语言。所以在客户
端,Java几乎完败。

服务端应用不需要跨平台。做一个Web服务器,我想没有哪家公司今天用Linux,下个月就换Windows吧?如果仅仅是更换Linux发行版,如从Debian到Fedora,
本质上讲其Linux内核是不变的,因此像C++这样纯编译类型的语言已经没什么问题。如果做游戏服务器,我想几乎都会选择Linux而不是Win平台。
Java的跨平台优势的实用性其实已经被大大弱化了,可以说在实际应用中并不明显,在一般情况下几乎感知不出Java还能跨平台这个特性。作为三大商用
JVM之一的JRockets是只有编译器的JVM,即应用启动时会将字节码全部编译为本地机器码,这其实就很大程度上摒弃了跨平台,而追求性能。

今天,Java最大的优势在于其庞大而完善的生态系统。 一门编程语言是否能流行,主要是由其生态系统决定的。Java生态系统的完善性主要体现在以下几个方面:

Java拥有世界上数量最多的程序员。你说他们是农民也好,但数量放在那里,最明显的效果就是公司招人的时候
会比较容易地招到Java程序员。试想如果你想要做一套软件,你有一个很棒的技术方案需要用C++,Scala或Ruby等语言实现,但招不到足够的人
手,那么计划多半泡汤。这时候你的应用Java也能做到,并且很轻松就能招到足够的人,那么你选择Java的可能性就要大一些。
Java拥有大量的第三方类库。假如你想解析HTML,用C/C++这类语言恐怕多半只能自己编写解析算法库
了,而如果是Java,你可以非常轻松地在Github上找到JSoup,使用Maven导入依赖后分分钟就搞定HTML。为此还有一句讽刺Java的话
是:“我们不生产代码,我们只是Github的搬运工。”这句话从字面上看是很有道理的,但却忽略了对软件生产效率的提升所带来的巨大价值。对于软件的开
发,公司的唯一成本其实就是“人头费”,每减少一个月开发时间,就能帮助公司节省几十万几千万的研发成本。
Java拥有功能强大的IDE。
Eclipse,通过插件几乎可以满足你开发的任何需求。它虽然有些慢,但你可以通过JVM调优来提高程序的流畅度,千万不要使用默认的JVM参数。不
过,IntelliJ
Idea已经完全超越Eclipse了,Idea的智能程度几乎可以媲美Win平台下的VS。我是那类离了Vim就活不下去的人,在这两款IDE中都有
Vim插件从而让我愉快地存活下去。
Java拥有很多杀手级应用。 不必多说,Spring, Struts, Hibernate, Hadoop, Tomcat, JBoss等等。
Java的语法特性很少。对,这也是一项优点。C++相比C添加了大量特性,学起来费事不说,用起来还会降低
代码可读性,其实是费了工夫不讨好。当今世界对编程语言的要求是语法简单,代码可读,对性能已经是退而求其次了,因此才诞生了Python,
Ruby这样的编程语言。有很多人批评Java语法写起来很臃肿,我承认这一点,但事实是,编程语言从来都不是因为语法臃肿而被淘汰的,决定其生死的是生态系统。对于批评者,引用知乎的一句话:”动态类型一时爽,代码重构火葬场”

Java的性能已经足够高了。 Sun/Oracle的HotSpot

JVM内置的JIT编译器在运行时对字节码已经做出了非常大的优化努力,服务端应用启动后对JVM进行足够的”预热”,并给出合理的启动参数即可。如果不
是对性能十分敏感的系统类应用,Java已经足够快了。有一种简单可行的方法可以形象地看出这点,在JVM启动参数中添加+XX:PrintCompilation可以看到JIT编译器的忙碌。当今世界对软件的需求量越来越大,在性能可接受的情况下,开发效率才是第一位的,这也是Python这类动态脚本语言流行的主要原因。

以上仅做客观分析,并不想引起语言战争。毕竟,没有最好的语言,只有最适合某种项目的语言。引用黑格尔的一句话:”存在即合理。”

热心网友 时间:2022-06-23 04:32

把酒精倒入水中
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
遇到碰瓷怎么办 导致碰瓷者伤亡用负法律责 最新电子防盗装置 3个LED的小夜灯电路 买不到小功率3伏变压器,如何降压做个3伏70毫安电源 小夜灯按钮坏了怎么拆 哪里有各种定做手提袋 如图,我这个配置玩逆战为何会卡?pvp200左右,pve75左右,ping二三十,网... 女孩问你是的时候怎么回答 自习课 同学都睡着了 男同桌问我让我跟他比赛 比谁撒尿尿得远 问他... 想把一个女同学上了,又不想负责任,毕竟她对我没意思,我对她也没意思... 有一个晚上,女同学叫我一起玩,玩着玩着到了半夜,回自己的宿舍太远就... ideaped Y450的优点与缺点个是什么? git客户端和idea自带的git 相比有什么优点 苏州的世界五百强企业 学习安卓开发有必要装intelji idea破解版吗?还是免费的社区版就可以了? 卡特彼勒(苏州)有限公司 设备部电话以及负责人叫什么?急求!请各路神仙帮个忙?回答我给全部财富!谢谢 HTML5开发工具 IntelliJ IDEA和hbuilder哪个更好 苏州卡特彼勒怎么上班的,几班倒,有夜班吗 这个创业idea靠谱吗? 卡特彼勒在苏州园区的工厂情况 卡特彼勒物流(上海)有限公司怎么样? 联想IDEAL系列的优势 月子可以吃炒菜吗? 苏州的世界五百强企业都有哪些? 如何进苏州卡特彼勒公司? Idea 与 eclipse 比较有什么优势和劣势 卡特彼勒(苏州)有限公司这家公司具体什么情况啊!内部情况,我工作6年,在他们公司什么薪水! 坐月子可以吃丝瓜炒鸡蛋吗 美国卡特彼勒收购徐工集团 android开发,Android Studio和IDEA哪个更好用?优势在哪? 苏州卡特彼勒怎么样? 数控点焊机不工作怎么回事 数控超声波点焊机屏幕上出现错误最小频率,是什么原因? dn2精密型可控硅数控点焊机如何使用 数控机床的工作台有哪些形式?各自的特点是什么? 数控机床按加工方式分类可分哪些类? 常用的数控机床有哪三大类 清风的网名是吉还是凶 网名叫清风代表了什么意思? 数控车床按功能可以分为几大类? 清风这个网名是什么意思? 麻烦介绍一下数控机床 "清风"有什么好的象征意义 华为p7系统升级失败开不了机怎么办 我女朋友给我打的备注叫清风是什么意思? 清风是什么意思? 算命人说的清风是什么意思 清风容容是什么意思 史清风这个名字有什么意义 两䄂清风什么意思 清风是什么意思呢