5分钟弄懂java运行原理

冬季皮肤如何补水 http://www.bdfyy999.com/bdf/jiankangzatan/13006.html

Java的运行原理其实就是在Java中引入了虚拟机这个概念,也就是在机器和编译程序之间加入了一个虚拟的机器来连接他们。然后这台机器给任何平台提供给一个共公的接口来编译程序。

在Java中,编译程序面向虚拟机生成代码,然后解释器将虚拟代码转换为机器代码来运行。这种代码叫做字节码,由此可知它只面向虚拟机。不同平台的解释器也不同,但是虚拟机是相同的。Java源程序——字节码——虚拟机——解释器——机器码——机器上运行。

跨平台:

*.java→*.class→机器码

java编译器(编译)→虚拟机(解释执行)→解释器(翻译)→机器码

Java虚拟机(JVM)

Java虚拟机(JVM)是JavaVirtualMachine的缩写,顾名思义就是模拟一个计算机来实现计算机的各种操作。

Java中的类加载器把一个类装入JAVA虚拟机需要经过以下三个步骤来完成

第一步:装载(查找和导入.class文件)

第二步:链接(检查装入.class文件的正确性,然后,java虚拟机为变量分配内存,设置默认值。)又分为校验、准备、解析。

第三步:初始化(把符号引用变成直接引用)

Java虚拟机是怎么运行的:

1.装载

过程:java虚拟机-类装载器定位-CLASS文件-读取CLASS文件-java虚拟机中-虚拟机提取类型信息。。另一个重要的东西就是常量池(包含:直接常量和对其他类型,字段,方法的符号引用)这些信息保存在方法区。最终形成CLASS类的实例,这个实例存放在内存的堆区。

2.链接

过程:

第一步:验证(确定类型符合java语言的语义,比如:final类不能有子类,final方法不能被覆盖,确保在类型和超类型之间没有不兼容的方法声明)。

第二步:准备(java虚拟机为类变量分配内存,设置默认值)。

第三步:解析(在类型的常量池中寻找类,接口,字段和方法的符合引用把这些符号引用替换成直接引用的过程)

3.初始化

过程:可能会调用()方法,(这个方法只能够由java虚拟机调用)来初始化该类的静态变量。在调用这个方法前,必须确认该类的超类的()方法已经被调用。




转载请注明:http://www.jiaju1314.com/jbjj/11985.html

  • 上一篇文章:
  •   
  • 下一篇文章: