`
jiangduxi
  • 浏览: 441931 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JVM 加载Class文件的原理及其机制

 
阅读更多
  最近面试了阿里。发现其面试java这块对底层的了解很迫切。因此我也复习下。毕竟有段时间没有去碰java了。现在先从最基础最底层的一个问题开始:

JVM 加载Class的原理。上网上搜可以搜到很多。但是我还是按照自己的认识来复习下。

1.java文件都是需要编译为class文件。因此java中的所有类都必须被JVM加载才能运行。那么jVM是如何来加载呢?
   1.1 jvm加载的类大致可以分为三种: 系统类,扩展类,自定义类
   1.2 JVM对类加载的方式有两种:1.隐式加载 ,2 显式加载
       a. 隐式加载:程序在运行过程中当碰到是由new 方式产生的对象时,隐式调用类加载器对应的类到JVM中。
        b. 显式加载:通过Class.forName()等方法来显式加载这些需要的类。
   1.3 类加载是一个动态的加载过程。它并不是一次性将所有的类全部加载在运行。它先将一些必须的基础类一次性加载到JVM中。其他的类要等到用到的时候在加载进入JVM。
   1.4 java类三层次加载器:最高层(Bootstrap Loader) 负责加载系统类 第二层(ExtClassLoader)负责加载扩展类。第三层(AppClassLoader)负责加载应用类。
   1.5 三层次类加载器之间的协调加载机制靠(委托模型)这个委托加载就是当有需要类进行加载。那么首先会让其父层进行加载,如果父层没有找到或没有加载到,那么才会到自己来进行加载。


分享到:
评论
1 楼 haithink 2014-11-26  
面试成功没?

相关推荐

Global site tag (gtag.js) - Google Analytics