反射的原理:
在java中,一切皆是对象,类也是对象,类是java.lang.Class的对象,以Animal类为例:
当Animal.class在硬盘中时,是一个文件,当载入到内存中,可以认为是一个对象,是java.lang.class的对象。Animal.class中毛色这个属性对于java.lang.class来说,是Field的一个属性值, 毛色对于java.lang.class来说也是一个对象.这也是反射机制动态获取信息,以及动态调用对象方法的原因.(网上找到了,没有看懂。反射的概念其实就是为了通过某个类的实例对象,反过来找到类的相关信息。)

创建类实例的三种方式:
1、通过类名.Class的方式
图片说明

2、类的实例对象的getClass方法:
图片说明

3、Class.forName+类名全路径的方式
图片说明