美文网首页
[Java]浅谈Java/JavaScript的一次编写,到处运

[Java]浅谈Java/JavaScript的一次编写,到处运

作者: 猎手Andy | 来源:发表于2018-05-23 12:45 被阅读0次

一.Java跨平台的基础是JVM(Java Virtual Machine)

JVM是一个软件,它基于不同的操作系统和处理器实现了不同的版本,JVM本身是依赖于操作系统的,它仅仅是一个容器,用来解释Java字节码,翻译成不同操作系统和处理器下的机器码。
最典型的例子,在C、C++中的基本数据类型被JVM统一了实现,这得益于JVM的翻译能力,它实现了不同操作系统下的具体实现。
JVM把操作系统移植的兼容性部分对程序员屏蔽了,我们不需要看到具体的C的各种适配操作系统和处理器的条件宏和数据类型转换,以及系统API的差异。统一由JVM重新封装了,因此可以理解为一个中间件,类似于我们的对各种第三方框架的抽象和封装,让它表面上是有统一的行为,对具体实现不可见。

二. 分层


1.Byte Code(Java, OS 独立) -> 一次编码,到处运行


2.JVM(C/C++实现,OS和处理器相关) -> 字节码解释成机器码


3.Binary Code(机器语言,处理器相关)


三.跟JavaScript在各大浏览器中兼容性比较

JavaScript/HTML等具有类似的特性,一次编写,跨浏览器支持。
原理类似,各浏览器自身是一个程序或者说软件,我们理解成容器,它负责将JS/HTML代码解释,然后渲染。

但是我们知道,不同的操作系统中的系统API是不同的,MacOS和Windows下的可执行程序的架构是不同的,二进制程序汇编指令也是不同的,因此跨平台的基础就是中间件屏蔽了这些差异,这个中间件就是浏览器。当我们在JS中调用canvas等api渲染界面的时候,浏览器仍然需要将这些操作解释成系统级别的API,最终调用操作系统的API去绘制图形,因为只有操作系统自身才能调用到硬件来绘制界面到真实的显示器上(中间是各种驱动)。

相关文章

  • [Java]浅谈Java/JavaScript的一次编写,到处运

    一.Java跨平台的基础是JVM(Java Virtual Machine) JVM是一个软件,它基于不同的操作系...

  • JVM是什么鬼

    初见JVM(Java Virtual Machine) 学过java的小伙伴都听过Java名言:“一次编写,到处运...

  • 谈谈你对java平台的理解

    显著特性 java有两个显著特性:write once run anywhere,虚拟机的回收机制一次编写、到处运...

  • Java基础(一)

    Java基础 问: 为什么Java可以实现一次编写,到处运行?答: 1. JVM(Java虚拟机)是跨平台的关键...

  • Java虚拟机类文件结构

    Java虚拟机类文件结构 一、无关性的基石 java通过java虚拟机实现一次编写,到处运行java 虚拟机不和包...

  • Java的反射机制

    一、Java的解释机制 Java编写的程序,一次编译,只要装有Java虚拟机JVM的地方就可以在任意平台到处运行。...

  • Java字节码

    参考链接:一文让你明白Java字节码 Java字节码 Java虚拟机字节码指令 Java号称是一门“一次编译到处运...

  • 安装JDK运行环境

    Java要实现“编写一次,到处运行”的目标,就必须提供相应的Java运行环境 安装步骤: 选择使用Windows操...

  • 11.7笔记

    Java一次编写到处运行(跨平台)需要安装与操作系统匹配的JRE(JDK) Java注释符号 //注释单句 /* ...

  • Java和 JavaScript

    使用Java语言编写的JavaScript的开源实现Rhino;

网友评论

      本文标题:[Java]浅谈Java/JavaScript的一次编写,到处运

      本文链接:https://www.haomeiwen.com/subject/julrjftx.html