Java中反射的实现过程和作用?
知识点:反射
实现过程:
Java语言编译之后会生成一个.class文件,反射就是通过字节码文件找到某个类、类中的方法以及属性等。反射的实现主要借助以下四个类:Class:类的对象,Constructor:类的构造方法,Field:类的属性对象,Method:类中的方法对象。
作用:反射机制指的是在程序运行时能够获得自身的信息。在Java中,只要给定类的名字,那么就可以通过反射机制来获取类的所有信息。
JVM加载class文件的原理是什么?
知识点:JVM
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件的类。
Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序时,我们几乎不需要关心类的加载,因为这些都是隐形装载的,除非我们有特殊的用法,像是反射就需要显示地加载所需要的类。类装载方式有两种:
1.隐式装载
程序在运行过程中当碰到通过new等方式生成对象时,隐式调用类装加载器加载对应的类到JVM中
2.显式装载
通过class.forname()等方法,显式加载需要的类,隐式加载与显式加载的区别 :两者本质是一样的。
Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保障程序运行的基础类完全加载到jvm中,至于其他类,则在需要的时候才加载。这当然是为节省内存开销