java跨平台原理

了解什么是平台

平台就是CPU处理器和操作系统的整体称呼

  • CPU处理器

    如果将计算机比作人,那么CPU相当于人的大脑,负责思维运算和计算机各个部分的命令控制;CPU种类较多,如:Intel、AMD等等,这些CPU使用的相同或者不同的指令集,每种CPU都有特定的指令集,所谓指令集就是CPU中用来计算和控制计算机系统的一套指令的集合

  • 操作系统

    操作系统就是用户和计算机相互交互的软件,不同的操作系统支持不通过的CPU(或说CPU的指令集)

Java跨平台原理
  • 原理

    Java不会直接将源程序编译成机器语言,它会首先编译成中间语言,再由解释器二次编译,解释执行;只要在需要运行 java 应用程序的操作系统上,先安装一个 Java 虚拟机(JVM Java VirtualMachine)即可。由 JVM 来负责 Java 程序在该系统中的运行。

  • 说明

    Java源程序运行时,javac编译器会把Java源程序编译成 .class的二进制字节码文件,.class文件再运行在jvm上,java解释器会将其解释成对应平台的机器码执行,所以Java跨平台就是 .class字节码文件跨平台,.class文件是与平台无关的,但是jvm在不同平台上是不同的,所以不同平台要安装不同的jvm,实现Java一次编译到处运行

    • 机器码与字节码的区别

      1、机器码完全依赖硬件存在,由于不同硬件的内嵌指令集不同,即使是相同的 0 1 代码,也可能有不同的意思,不存在跨平台性
      2、只要哪一种硬件,只要安装了相应的jvm,那么它就可以将 .class文件编译成机器码

    • 语言的执行方式

      ①:编译执行:C语言就是编译执行的,编译器和编译生成的可执行文件与平台相关,例如,vc编译的exe就不能在Linux上运行
      ②:解释执行:Java是解释执行的,编译为中间码的编译器与平台无关,编译生成的中间码也与平台无关(一次编译,到处运行),中间码再由解释器解释执行,解释器是与平台相关的,也就是不同的平台需要不同的解释器

    • 语言根据执行方式的不同分类

      ①:编译执行,如C语言,它把源程序由特定平台的编译器一次性编译为平台相关的机器码,它的优点是执行速度快,缺点是无法跨平台;
      ②:解释执行,如HTML,JavaScript,它使用特定的解释器,把代码一行行解释为机器码,类似于同声翻译,它的优点是可以跨平台,缺点是执行速度慢,暴露源程序;
      ③:中间码+虚拟机,由Java开始引入,它既整合了编译语言与解释语言的优点,同时如虚拟机又可以解决如垃圾回收,安全性检查等这些传统语言头疼的问题,所以其后微软的.NET平台也使用的这种方法


参考:http://xiaozhen1900.blog.163.com/blog/static/1741732572011325111945246/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值