百摩网
当前位置: 首页 生活百科

java实现跨平台的机制是什么(跨平台只是一部分)

时间:2023-06-06 作者: 小编 阅读量: 2 栏目名: 生活百科

Java的跨平台优势的实用性其实已经被大大弱化了,可以说在实际应用中并不明显,在一般情况下几乎感知不出Java还能跨平台这个特性。今天,Java最大的优势在于其庞大而完善的生态系统。Java生态系统的完善性主要体现在以下几个方面:Java拥有世界上数量最多的程序员。Java拥有大量的第三方类库。Java拥有功能强大的IDE。对,这也是一项优点。如果不是对性能十分敏感的系统类应用,Java已经足够快了。以上仅做客观分析,并不想引起语言战争。

以下讨论只针对PC端和移动端。

Java最大的优势真的在于跨平台吗?

以前是,但现在已经不是了。

有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Linux用户,这时候如果不想多投入成本对各个平台进行适配,那么Java所谓的“Write once, run everywhere”就显得异常光彩。然而今天,整个软件世界都在向B/S应用倾倒(嵌入式除外),即使要做客户端跨平台,QT等第三方框架远远比Swing更强大,Java在桌面应用领域基本被淘汰已经是不争的事实了,而当初Java引以为豪的Applet也早已销声匿迹。如果说客户端Java还有一点优秀的话,那只有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这类动态脚本语言流行的主要原因。

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

    推荐阅读
  • 导航播报拥堵语音(一起来吐槽一下导航播报)

    导航提示语二:“前方有区间测速”区间测速是在同一路段上布设两个相邻的监控点原理是基于车辆通过前后两个监控点的时间来计算车辆在该路段上的平均行驶速度这些信息也可以用于对交通流量的自动分析、统计和用于对违法、违规车辆进行处理的法律依据听到导航的这句提示语此时我们应该:在高速公路上按车道限速行驶,保持安全车距,困了累了驶入就近服务区休息,避免疲劳驾驶。

  • 记承天寺夜游中苏轼夜游的原因是什么(关于记承天寺夜游中苏轼夜游的原因介绍)

    记承天寺夜游中苏轼夜游的原因是什么因为本文写天他被贬官谪居湖北黄州时,由于贬官谪居,不像在京城时公务缠身。首句即点明事件时间“元丰六年十月十二日”,时苏轼因“乌台诗案”被贬至黄州为团练副史已经四年了。张怀民和苏轼一样,亦是被贬至黄州来的贬官,他和苏轼的友谊相当笃厚。当晚,张怀民也还未睡,于是二人一起来到院子中间散步。这一层叙事,朴素、淡泊而有自然流畅。

  • 名言励志霸气的句子(经典霸气的励志名言)

    走得最慢的人,只要他不丧失目标,也比漫无目的地徘徊的人走得快——莱辛,我来为大家科普一下关于名言励志霸气的句子?——莱辛人类的希望像是一颗永恒的星,乌云掩不住它的光芒。特别是在今天,和平不是一个理想,一个梦,它是万人的愿望。——巴金失去财产的人损失很大,失去朋友的人损失更大,失去勇气的人则损失了一切。——卢森堡生命有如铁砧,愈被敲打,愈能发出火花。一息尚存须努力,留作青年好范畴。

  • 如何取消黑名单电话设置(如何取消黑名单电话设置华为)

    以MIUI系统为例,取消黑名单电话设置的方法是:1、打开MIUI系统电话应用页面,点击“电话设置”菜单;2、接下来,在打开的页面中,点击“骚扰拦截”设置项;3、在骚扰拦截页面中,点击“黑名单号码”设置项;4、在黑名单号码列表中,点击页面底部“编辑”菜单按钮;5、最后,选择好电话号码之后,点击页面底部“删除”按钮即可。

  • 抖音主播公会合同解除(抖音直播颁布公会管理条例)

    抖音主播公会合同解除日前,抖音直播发布《2022年抖音直播机构管理条例》,对MCN/公会等直播机构的经营行为提出明确要求,划定严禁侵害未成年人权益、色情低俗、诱导消费等8条红线。如公会自身违规,将根据公会“健康分”累计扣分实施相应处罚。据悉,公会“健康分”满分上限100分,凡涉及侵害未成年人权益、色情低俗、诈骗、诱导消费等行为,将予以扣除10-50分不等处罚。当公会“健康分”≤50分,平台将对公会直接清退并公示通报。

  • 唐朝清朝多少年(唐朝289年明朝276年清朝268年)

    在这之后的数千年间,中国一直处于封建统治之下。而贪腐则进一步滋生了大量的社会问题,从而导致王朝的根基被动摇。虽说中国古代的每一个王朝都非常重视贪腐问题,并且会严厉打击朝中的贪官污吏,这从表面上来看,受损害的似乎之后贪官污吏。皇权除了贪腐问题以外,皇权不稳也是王朝无法延续超过300年的主要原因。纵观中国数千年的封建历史,几乎每个朝代都会出现皇权斗争。因为他们在搜寻救国之药的同时已经注意到了教育的重要性。

  • 黄灯持续闪烁时表示什么意义(黄灯和黄闪有什么区别)

    黄闪灯——是一种安全警示灯,多用于匝道口、学校门口、交叉路口、转弯、多行人通过等存在安全隐患的危险路段或桥梁,以及雾气大、能见度低的山区路段,提醒司机注意安全驾驶。交警蜀黍启亮红绿灯是有原则的。

  • 地球上现存的5种巨型乌龟(灭绝的巨型乌龟重现人间)

    如今这些动物的后代已经在加拉帕戈斯群岛野化,侵害着象龟的栖息地。直到厄瓜多尔占领了加拉帕戈斯群岛,将群岛部分地区划为国家公园,岛上原有的动植物才得到拯救。遗憾的是,平塔岛象龟与沃尔夫火山象龟直接似乎存在一定的隔离,或是乔治本身患有不育症。2019年塔比亚发现费尔南迪纳龟后,也有人猜测,乔治的族群平塔岛象龟是否也还有幸存的可能。

  • 怎么知道释迦果熟了没有 怎么才知道释迦果熟了吗

    释迦果如何保存的久一点1.释迦最好放在避光、阴凉的地方贮藏,熟了释迦果最好能尽快吃完。糖尿病患者经常食用释迦,对于病症的减轻有明显的辅助食疗作用。

  • 于正怎么说陈晓赵丽颖的(于正微博疑揭赵丽颖陈晓分手原因)

    近日,有媒体报道称陈晓赵丽颖恋情曝光,两人被拍到了在横店牵手亲密耳语的照片。在公开的照片中,陈晓右手搭在赵丽颖左手上,举止亲密。今年7月初,XX工作室摄影师在横店片场,拍到了陈晓赵丽颖把“手”言情的甜蜜一幕。当时还有消息称,两人之所以不公开恋情时因为受到了背后大咖的阻挠,而这位大咖便是一手捧红两人的于正,不过于正事后对此进行辟谣。