Java跨平台的关键——JVM
2016-11-26 17:36
120 查看
前言
今天李达师哥给我们介绍了jvm,虽然之前在J2EE里学到过,但是有些难懂,所以这个问题一直被我挂起。现在回去再学习一下这些知识。从已知推未知
大家都知道Java之所以被人广泛应用,主要是因为它可以跨平台,而支撑Java跨平台的关键所在正是jvm。jvm是一个虚构出来的计算机,是通过实际的计算机上仿真模拟各种计算机功能来实现的。——百度百科
看了百度百科的解释,是不是忽然有些明白了jvm到底是什么东西了吧。因为有了jvm,Java语言可以在不同平台上运行是不需要重新编译,并且,jvm屏蔽了与具体平台相关的信息,使得Java程序只需生成jvm上运行的目标代码。这回算是明白了为什么我们在Notepad++编写的Java文件必须在Java环境下生成的class文件才能运行了,而生成的class文件可以随时运行,不用再从Java文件再次生成。这也正体现了“一次编译,到处运行”的原理。可是为什么生成的class文件能够在jvm上运行呢?因为他们是二进制数据,计算机只认识“0”和“1”。所以“一次编译,到处运行”。
jvm的执行过程
那么jvm是怎么样执行的,我们已经知道从Java文件生成 class文件的步骤,但是接下来的过程需要查一下资料。jvm提供类加载器,把class文件读入内存,并创建一个Java.lang.Class对象。而这个时候,就进入类的连接阶段,这个阶段负责把类的二进制数聚合并到jre中,这个阶段需要对二进制字节码进行校验、解析之后将类进行初始化,然后执行,最后垃圾收集。执行过程如图所示:jvm的体系结构
在计算机原理中,我们了解到计算机由控制器、运算器、输入输出设备等组成。jvm是虚拟的计算机,所以它和正真的计算是有一定的相似的。它也有是属于它自己的部件,jvm是要和操作系统与硬件进行一些交互,所以它又有别于计算机体系结构。下面的图是我在网上找的,这张图有利于我们对jvm的理解。总结
这是我根据师哥的讲解以及查阅的一些资料所做得理解和总结,可能会有些地方不太到位,欢迎指正。相关文章推荐
- 深入JVM 原理(五)Java堆内存调整参数(调优关键)
- java --- 入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,jre,jvm,跨平台)
- 【深入理解Java虚拟机JVM】java如何实现跨平台
- Java入门教程-1.2Java虚拟机(JVM)以及跨平台原理
- "Java之所以能跨平台,本质原因在于jvm不是跨平台的"如何理解?
- Java知多少(2)虚拟机(JVM)以及跨平台原理
- C++语言为什么不引进类似于JAVA语言中JVM的机制,来达到跨平台的目的?
- JAVA 跨平台原理以及jdk、jre、jvm之间的关系
- java 跨平台与JVM
- JDK&JRE&JVM_跨平台特性_开发环境配置_dos命令_字符集JAVA001-006
- JAVA与JVM是否具有跨平台性质
- JavaSE基础之Java语言的跨平台原理(JVM)
- java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
- Java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
- Java知多少虚拟机(JVM)以及跨平台原理
- 【跟着imooc重学java】JVM 实现java的跨平台
- (转)java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
- 编写跨平台Java程序的十二条规则
- 从C++到Java --理解面向对象是关键所在
- java源代码分析----jvm.dll装载过程