Java反射机制的作用
假如我们有两个程序员,一个程序员在写程序的时候,需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码能否通过编译呢?这是不能通过编译的。利用Java反射的机制,就可以让第一个程序员在没有得到第二个程序员所写的类的时候,来完成自身代码的编译。
一、作用
在运行过程中知道对象所属的那个类有什么属性,什么方法,以及属性和方法的修饰符,还可以通过反射创建对象。
二、原理
你的程序执行的时候jvm读取加载的是你的源代码生成的.class文件,而你类的属性和方法什么的都会包含在.class文件中
所以jvm可以通过解析.class实现反射的那些功能
所以jvm可以通过解析.class实现反射的那些功能
三、为什么需要反射
为什么需要反射呢?比如链接jdbc 我们Class.forName("com...."),不就是个驱动类么,为什么需要反射创建。
因为Java本身只是提供的接口,具体的实现是由mysql,oracel,sql server这些数据库厂商实现的,如果你想要使用java连接到这些数据库,必然要使用这些厂商提供的驱动,厂商提供的驱动都是一些类,类是不会执行的,jvm要为他们生成对象。
Class.forName("com....")这句话调用后会生成一个驱动的对象会被加载到jvm里,进而可以完成数据库的操作。
Class.forName("com....")这句话调用后会生成一个驱动的对象会被加载到jvm里,进而可以完成数据库的操作。
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.