首页 > 代码库 > 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.
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());
}
}
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()方法动态加载
java反射理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。