获取Class对象的三种方式
Object ——> getClass();对象.getclass();
任何数据类型(包括基本数据类型)都有一个“静态”的class属性
通过Class类的静态方法:forName(String className)(常用),Class.forName(“”);
通过javac进行编译,编译完成之后生成一个字节码.class文件,当新建对象的时候,jvm会加载我们的student.class,当我们main方法中新建对象或者IOC加载我们的对象的时候,也就是说调用new指令的时候,先找这个对象是否被加载,如果没有被加载的话,jvm就会从本地磁盘去找对应的student.class字节码文件,这个.class字节码文件就是上边javac编译出来的,jvm将字节码文件加载到jvm内存中,然后调用new指令,在堆内存中开辟空间,开辟空间的同时要盛放Student的一些具体信息,加入我们新建两个学生对象,
Student stu=new Student();Student 2stu=new Student();
Student的一些属性,比如性别年龄等会在Student对象空间有体现,但是在创建这个空间之前要先创建一个Class对象,泛型是Student类型,这个类型里边就包含了Student的属性字段和main方法构造器,当新建队形的时候直接去Class对象中去找对应的方法即可,也就是第一次创建的话创建一个class对象,
第二次创建的时候不需要再去加载student.class了,直接通过Class对象,通过里边包含的Student的一些信息,就可以new出第二个对象了,这个Class对象绝对不会产生第二次,