Java运行过程

来源:互联网 发布:阿里云怎么开通信任付 编辑:程序博客网 时间:2024/06/06 16:29

    随手笔记

      当我们写完一个java程序或者做完一个java项目时,都会要进行运行,那么它是如何运行的呢?Java有它自己的一套流程。 Java的JRE(Java运行时环境)由JVM、API和函数库组成,而我们写的程序都是经过处理在JVM中运行。JVM也有它的一套东西,很多,包括内存的使用、类的加载等等,不精通,所以只写它大概运行的框架,日后再补充。

     看下图:

 

  Java的源码经过编译之后生成了字节码,只要在编译期间通过即可,因为Java语言是运行时的语言,它不是在编译期间编译完成之后就可以了,而是在运行的时候会进行动态的加载类,Java的反射机制就是这样:可通过类的具体名字得到该类的信息,包括属性,方法,父类,接口等等信息。也可以反过来创建实例。这也是动态链接的好处,如果是在编译时候就已经决定要调用哪个类,那么这样就无法在程序运行中无法动态的选择。也可举例子:两个工程师写代码,一个在项目中要调用另一个写的类,然而这个类还没写好,那如果要直接调用的话,那岂不是一片叉,如果改用反射的话,那么就可以直接通过类名来写代码,当第二个攻城狮写完了,第一个攻城狮也写完了,完成任务。

   Java的代码都是要在 JVM 中去运行的,而需要将代码装载到JVM中,不可能一下子就全部装载完,会一步步的将运行到的类装载进JVM,首先从main函数开始,需要用到的类,如遇到new关键字则去加载相应的类,在加载之前会先去找它的夫类,以及静态区的属性等放到相应的内存区域,然后再加载子类的静态属性到内存区,最后在内存上分配实例化的属性等,一直到类加载完成,需要其他类则是相同的过程。

   在连接的过程中JVM会进行相应的检测,如果有危险代码则不会运行。

  下一步就是使用该类了,这一步则是我们调试程序时看到的,先进行调用那一步,再进行调用哪一步就和java的语法有关了。

  最后这个类使用完了,那么JVM会将其卸载掉,相应的内存空间也应会释放掉。

 先按理解的记着。

  


    

0 0
原创粉丝点击