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

为什么有人说 Java 的跨平台很鸡肋

发布网友 发布时间:2022-05-13 02:18

我来回答

2个回答

热心网友 时间:2023-11-09 12:21

为什么没有人结合Java出来的环境以及Java的历史., 的确其实这个口号在现在的互联网时代并没有那么有意义了, 但是在它刚出来的时候

1995年的时候,
软件是装载在CD-ROM甚至软盘上的, C/C++的确可以垮平台, 但是要编译成不同的版本发布,
比如这个软件要在Redhat, FreeBSD, Mac OS, Windows上跑, 那用C/C++编写的就得做四种CD,

反观Java, 只用一次编译, 也就是说主程序只需要一份, 1种CD, 然后Sun会帮你做好JVM. 可以省下好多成本.

再来看Java的起源, 发明的初衷, 最开始Java是为了机顶盒开发的, 机顶盒用的CPU不是x86架构的intel CPU而是单片机, 而单片机的发展是很迅速的, 你花了半年为某种单片机开发了程序, 等程序出来了可能这个型号的单片机已经没人用了, Sun当时是为了解决这个问题, 提出了程序只用写一遍编译一遍, 然后让JVM来适应单片机型号的不同.

热心网友 时间:2023-11-09 12:21

个人认为持这种看法的人要么是没把Java用对地方,要么是没有进行过大规模的企业级Java开发。

Java开发的长项是服务器端编程。当然,近年来随着Eclipse的流行,Eclipse的RCP框架让Java在客户端工具方面也有了一些应用,但主要的用途还是脱离不了服务器端编程。

但众所周知,比较好的服务器端操作系统,至今还是Unix-like操作系统的天下。说起Unix-like操作系统,有些了解的人就知道,包含了Linux、Unix、FreeBSD等一大帮兄弟。这哥儿几个虽然长得很像,但差异还是有的。使用C语言之类不具有跨平台特性的语言时就常常因为API的差异导致在更换服务器时总要进行大量的代码修改和测试。而如果一份代码需要在不同操作系统的服务器上运行,就有可能需要维护多份代码。无论开发成本、维护成本还是文档制作都要高出很多。
这还只是说运行方面,如果考虑到开发,问题就更大了。
开发的时候,不可能给每个开发人员都配一台服务器,肯定用的是普通的PC。而PC领域的操作系统,你恨它也好爱它也罢,Windows还是很难不进来插一脚的。于是就出现了这样的局面——在Windows下开发,在Unix-like上运行。
人非圣贤孰能无过。写代码就一定会犯错。所以层层测试必不可少。相信很多人都习惯于一边写一边测,有些问题顺手改掉。如果让你每次要测试的时候都要先编译,然后挪到服务器上,然后再运行,出错了要调试还得换个操作系统去做。哪怕你不嫌麻烦,上面的老板也会嫌效率低下。
而Java恰恰解决了这个问题。开发人员可以在Windows的开发机上搭建轻便简单的服务器环境,可以随时进行测试和调试。而且只要项目制定好合理的开发规约(例如没有特别申请不要写绝对路径,不要使用与操作系统相关性强的API等)并严格要求开发人员遵守,通过测试和调试的模块拿到服务器端基本不会出现问题。只需要做一下集成测试即可。大大减轻了开发者的负担和整体的开发效率。
另一方面,从代码的管理角度上看。因为实现了跨平台,代码只需要维护一份。遇到版本升级、增加分支版本等问题的时候也不会有太大的麻烦。
还有,当服务器端更换操作系统时——例如因为经费问题,从收费的Linux版本更换为免费的Linux版本,因为性能问题从免费Linux更换为商业的AIX系统等,也可以直接将模块打包发布,然后只需要重新进行集合测试即可。

所以,当将Java使用到其擅长的领域时,其跨平台特性应该说是非常有效的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... .NET与JAVA的优缺点? 为什么在中国.NET不如JAVA? Java语言具有许多优点和特点 跨平台 java跨平台和.net跨平台各自的优点在哪里,那个更适合多系统开发,,, 1400得二手华为mate40pr国行版可以用只有4.5网路得手机么 莒南县城361运动鞋专卖店在哪里 天津市北辰区哪有卖361℃运动鞋的? 想开个品牌折扣店。经营运动类的服装跟鞋子,例如安踏、361、李宁之类的,谁知道去哪里进货啊? 如何把win10自动更新禁死 杨桃怎么切美观? 如何知道匿名的好友是谁 散酒坛封口沙袋的做法? 漂亮沙包的做法是什么? 交行固收增强2个月定开4号理财产品提前赎回需要费用吗? 我不小心删了微信好友,不知道手机号要怎么加回来? 微信好友被删了,自己又不知道他的了。怎么找回? 婴儿的额头体温多少正常体温 换个微信头像怎么换 谁有苹果免越狱的自动抢红包神器。 html+css大神,响应市布局为何我字体不随浏览器大小而变化。 帮快出生的孩子起名 java跨平台在web的优势 JAVA语言的优点以及优势是什么呢 ? 如何理解JAVA的跨平台特性? Basic,C,C++,Java语言不同的优势与缺点? 红米3怎么打开后盖 红米3后壳怎么拆下来 酷开32P31电视机进入丅V状态后怎样搜索电视台节目 TCL电视怎么搜索潍坊电视台这个节目? 请问醒酒可以喝的是什么? 淘宝如何打造一款爆品? HTML代码中包含了图片大小限制max-width:900px;怎么在不修改的前提下用CSS在控制为600PX呢 加拿大父母团聚需要多少钱 去加拿大定居需要多少钱?需要什么其他条件? 怎样看毛竹挖竹笋 今年的支付宝瓜分多少钱 华为p8怎么更改网络接入点 华为手机怎么修改APN,打开网络E通? 石家庄到五台山打算自驾游不想走高速想欣赏沿途风景,有没有合适的路线,求大哥大姐推荐 北京到五台山自驾游路线 中国96式坦克