• java_类加载器的简述


    1.类加载器的作用

    Java类加载器是Java运行时环境的一部分,负责动态加载Java类到 Java虚拟机的内存空间中。

    类通常是按需加载,即第一次使用该类时才加载。

    一个应用程序总是由多个类组成,Java程序启动时并不是一次把所有的类全部加载后再运行。

    它总是先把保证程序运行的基础类一次性加载到jvm中,由于有了类加载器,所以Java运行时系统不需要知道文件与文件系统,其它类等到jvm用到的时候再加载,这样的好处是节省了内存。

    因为java最早就是为嵌入式系统而设计的,内存宝贵,这是一种可以理解的机制,而用到时再加载这也是java动态性的一种体现。

    2.类加载器的使用

    那么类加载器需要这么使用呢:

    class Base{
    static int a = 1;
    static {
    System.out.println("init Base!");
    }
    }
    class Sub extends Base {
    static int b = 2;
    static {
    System.out.println("init Sub!");
    }
    }
    public class zuoye2 {
    static {
    System.out.println("init zuoye2!");
    }
    /**
    * @param args
    */
    public static void main(String[] args) {
    //调用base类的变量a
    System.out.println("a:"+Base.a);
    //调用sub类中的b
    System.out.println("b:"+Sub.b);
    System.out.println("a:"+Base.a);
    System.out.println("b:"+Sub.b);
    int[] array1 = new int[3];
    System.out.println(array1.getClass());
    System.out.println(int[].class);
    int[] array2 = new int[3];
    System.out.println(array2.getClass());
    //比较两个类的区别
    System.out.println(array2.getClass()==array1.getClass());
    int[][] array3 = new int[2][3];
    //比较两个类的区别
    System.out.println(array3.getClass()==int[][].class);

    }

    }
    运行结果:





    当程序运行时会先加载静态块里的代码,如何再执行主程序。当前没用到的类并不会去加载静态块里面的代码。



  • 相关阅读:
    Windows平台使用Gitblit搭建Git服务器图文教程
    yapi部署文档
    Yapi学习笔记
    利用微软认知服务实现语音识别功能
    对.Net Core结合Docker和Jexus的实践
    python-集合、字典
    python-文件操作
    python-函数
    python-运算、分支、深浅拷贝
    linux下的文件结构
  • 原文地址:https://www.cnblogs.com/dxgld/p/13537312.html
Copyright © 2020-2023  润新知