Java作业1-03Java跨平台实现的原理是什么

作者:神秘网友 发布时间:2020-09-26 02:55:15

Java作业1-03Java跨平台实现的原理是什么

Java作业1-03:Java跨平台实现的原理是什么?

两个概念

  1. Java虚拟机(JVM)。JVM的功能是连接Java程序与不同的操作系统,相当于一个接口,有了JVM,相同的Java程序就可以在不同的操作系统上运行了。
  2. 字节码。字节码是Java虚拟机采用的一种编码方式,类似于机器码,是为了解决不同的操作系统字节位数不一致的问题而产生的。

Java程序的运行过程

先由编译器编译为中间文件,再由解释器解释运行。

  1. 编译过程Java源代码(.java文件)经过编译器编译后,成为中间文件(后缀为.class),这个中间文件里面存储的就是字节码,是为了给虚拟机读取的。这一步是编译过程,由编译器完成。
  2. 解释过程。有了class文件之后,不同的操作系统的JVM就可以一句句读取字节码文件并将其翻译成不同操作系统的机器码然后执行;这一步是解释过程,由JVM完成。

Java作业1-03Java跨平台实现的原理是什么
上图中,最下面是三种操作系统(Windows,Linux与Mac),中间是Java虚拟机,最上面是程序员写的Java程序,颜色相同表示该程序可以在该操作系统上运行。可以看到,Java虚拟机在其中作为一个桥梁,Java程序只需要与Java虚拟机进行适配,而不需要与不同的操作系统进行适配,从而也就实现了Write once, run anywhere!的功能。

End

以上是我对Java跨平台实现原理的理解,如有理解不到位之处欢迎留言指出。

Java作业1-03Java跨平台实现的原理是什么相关教程

  1. java线程池(五):ForkJoinPool源码分析之一(外部提交及worker执

    java线程池(五):ForkJoinPool源码分析之一(外部提交及worker执行过程) 文章目录 1.ForkJoinPool总体介绍 2 常量及成员变量 2.1 常量 2.2 成员变量 3.构造函数 3.1 ForkJoinPool(parallelism, factory,handler,asyncMode) 3.2 ForkJoinPool(parallelism,facto

  2. 第四次作业

    第四次作业 package com.media.bean;public class user { private String name; private String xuehao; private String zhuanye; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } publi

  3. 嵌入式系统程序设计基础第一二周作业

    嵌入式系统程序设计基础第一二周作业 目录 作业要求 ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行 windows系统下用vc6.0编译主程序main1.c 并运行 在以上基础上,在ubuntu系统下用Makefile方式编程主程序 编写一个主程序文件 main1.c 和一个子程序文

  4. 阿里巴巴java技术岗三面分享

    阿里巴巴java技术岗三面分享 今天花时间整理了阿里巴巴Java岗技术三面的资料,分给大家做参考,祝大家都能找到好工作!加油! 一面 1、自我介绍,讲讲求职意向和擅长的技能 2、Tomcat的基本架构是什么? 3、JVM调优,工作中怎么用,GC算法和回收策略有哪些 4

  5. JavaBean

    JavaBean JavaBean %-- Created by IntelliJ IDEA. User: 看见没 Date: 2020/9/8 Time: 14:46 To change this template use File | Settings | File Templates.--%%@ page contentType=text/html;charset=UTF-8 language=java %html head title注册页面/title

  6. 小王学JAVA之数组

    小王学JAVA之数组 (所有笔记来源于哔哩哔哩up遇见狂神说的视频) 数组 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 首先必须声明数

  7. 任务卡_03-Java核心类库_第3节 集合

    任务卡_03-Java核心类库_第3节 集合 目录 一,快递管理训练任务 描述 说明 dao层 view层 bean层 Main函数 代码 Main bean.Express dao.ExpressDao view.View 一,快递管理训练任务 描述 还记得之前的快递管理吗?学习了集合以后,使用集合来进行快递信息的 存

  8. 如何解决Java/Java EE项目导入以及新建Java EE项目后自动生成的

    如何解决Java/Java EE项目导入以及新建Java EE项目后自动生成的代码<%@eclipse后报错问题? 一、外部导入项目时,代码没错,却报了很多错误,一般是因为jdk版本不同所致。如下选择自己已安装的jdk版本: 1、选择报错的项目点击右键,选择properties。 2、找