JVM解析01-平台无关性
2015-11-11 09:58
141 查看
两情若是久长时,又岂在朝朝暮暮。
我们时常听到一个词语“跨平台”,那么什么是跨平台呢?
从字面意思上看,也就是相同的字节码(以java编译后的字节码为例)可以
在不同的操作系统环境上运行。这究竟是怎么做到的呢?
学习了面向对象的特征,我们都知道面向接口编程,也就是设计模式中
的”具体的依赖于抽象“这个原则。那么这个设计原则有什么好处呢?其实,说
白了,也就是多态的优点,即我们可以使用相同的接口,然后让不同的子类实现
此接口,从而达到操作不同对象的目的。例如,JDBC就是典型的面向接口编程,
首先我们制定了统一的java访问数据库接口,然后不同的数据库厂商则通过实现
此接口来达到访问特定数据库的目的。
JVM也是类似的,针对字节码的运行时相关操作(字节码解析等),制定了统一
的接口,而不同的操作系统就像是实现此接口的不同子类而已。因此,在不同的操作系统
中运行java程序,需要下载与操作系统对应的JDK(其中包含JRE)。
JVM能够跨计算机系统结构来执行java字节码,主要是由于JVM屏蔽了
与各个计算机平台相关的软件和硬件之间的差异,使得与平台相关的耦合统一
由JVM提供者来实现。
我们时常听到一个词语“跨平台”,那么什么是跨平台呢?
从字面意思上看,也就是相同的字节码(以java编译后的字节码为例)可以
在不同的操作系统环境上运行。这究竟是怎么做到的呢?
学习了面向对象的特征,我们都知道面向接口编程,也就是设计模式中
的”具体的依赖于抽象“这个原则。那么这个设计原则有什么好处呢?其实,说
白了,也就是多态的优点,即我们可以使用相同的接口,然后让不同的子类实现
此接口,从而达到操作不同对象的目的。例如,JDBC就是典型的面向接口编程,
首先我们制定了统一的java访问数据库接口,然后不同的数据库厂商则通过实现
此接口来达到访问特定数据库的目的。
JVM也是类似的,针对字节码的运行时相关操作(字节码解析等),制定了统一
的接口,而不同的操作系统就像是实现此接口的不同子类而已。因此,在不同的操作系统
中运行java程序,需要下载与操作系统对应的JDK(其中包含JRE)。
JVM能够跨计算机系统结构来执行java字节码,主要是由于JVM屏蔽了
与各个计算机平台相关的软件和硬件之间的差异,使得与平台相关的耦合统一
由JVM提供者来实现。
相关文章推荐
- 杂谈学习的一点经验
- Zookeeper-Zookeeper client
- unity3d热更新解决方案,使用ulua插件开发的框架。
- 链表中头指针和头结点
- mfc对话框类中多线程
- 动态数据源的绑定
- 动态数据源的绑定
- 我们系统目前的问题 java的cvs系统
- Openfire3.10.2源码在eclipse上部署编译
- Zookeeper-Zookeeper leader选举
- SharePoint Web Part 客户端管理工具
- python3.4安装pydelicious
- jquery原理以及学习技巧介绍
- mfc下关于f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\occcont.cpp(926) 的奇怪问题
- 2015.4.28_正则表达式_正则表达式简易教程
- Android 控件最上层显示方法
- Android中解析XML
- 数据结构实验之二叉树四:还原二叉树
- 内核makefile自定义头文件添加 - [linux内核]
- HTTP协议详解(真的很经典)