聊聊"鸡肋"的Java跨平台

        我们初学Java的,只怕最深的印象就在于Java的跨平台了,我们的前辈教师,总是会将Java的跨平台夸赞的不得了,可实际接触开发一段时间后,会不会有这么一个疑问呢?那就是Java源自于C,那C是如何操作的呢?Java的跨平台究竟在C的基础上,做出了哪些进步呢?为什么网上有了一种说法,说Java的跨平台很"鸡肋"呢?是这样吗?下边针对这些问题聊聊;

        C语言本来就是跨平台的,不过是“源码级”跨平台。本来就存在针对linux、windows的不同的编译器。所以有C语言“一次编写,到处编译”,Java是“一次编译,到处运行”的说法。如C++创始人酸溜溜的说法,JVM造了一个新的平台,让所有Java程序只能在这个平台上运行,而C和C++的代码可以在几十个不同的平台上运行,从源码这个角度而言,C和C++是跨平台的,而Java不是。这里所说的源码是经过编写未曾编译的。那么这么看起来Java的跨平台是不是真的有些鸡肋了呢?

  这种说法也是有失偏颇的,因为Java和C针对的方向不同所以跨平台承担的责任也就不同了,C主要用于系统底层的开发,如操作系统:Linux,硬件驱动程序。所以对于跨平台就是源码级别的。而Java呢?

       Java的起源, 发明的初衷, 最开始Java是为了机顶盒开发的, 机顶盒用的CPU不是x86架构的intel CPU而是单片机, 而单片机的发展是很迅速的, 你花了半年为某种单片机开发了程序, 等程序出来了可能这个型号的单片机已经没人用了, Sun当时是为了解决这个问题, 提出了程序只用写一遍编译一遍, 然后让JVM来适应单片机型号的不同.这是最初的跨平台,而发展到了今天呢?我们知道Java已经成为了web开发的主流语言,可是我们开发的时候是在Windows下开发,而部署往往是部署在Linux和Unix下的,所以此时Java的跨平台就又可以大展神威了,因为不管什么时候,Java说白了都是运行在JVM上的,真正需要跨平台的是JVM,所以对于我们编写程序来说,就让编码和跨平台分开了,便利了开发。Java的跨平台说白了就是下面的一张图:


我们作为编写段,只注重在编写代码,中至于跨平台的任务就交给了JVM来处理,中间码是跨平台的,但JVM却不是跨平台的,这点要注意!

    综上;我们说Java的跨平台鸡肋,是很片面的,针对性不同,没有可比性!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值