zoukankan      html  css  js  c++  java
  • java反射理解

    1.反射的意义是将外部类装入虚拟机

    2.一个类一旦装入jvm,就会进行类的初始化。比如static加载

    3.类加载时程序运行的第一步

    4.java HelloWorld

    命令的时候,JVM会将HelloWorld.class加载到内存中,并形成一个Class的对象HelloWorld.class。
    5.其中类加载,就是通过类加载器加载的。jvm通过类加载器加载类。
    6.类加载完成后悔在内存中生成一个class对象
    7.
    1、运行一个程序时,总是由AppClass Loader(系统类加载器)开始加载指定的类。
    2、在加载类时,每个类加载器会将加载任务上交给其父,如果其父找不到,再由自己去加载。
    3、Bootstrap Loader(启动类加载器)是最顶级的类加载器了,其父加载器为null.
     
    9.类如果加载不到,就会报classNotFound异常啊,这就是一个典型的io异常啊 
    10.你的程序可以装载在编译时并不知道或者尚未存在的类或者接口,并动态连接它们并进行有选择的解析。
    8.public class HelloWorld { 
            public static void main(String[] args) { 
                    HelloWorld hello = new HelloWorld(); 
                    Class c = hello.getClass(); 
                    ClassLoader loader = c.getClassLoader(); 
                    System.out.println(loader); 
                    System.out.println(loader.getParent()); 
                    System.out.println(loader.getParent().getParent()); 
            } 
    }
    程序运行时候,肯定类已经加载完了啊。加载类是程序运行的第一步。
    既然类早就加载完了,所以在内存中,一定存在类的class对象
     
    9.怎样动态加载一个类,使之放入jvm中?
    答:
    五、类的加载
     
    类加载有三种方式:
    1、命令行启动应用时候由JVM初始化加载
    2、通过Class.forName()方法动态加载
    3、通过ClassLoader.loadClass()方法动态加载
  • 相关阅读:
    小组自评、互评及反馈
    "一个程序员的生命周期"读后感
    阅读《构建之法》第10-12章
    阅读《构建之法》第8,9,10章
    冒泡算法程序分析树的评论
    1014 C语言文法定义与C程序的推导过程
    0917 实验一词法分析程序
    0909 我与编译原理不得不说的秘密
    复利计算器4
    复利及单利计算
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6127715.html
Copyright © 2011-2022 走看看