Java的跨平台原理
JAVA的跨平台原理
JAVA的跨平台原理
Java是一种简单易用、完全面向对象、有平台无关性、安全可靠的、主要面向Internet的开发工具。Java自从1995年正式面世以来,它的快速发展已经使整个Web世界发生了翻天覆地的变化。随着Java Servlet的推出,Java在电子商务方面开始崭露头角,最新的Java Server Page(JSP)技术的推出,更是让Java成为基于Web应用程序的首选开发工具。
Java是第一套允许使用者将应用程序通过Internet从远端服务器传输到本地机上并执行的一种语言:是一种应用程序提供者不需要知道使用者的计算机硬件与软件环境的语言。
Java对Internet编程的影响就如同C语言对系统编程的影响一样。
Java虚拟机(JVM)是可运行Java字节码的假想计算机,Java的跨平台性是相对于其他编程语言而言的。
同C语言编程一样,我们首先也要编写Java源程序,然后由Java编译程序将Java源程序编译为JVM可执行的代码,即Java字节码。Java源程序编译后生成的字节码文件就相当于C源程序编译后的Windows上的exe文件,在JVM上运行的是Java字节码文件,也就是扩展名为.class的文件。
Windows执行exe可执行文件的过程就是从exe文件中取出一条条计算机指令,交给CPU去解释执行。JVM执行Java字节码文件的过程,也是JVM虚拟机从Java字节码文件中取出一条条的字节码指令交给”CPU“去执行。硬件与软件是可以相互转化的,字节码的”CPU“可以是硬件,也可以是某个系统上运行的一个软件,这个软件称为Java字节码解释程序(也就是Java虚拟机)。
可见,只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当前,并不是在所有的平台下都有相应的Java解释器程序,这也是Java并不是在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。
Java的跨平台原理的更多相关文章
- 1,java的跨平台原理
简单讲一下java的跨平台原理: (1)为什么跨平台: 由于各OS支持的指令集各不相同,就需要程序在不同的平台执行不同的代码 (2)JAVA是如何实现的: ava开发了适合不同的OS及不同位数的jav ...
- Java语言跨平台原理
Java语言有一个很重要的原理叫:跨平台性. 在介绍Java语言的跨平台性之前首先要介绍一个很重要的概念:JVM: JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一 ...
- 示例解读Java的跨平台原理
首先简单的解释一下Java跨平台的特征,相当于说写一个Java程序论述上可以运行在不同的操作系统平台上面(此处的平台我们就简单的看成是操作系统平台).下面我们用一些事例来说明它的好处. 我们先了解一些 ...
- 快捷键和功能键、进入DOS命令行的方法、DOS命令讲解、java跨平台原理、JRE和JDK的定义、书写格式
快捷键和功能键A:键盘功能键* a:Tab* b:Shift* c:Ctrl* d:Alt* e:空格 * f:Enter* g:Window* h:上下左右键* i:PrtSc(PrintScree ...
- Java跨平台原理与Java虚拟机(JVM)
Java跨平台原理(字节码文件.虚拟机) C/C++语言都直接编译成针对特定平台机器码.如果要跨平台,需要使用相应的编译器重新编译. Java源程序(.java)要先编译成与平台无关的字节码文件(.c ...
- Java跨平台原理(字节码文件,虚拟机)
介绍 C/C++语言都直接编译成针对特定平台机器码.如果要跨平台,需要使用相应的编译器重新编译. Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机 ...
- Java跨平台原理
此篇博文主要源自网络xiaozhen的天空的博客:http://xiaozhen1900.blog.163.com/blog/static/1741732572011325111945246/ 1.是 ...
- 【转】Java跨平台原理
原文地址:http://www.cnblogs.com/gw811/archive/2012/09/09/2677386.html 1.是么是平台 Java是可以跨平台的编程语言,那我们首先得知道什么 ...
- Java 跨平台原理
Java的跨平台基于编译器和虚拟机.其中,CPU处理器和操作系统的整体称为平台.编译器把源文件编译成与平台无关的基于Unicode的字节码class文件,虚拟机把该文件解释成与平台有关的机器码指令,可 ...
随机推荐
- C++中使用class和structkeyword的不同
类能够在它的第一个訪问说明符之前定义成员,对这样的成员的訪问权限依赖于类定义的方式.假设我们使用structkeyword,则定义在第一个訪问说明符之前的成员是public的,相反,假设使用class ...
- SQL 数据类型、约束、索引及视图
一.数据类型:整数:int,bigint,smallint小数:float,real,decimal(长度,精度),numeric(长度,精度)字符:char(n),varchar(n) 8000英文 ...
- Ubuntu Android Studio 无法通过起动器开启
问题: 1.可以通过终端开启 2.通过Android-Studio建立的Application无法启动, 提示 No JDK found. Please validate either STUDIO_ ...
- 关于 css padding 的使用 padding会将使用该属性的元素撑开
.right_img_box{ width:300px; height:250px; border:1px solid #c9c9c9; margin-bottom:15px; background: ...
- Qt 控件
一.布局管理器 QHBoxLayout 水平布局 QVBoxLayout 垂直布局 QGridLayout 格点布局 QFormLayout 关联布局 QSplitter 分裂器 Spacers 间隔 ...
- 事件绑定之.bind()
.bind(eventType[,eventData],handler(eventObject)) 描述:为一个元素绑定一个事件处理程序,bind()绑定方法的时候元素必须已经存在. -eventTy ...
- IE 第三方设置cookie失效
公司的产品,采用多服务分摊压力,中间必须涉及的当然是单点登陆.一般的单点登陆都是通过去用户中心登陆,302或页面回调的方式,返回到登陆前的页面. 公司项目,想用户体验更好些,采用弹框登陆,可以考虑if ...
- MVC3 分页Helper
利用mvc3实现分页效果.效果图如下: 直接拷代码: 首页添加一个Helper的类(命名空间为System.Web.Mvc;). public static HtmlString ShowPageNa ...
- 剑指offer——已知二叉树的先序和中序排列,重构二叉树
这是剑指offer中关于二叉树重构的一道题.题目原型为: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2, ...
- Ajax与C#应用详细实例
实现刷新的方法主要是Ajax,本文档实现Ajax有两个方法(Jquery 和 W3C的JS方法):其次,使用JS也可以实现刷新数据不刷新页面(详见其他刷新页面方法JS实现):对于CallbackRef ...