JAVA反射(一):获取Class对象的三种方式及其区别
来源:互联网 发布:淘宝上的摩托车靠谱吗 编辑:程序博客网 时间:2024/06/10 18:23
CLASS
在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息
在运行期间,如果我们要产生某个类的对象,Java虚拟机(JVM)会检查该类型的Class对象是否已被加载。如果没有被加载,JVM会根据类的名称找到.class文件并加载它。一旦某个类型的Class对象已被加载到内存,就可以用它来产生该类型的所有对象获取Class对象的三种方式:
Class<?> test1=new Test1().getClass();
//1、通过Object类的getClass()方法:(需要先实例化一个对象)
实例对象.getClass() 说明:对类进行静态初始化、非静态初始化;返回引用o运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)所属的类的Class的对象
package reflect;public class Getclass {public static void main(String[] args){Class<?> test1=new Test1().getClass();System.out.println("test1");}}class Test1{static{System.out.println("Perform static code block");}{System.out.println("Perform dynamic code block");}}输出结果:
Perform static code block
Perform dynamic code block
test1
Class<?> test2=Test2.class;
//2、通过对象实例方法获取对象:(需要先实例化一个对象)
类名.class 说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象
package reflect;public class ClassCreat {public static void main(String[] args){Class<?> test2=Test2.class;System.out.println("test2");}}class Test2{static{System.out.println("Perform static code block");}{System.out.println("Perform dynamic code block");}}输出结果:
test2
//3、类的全路径:(不许呀实例对象)
Class<?> test3=Class.forName("reflect.Test3");
Class.forName("类名字符串") (注:类名字符串是包名+类名) 说明:装入类,并做类的静态初始化,返回Class的对象
package reflect;public class Forname {public static void main(String[] args){try {Class<?> test3=Class.forName("reflect.Test3");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("test3");}}class Test3{static{System.out.println("Perform static code block");}{System.out.println("Perform dynamic code block");}}输出结果:
Perform static code block
test3
0 0
- JAVA反射(一)获取Class对象的三种方式及其区别
- JAVA反射(一):获取Class对象的三种方式及其区别
- JAVA反射(一)获取Class对象的三种方式及其区别
- java 反射之获取class对象的三种方式
- java反射之获取class对象的三种方式
- java 反射(一) 获取Class对象的三种方式
- 反射获取class对象的三种方式
- 反射中获取class对象的三种方式
- 反射概念:获取class文件对象的三种方式
- 反射_获取class文件对象的三种方式
- 反射-获取class文件对象的三种方式
- 反射机制获取Class对象的三种方式
- 反射机制获取Class对象的三种方式:
- java反射机制(获取class的三种方式)
- Java 反射---获取Class的三种方式
- java反射(2)获取Class对象的三种方法
- 反射:Class获取的三种方式
- 28-反射机制-03-反射机制(获取Class对象的三种方式)
- 闲扯Linux的学习
- Java设计模式——单例
- SSL_1125_集合_HASH
- Git使用总结(含Git Bash与Git GUI的使用)
- keywords in my life
- JAVA反射(一):获取Class对象的三种方式及其区别
- 【51nod】1049 最大子段和
- 锅打灰太狼
- 前后端关于post请求中,对body的不同数据格式的解决处理方案实现
- Hbase访问方式之Hbase shell
- java中的final含义
- 架构设计:系统存储(5)——MySQL数据库性能优化(1)
- AndroidManifest启动模式与微信分享或支付之间的..
- 闭关开发总结