使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有Java跨平台的特性,

事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的。

Java字节码的两种执行方式:

1.即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。

2.解释执行方式:解释器通过解释一段执行一段的方式来完成Java字节码程序的全部操作。

Java程序执行和C++程序执行的对比分析:

Java源代码就好比C++源代码

Java源代码编译后的字节码就好比C++源代码编译后的80x86机器码(二进制程序文件)

JVM虚拟机好比80X86计算机系统

Java解释器好比80X86的CPU

真正的80X86CPU上运行的是机器码

而在Java解释器上运行的是字节码

可以把Java解释器想象成运行了“Java字节码”的“CPU”,

但该“CPU”不是通过硬件实现的,而是用软件实现的。

Java解释器实际上就是特定的平台下的一个应用程序。

只要特定平台实现了Java解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。

当然,并不是在所有的平台下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已经实现了Java解释器程序的平台下运行。

机器码(machine code)是一种机器指令的集合,有时也被称为原生码(Native Code),是计算机的CPU可直接解读的数据。

Java跨平台的原理的更多相关文章

  1. Java跨平台的原理--java跨平台是通过JVM实现的

    孙鑫视频---笔记(1-3) java跨平台是通过JVM(java 虚拟机)实现的. Java应用程序的开发周期: 编译.下载.解释.执行. 1.java源文件的编译过程 java编译程序将java源 ...

  2. Java跨平台实现原理

    跨平台:一次编译,处处运行. 实现原理:Java源代码经过编译,生成字节码文件,交由Java虚拟机来执行,不同得系统有不同得JVM,借助JVM实现跨平台.

  3. 初识java-1.Java跨平台的原理

    计算机只认识二进制的机器指令,而且不同的平台的计算机的机器指令不同.Java中将程序员编写的源码文件编译成字节码文件,在不同的计算机平台上安装不同的虚拟机,虚拟机将同一份字节码文件解释为不同的机器指令 ...

  4. 快捷键和功能键、进入DOS命令行的方法、DOS命令讲解、java跨平台原理、JRE和JDK的定义、书写格式

    快捷键和功能键A:键盘功能键* a:Tab* b:Shift* c:Ctrl* d:Alt* e:空格 * f:Enter* g:Window* h:上下左右键* i:PrtSc(PrintScree ...

  5. Java跨平台原理

    此篇博文主要源自网络xiaozhen的天空的博客:http://xiaozhen1900.blog.163.com/blog/static/1741732572011325111945246/ 1.是 ...

  6. 【转】Java跨平台原理

    原文地址:http://www.cnblogs.com/gw811/archive/2012/09/09/2677386.html 1.是么是平台 Java是可以跨平台的编程语言,那我们首先得知道什么 ...

  7. Java 跨平台原理

    Java的跨平台基于编译器和虚拟机.其中,CPU处理器和操作系统的整体称为平台.编译器把源文件编译成与平台无关的基于Unicode的字节码class文件,虚拟机把该文件解释成与平台有关的机器码指令,可 ...

  8. Java跨平台原理与Java虚拟机(JVM)

    Java跨平台原理(字节码文件.虚拟机) C/C++语言都直接编译成针对特定平台机器码.如果要跨平台,需要使用相应的编译器重新编译. Java源程序(.java)要先编译成与平台无关的字节码文件(.c ...

  9. 【Xamarin 跨平台机制原理剖析】

    原文:[Xamarin 跨平台机制原理剖析] [看了请推荐,推荐满100后,将发补丁地址] Xamarin项目从喊口号到现在,好几个年头了,在内地没有火起来,原因无非有三,1.授权费贵 2.贵 3.原 ...

随机推荐

  1. 按固定元素数目分割数组- perl,python

    要求:把40个元素的数组,按每行8个,分5行打印出来.如下图 1 2 3 4 5 6 7 89 10 11 12 13 14 15 1617 18 19 20 21 22 23 2425 26 27 ...

  2. idea properties文件中文无法正常显示

    引用:https://blog.csdn.net/u010999809/article/details/81204457 问题:在idea打开配置文件,已经设置了全局编码格式为UTF-8,和项目编码格 ...

  3. Linux7.2 UDEV

    1. 生成规则文件 touch /etc/udev/rules.d/99-oracle-asmdevices.rules 或者 touch /usr/lib/udev/rules.d/99-oracl ...

  4. C# 生成二维码扫码

    转载 https://www.cnblogs.com/jys509/p/4592539.html 引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: / ...

  5. AD域控Dsquery查询命令实列

    注:请以管理员的身份运行cmd程序,要不然某些命令不生效 AD域控Dsquery查询命令实列 查询技术支持二部的所有用户          dsquery user OU=技术支持二部,OU=技术部, ...

  6. 3DAY 用户管理

    0xff001用户/组管理 1.描述 用户和组: 系统上的每一个进程(运行程序)都是作为一个特定的用户运行的 每个文件都由特定的用户拥有 对文件和目录的访问受到用户的限制 与正在运行的进程相关联的用户 ...

  7. centos 下安装mulval工具

    我这里采用的是centos 6.5版本系统 MulVAL是企业网络安全分析的工具.它使用漏洞扫描程序(OVAL / Nessus)作为攻击路径生成的数源,其中包括扫描结果和网络可访问性信息. 在这之前 ...

  8. intellij idea 导入mysql

    我们先创建一个新的工程 下载包 下载完后测试一下连接 可以看到连接成功! 通过可视化工具查看本地的mysql的1234数据里面的数据

  9. day72Django之ORM

    Django框架之ORM(day72)一 ORM即Object Relational Mapping,全称对象关系映射. 1 不用写sql,不会sql的人也可以写程序 2 开发效率高 3 可能sql的 ...

  10. Linux基本指令

    常用目录文件作用 - /    根目录 - /bin    命令保存目录(普通用户就可以读取的命令) - /boot    启动目录,启动相关文件 - /dev    设备文件保存目录 - /etc  ...