Java记录 -89- java.lang.Class
2015-11-29 23:11
465 查看
众所周知Java有个Object class,是所有Java classes的继承根源,其内声明了数个应该在所有Java class中被改写的methods: hashCode()、equals()、clone()、toString()、getClass()等。其中getClass()返回一个Class object。
Class class十分特殊,和一般classes一样继承自Object,其实体用于表达Java程序运行时的classes和interfaces,也用来表达enum、array、primitive Java types(boolean, byte, char, short, int, long, float, double)以及关键词void。
当一个class被加载,或当加载器(Class loader)的defineClass()被JVM调用,JVM便自动产生一个Class object。
Java JDK源码中可以看到Class类的构造方法为私有的,并注释为:Constructor, Only the Java Virtual Machine creates Class objects.只有Java 虚拟机才可以创建Class对象。Class类中包含许多native方法,即本地方法,不是用Java来实现的,而是由C或C++来实现的。
Class是Reflection的起源,针对任何您想探勘的Class,唯有先为它产生一个Class object,接下来才能经由后者唤起为数十多个的Reflection APIs。
Java允许我们从多种途径为一个class生成对应的Class object:
1. 运用getClass();(每个class都有此函数)
2. 运用Class.getSuperclass();
3. 运用static method Class.forName();(最常被使用)
4. 运用.class语法(Class str = String.class)
5. 运用primitive wrapper classes的TYPE语法(Class c1 = Integer.TYPE)
Class class十分特殊,和一般classes一样继承自Object,其实体用于表达Java程序运行时的classes和interfaces,也用来表达enum、array、primitive Java types(boolean, byte, char, short, int, long, float, double)以及关键词void。
当一个class被加载,或当加载器(Class loader)的defineClass()被JVM调用,JVM便自动产生一个Class object。
Java JDK源码中可以看到Class类的构造方法为私有的,并注释为:Constructor, Only the Java Virtual Machine creates Class objects.只有Java 虚拟机才可以创建Class对象。Class类中包含许多native方法,即本地方法,不是用Java来实现的,而是由C或C++来实现的。
Class是Reflection的起源,针对任何您想探勘的Class,唯有先为它产生一个Class object,接下来才能经由后者唤起为数十多个的Reflection APIs。
Java允许我们从多种途径为一个class生成对应的Class object:
1. 运用getClass();(每个class都有此函数)
2. 运用Class.getSuperclass();
3. 运用static method Class.forName();(最常被使用)
4. 运用.class语法(Class str = String.class)
5. 运用primitive wrapper classes的TYPE语法(Class c1 = Integer.TYPE)
相关文章推荐
- 深入剖析Java中的装箱和拆箱
- LeetCode 9 : Palindrome Number (Java)
- Java 容器学习
- java基础之序列化
- 从头认识java-10.7 使用异常的限制汇总
- Java中一些常用的正则表达式
- eclipse下如何关联android-support-v4.jar源码
- 第二个spring冲刺第6天
- Spring事务配置的五种方式
- 在Spring3中,配置DataSource的方法有6种。
- C#和JAVA实现图片和BASE64互转
- 多个Jdk版本(转)
- java 中的异常
- spring 使用classpath方式加载hibernate映射文件
- SpringMVC中的HandlerAdapter
- spring MVC中的异常统一处理
- ajax ssh 整合
- java继承深入解析
- For Java初学者like me而言need to掌握的高级一点的方法
- HashMap(JDK1.8)源码剖析