Java语言的健壮性与可移植性

1.健壮性

        主要是因为Java中有一种机制:自动垃圾回收机制(GC机制—garbage collection)。

        Java语言是健壮的,相对于C语言来说,C语言没有Java健壮。在C++程序当中的无用数据/垃圾数据需要编程人员手动释放,当忘记释放内存的时候,会导致内存使用率降低,影响程序的执行;在Java 语言当中这种问题得到了解决,因为Java语言引入了自动垃圾回收机制(GC机制),Java程序启动了一个单独的垃圾回收线程,时刻监测内存使用情况,在特定时机会回收/释放垃圾数据,这样会让内存时刻处于最好的状态。

        JVM(Java虚拟机,用C++语言实现的虚拟的计算机)负责调度GC机制,程序员不需要干涉。

2.可移植性/跨平台

        Java语言只要编写一次,可以做到到处运行。例如:Java程序编写完之后,可以运行在Windows操作系统上,不需要做任何改动可以直接运行在Linux操作系统上,同样也可以运行到mac OS(Operating System,操作系统)上面。那这个是怎么做到的呢?

        如上图,有同样的一个Java程序,在这里我们以两个操作系统为例:Windows OS 和 mac OS(类Linux系统)。

        首先,Windows OS 和 mac OS这两个操作系统的执行原理是不是一样的?答案是不一样。(这两家系统都是闭源收费的,谁都不会公开;说得再深点,虽然计算机都是执行二进制,但是这两个操作系统的二进制码的序列肯定是不一样的。)这里可以简单理解,像是安卓和iOS。

        那同一个Java程序是怎样在两个操作系统都能执行的呢?实际上,Java程序并没有直接和操作系统打交道,而是与JVM(Java虚拟机)打交道,然后JVM再与操作系统打交道。也就是说,JVM屏蔽了操作系统之间的差异。

        但不同的操作系统上所安装的JVM是不一样的,Windows OS 安装的是Windows般的JVM,mac OS 安装的是mac版的JVM。那JVM是怎么来的呢?在安装JDK的时候会自带JVM,所以JDK也有不同版本:Windows版的JDK、Linux版的JDK等。

        JVM这种机制实现了跨平台,难么这种机制优点和缺点分别是什么?优点:一次编写,到处运行。(平台改变了,程序不需要改。)缺点:麻烦。对于运行Java程序来说必须先有一个JVM。

        有些读者可能很难理解以上的解释,其实这个过程就类似于下面的一种情景:

        现在有一个中国富商,他同时要跟美国、韩国、俄罗斯、法国、德国等几个国家洽谈生意,可是他不懂这些国家的语言,所以他针对每个国家请了一个翻译,这样他以后的话就只对翻译说,不同的翻译会将他说的话翻译给不同国家的客户,这样富商只需要说一句中文给翻译,那么就可以同各个国家的客户沟通了。

        (本文仅代表个人观点,不喜勿喷!!!)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值