欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java学习 1.1——Java为什么能够跨平台?

程序员文章站 2022-07-04 22:43:33
首先介绍一下Java的各个层级,先放一张图: 硬件,操作系统和操作系统接口:这三级不说大家都知道,操作系统有很多种,比如Windows,Linux。Windows又分为win7,win10,win xp等等;Linux有Ubuntu,CentOS;操作系统接口就是系统为开发者预留的,方便调用从而控制 ......

    首先介绍一下java的各个层级,先放一张图:

Java学习 1.1——Java为什么能够跨平台?

    硬件,操作系统和操作系统接口:这三级不说大家都知道,操作系统有很多种,比如windows,linux。windows又分为win7,win10,win xp等等;linux有ubuntu,centos;操作系统接口就是系统为开发者预留的,方便调用从而控制操作系统的硬件,它不需要让程序员知道是怎么实现的,只需要知道参数即可。但是不同的系统肯定有不同的接口,甚至同一系列的操作系统之间,接口也有所不同,就比如win7与win10之间,操作系统接口肯定有差异。记住这一点,我们继续往下看:

 

    我们知道各个系统之间的接口不同,如果想在不同的操作系统上实现同样的功能,势必要做一些改变才行,甚至两个操作系统差别很大,要在不同平台实现同样的功能就代表要做两套程序出来。但是java程序为什么能够不在乎这样的差别,做一个程序就可以面向所有操作系统呢?这就是jvm的作用了。

    

    jvm即java虚拟机,它的主要作用就是相当于一个翻译官,jvm来向下关联所有操作系统,他能操作所有操作系统,向上提供统一接口,也就是javaapi,程序员只要面向jvm编程,将想要让操作系统做的告诉jvm,它就会去跟操作系统转达,至于到底怎么转达的,这个完全不用去考虑。这样一来,只要面向jvm编程,就可以做到一个程序在所有平台上都能运行。java语言和平台无关,这就是java能够跨平台的原因。


    顺便提一嘴:跨平台会造成什么呢?java通过jvm翻译,c/c++没有这样的过程,所以可以肯定的一点是java运行速度不如c/c++的速度。但是随着jvm虚拟机的技术和系统硬件的发展,以后说不定java的速度就能赶超c/c++了。