Java面试篇基础部分-Java反射机制是什么
什么是动态语言?
动态语言,就是指在运行的时候可以随意改变其结构的语言,例如添加新的属性或者添加新的方法,又或者是删除方法等等在语法结构上的变化。JavaScript、Ruby、Python等都是属于动态语言,这些语言又被称为是解释性的语言,也就是说不需要经过编译器的编译就可以直接解释运行。像C、C++等都不属于动态语言,他们都是经过编译之后才可以正常使用。对于Java而言,因为它存在反射机制,所以Java可归为半动态语言。也就是说Java语言也需要编译器产生.class的文件,但是反射机制提供了一种动态的性质。
什么是反射机制
反射机制指的是在程序运行过程中,对任意的一个类都能获取其所有的属性或者是方法,并且对任意一个对象都能调用其任意一个方法,这种动态获取类或者对象信息,以及动态调用对象的方法的功能就被称为是Java语言的反射机制。
反射的应用
Java中的对象有两种类型:编译时的类型和运行时的类型。
- 编译时类型是指在声明对象的时候采用的类型。
- 运行时类型是指在为对象赋值的时候采用的类型。