假如你写了一段代码: Object o=new Object();
运行了起来!
首先 JVM 会启动, 你的代码会编译成一个. class 文件, 然后被类加载器加载进 jvm 的内存中, 你的类 Object 加载到方法区中, 创建了 Object 类的 class 对象到堆中, 注意这个不是 new 出来的对象, 而是类的类型对象,
每个类只有一个 class 对象, 作为方法区类的数据结构的接口 jvm 创建对象前, 会先检查类是否加载, 寻找类对应的 class 对象, 若加载好, 则为你的对象分配内存, 初始化也就是代码: new Object()
以此, 来理解反射在什么场景下使用
题主想想上面的程序对象是自己 new 的, 程序相当于写死了给 jvm 去跑假如一个服务器上突然遇到某个请求哦要用到某个类, 哎呀但没加载进 jvm, 是不是要停下来自己写段代码, new 一下, 哦启动一下服务器,(脑残)!
来源: http://www.bubuko.com/infodetail-2542073.html