`
mmk12333
  • 浏览: 33889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javaSE之类加载器

阅读更多

类加载器,说白了就是加载类的呵呵

  .类加载器负责将.class文件(可能在磁盘上,也可能在网络上)加载到内存中,并为之生成对应的java.lang.Class对象

  .当JVM启动时,会形成由三个类加载器组成的初始类加载器层次结构:

                 BootStrap----------JRE/lib.jar      根节点类加载器

                 ExtClassLoader-----------JRE/lib/ext/*.jar       扩展类加载器

                 AppClassLoader-----------CLASSPATH指定的所有jar或目录        应用类加载器也叫系统加载器

 

   BootStrap classloader: 引导(也称原始)类加载器,他负责加载java的核心类(也就是JDK自带类)

                                          这个加载器是非常特殊的,它实际上不是java.lang.ClassLoader的子类,而是由                                           JVM自身实 现的。可以通过执行一下代码来获得bootstrap classloader 加载了哪些

                                           核心类库:

                                URL[] urls = sun.misc.Launcher. getBootstrapClassPath (). getURLs ();

                                         for ( int i = 0; i < urls.length ; i ++) {

                                                System. out .println ( urls [ i ]. toExternalForm ());

                                          }

 

   extension classloader: 扩展类加载器,它负责加载JRE的扩展目录中的jar包,这为引入除java核心类以外的新功能

                                         提供了一个标准机制。因为默认的扩展目录对所有从同一个JRE中启动的JVM都是通用的所

                                         以,放入这个目录的JAR类包对所有的JVM和system classloader都是可见的。。

 

  (systemm)App classloader: 系统(也称为应用)类加载器,它负责在JVM被启动时,加载来自在命令java中的

                                                   classpath或者java.class.path系统属性或者CLASSPATH操作系统属性所指定

                                                   的JAR类包和类路径

 

  全盘负责委托机制:

           全盘负责:当一个classloader加载一个class的时候,这个classs所依赖的和引用的其他class通常也由这个

                          classloader负责载入。

 

           委托机制: 先让parent(父)类加载器寻找,只有在parent找不到的时候才从自己的类路径中寻找。

 

 类加载器还采用了cache机制:

                   如果cache中保存了这个class就直接反悔它,如果没有才从文件中读取和转换成class,并存入cache,

                   这就是为什么修改class但是必须重新启动JVM才能生效,并且类指加载一次的原因

0
0
分享到:
评论

相关推荐

    JavaSE之StringBuilder类与String类

    这个文件里的内容适合Java初学者,String类为引用类,不属于基本数据类型,但是String类非常的重要,在后边学习的JavaSE中,几乎使用的全是String类,这个文件里边包含了对String字符串的拆分、拼接以及怎么声明进行...

    JavaSE编 辑 器

    本程序旨在与像我们一样的Java初学者一起交流分享JavaSE学习心得,并未我们构建一个相对简单的Java代码编辑器。我们可以在其上进行简单的Java编码工作并可以与团队成员进行方便的交流。如果你的团队需要更强大的...

    JavaSE之日期时间类

    这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学JavaSE的宝典,针对人群:刚入门的JavaSE小白的同学们,我相信通过你们的...

    JavaSE之包装类(基本类型-->包装类)

    这个文件里的内容适合Java初学者,这个文件里边包含的是8基本数据类型的包装类、如何创建包装类以及包装类的使用方法。这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是...

    JavaSE课件JavaSE课件

    JavaSE基本知识 适合新手入门 JavaSE基本知识 适合新手入门 JavaSE基本知识 适合新手入门

    javaSE

    javaSE

    JavaSE之Object与Object类

    这这文件里的内容适合Java初学者,Object为基类,是所有类的父类,这里边对其进行了相关的介绍以及Object这个类的声明与调用。这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,...

    JavaSE之数组与集合类

    这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学JavaSE的宝典,针对人群:刚入门的JavaSE小白的同学们,我相信通过你们的...

    JavaSE之学习笔记

    JavaSE之学习笔记

    Javase项目

    Javase银行类源码加注解

    JavaSE原理-日期类API导学.md

    JavaSE原理-日期类API导学.md

    三年JavaEE开发积累的那些代码之一:JavaSE篇完整实例源码

    三年JavaEE开发积累的那些代码之一:JavaSE篇 有什么? 1)自己写的例子:或是为了项目中应用写的demo,或是为了学习某项技术写的demo。 2)网上下载的例子:或改过或没改过,或完善过或原封没动。 没什么? 1)公司...

    JavaSE之抽象的概念

    这这文件里的内容适合Java初学者,这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学JavaSE的宝典,针对人群:刚入门的...

    JavaSE之入门必备

    这这文件里的内容适合Java初学者,这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学JavaSE的宝典,针对人群:刚入门的...

    JavaSE之多态体系

    这个文件里的内容适合Java初学者,这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学JavaSE的宝典,针对人群:刚入门的...

    JavaSE之接口概述

    这里文件里的内容适合Java初学者,里边包含了接口的概念以及相关的用法,这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学...

    JavaSE之面对程序语言

    这个文件里的内容适合Java初学者,这是一些关乎JavaSE面向程序的相关知识以及一些Java的基础使用规则、类的定义规则、方法的定义方式等等。这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE...

    javaSE的学习笔记

    javaSE

    javase RSS阅读器

    rss阅读器,GUI,可以打开本地,网络上的xml文件,同时可以查找,保存等功能。

    JavaSE1.6参考文档

    JavaSE 1.6 参考文档 JavaSE 1.6 API

Global site tag (gtag.js) - Google Analytics