
个人可能持这样意见的人要么是没把Java用对地方,要么是没有进行过的企业级Java开发。
Java开发的长项是服务器端编程。当然,近年来随着Eclipse的流行,Eclipse的RCP框架让Java在客户端工具方面也是了一些使用,但主要的用途还是摆脱不了服务器端编程。
服务器端编程就意味着最终会在服务器上运行。(好吧……这句是屁话。)

但众所周知,比较好的服务器端操作系统,迄今还是Unix-like操作系统的江山。说起Unix-like操作系统,有些了解的人就明白,涵盖了Linux、Unix、FreeBSD等一大帮兄弟。这丫头几个虽然长得很像,但区别还是有的。使用C语言之类不具备跨平台特性的修辞时就往往因为API的区别使得在更换服务器时总要进行较多的源码改动和试验。而或者一份代码需要在不同操作系统的服务器上运行,就有可能需要维护多份代码。无论研发利润、维护费用还是网页制作都要高出诸多。
这还只是说运行方面java跨平台游戏,或者考虑到开发,难题就更大了。
开发的时候,不认为给每位开发人员都配一台服务器,肯定用的是普通的PC。而PC领域的操作系统,你恨它也好爱它也罢,Windows还是很难不进屋插一脚的。于是就出现了如此的形势——在Windows下开发,在Unix-like上运行。

人非圣贤孰能无过。写代码就当然会犯错。所以层层检测必不可少。相信很都习惯于一边写一边测,有些问题顺手改掉。如果让你每次要测试的时候都要先编译,然后挪到服务器上,然后再运行,出错了要调试还得换个操作系统去做。哪怕你不嫌麻烦,下面的店长也会嫌效率低下。
而Java恰恰解决了这个难题。开发人员可以在Windows的开发机上建起轻便简单的服务器环境,可以随时进行试验和调试。而且只要项目拟定好合理的研发规约(例如没有特别申请不要写绝对路径,不要使用与操作系统相关性强的API等)并严格要求研发人员恪守,通过试验和调试的系统拿到服务器端基本不会出现难题。只需要做一下集成测试即可。大大减轻了开发者的负担和总体的研发效率。
另一方面,从源码的管理视角上看。因为实现了跨平台,源码只需要维护一份。遇到版本升级、增强分支版本等难题的时候也不会有太大的麻烦。

还有,当服务器端更换操作系统时——例如如果财政问题,从收费的Linux版本更换为免费的Linux版本,因为型号难题从免费Linux更换为商业的AIX系统等,也可以直接将系统打包发布,然后只需要再次进行集合测试即可。
还是,当将Java使用到其善于的行业时,其跨平台特性也是说是相当有效的。
关于你说的iOS应用研发,因为作为属于客户端开发,不是Java擅长的使用行业。又因为苹果的封闭策略,当前还没有iOS上的Java虚拟机,不过使得了Java目前还无法在苹果上运行java跨平台游戏,自然也没有可能用Java开发了。

另一方面,因为Java天生不善于用户界面编程,而iOS又不适于做服务器端操作系统。所以,让iOS支持Java目前看也没有什么坏处。
或者你用Java可以进行Android编程来斥责我的话,我想说Android编程中使用的Java并非传统意义上的Java。可以说是Android的开发者很聪明,借助了Java开发人群巨大的优点,为Android准备了一份特殊的Java虚拟机,因而增大了Android的研发的学习费用和人员费用。但表象上,与那种所谓的跨平台的Java不是一回事儿。Android里的Java在做Android编程时所读取的API是标准Java中没有的,不过无法做到跨越到Android以外的平台。
最终总结一句,某些说Java的跨平台很鸡肋的人,就觉得用大刀切菜,说斧子的结实和厚实很鸡肋一样。原因是大刀本来就不是让你用于炒菜的,那胖子是也是用于劈柴的。
有想学Java的朋友欢迎来报名 。机不可失哦。更多技术交流者或想获取JAVA资料请加微信(858568103)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/sanxing/article-119104-1.html
超市有个破了的包装袋太正常了
好心疼
所以一线人员有权直接开火