反射的基石--Class
来源:互联网 发布:接吻会传染什么病知乎 编辑:程序博客网 时间:2024/05/01 15:45
1.Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class。
2.Class类的实例对象代表内存里的一份字节码,字节码-->如Person类,先用二进制数表示Person类,也就是
字节码,然后再将这个字节码加载到内存中去,最后用这个字节码创建实例对象。每一个类都有一个字节码
3.得到一个类的字节码有三种:
a ---- 类名.class,如System.class
b ---- 对象.getClass(),例如 new Person().getClass();
c ----- Class.forName("类名")此方法是Class类的静态方法,返回字节码,返回方式有两种:
I这个类的字节码被加载过,已存在于Java虚拟机里(内存里),直接返回;
II这个类还没有被Java虚拟机加载过,先用类加载器去加载,把加载进来的字节码缓存在Java虚拟机里。
例如 Class.forName("java.lang.Date") 应写完整类名,不能只写Date
4.九个预定义Class实例对象
boolean, byte, char, short, int, long, float,double and void
Class cls2 = String.class;
Class cls3 = Class.forName("java.lang.String");
System.out.println(cls1 == cls2);//返回true
System.out.println(cls2 == cls3);//返回true
System.out.println(cls1.isPrimitive());//返回false 判断是否是基本数据类型
System.out.println(int.class.isPrimitive());//返回true
System.out.println(int.class == Integer.class);//返回false
System.out.println(int.class == Integer.TYPE);//返回true
System.out.println(boolean.class == Boolean.TYPE);//返回true
System.out.println(char.class == Character.TYPE);//返回true
System.out.println(byte.class == Byte.TYPE);//返回true
System.out.println(short.class == Short.TYPE);//返回true
System.out.println(long.class == Long.TYPE);//返回true
System.out.println(float.class == Float.TYPE);//返回true
System.out.println(double.class == Double.TYPE);//返回true
System.out.println(void.class == Void.TYPE);//返回true
System.out.println(int[].class.isPrimitive());//返回false
2.Class类的实例对象代表内存里的一份字节码,字节码-->如Person类,先用二进制数表示Person类,也就是
字节码,然后再将这个字节码加载到内存中去,最后用这个字节码创建实例对象。每一个类都有一个字节码
3.得到一个类的字节码有三种:
a ---- 类名.class,如System.class
b ---- 对象.getClass(),例如 new Person().getClass();
c ----- Class.forName("类名")此方法是Class类的静态方法,返回字节码,返回方式有两种:
I这个类的字节码被加载过,已存在于Java虚拟机里(内存里),直接返回;
II这个类还没有被Java虚拟机加载过,先用类加载器去加载,把加载进来的字节码缓存在Java虚拟机里。
例如 Class.forName("java.lang.Date") 应写完整类名,不能只写Date
4.九个预定义Class实例对象
boolean, byte, char, short, int, long, float,double and void
5代码:
String str1 = "abc";
Class cls2 = String.class;
Class cls3 = Class.forName("java.lang.String");
System.out.println(cls1 == cls2);//返回true
System.out.println(cls2 == cls3);//返回true
System.out.println(cls1.isPrimitive());//返回false 判断是否是基本数据类型
System.out.println(int.class.isPrimitive());//返回true
System.out.println(int.class == Integer.class);//返回false
System.out.println(int.class == Integer.TYPE);//返回true
System.out.println(boolean.class == Boolean.TYPE);//返回true
System.out.println(char.class == Character.TYPE);//返回true
System.out.println(byte.class == Byte.TYPE);//返回true
System.out.println(short.class == Short.TYPE);//返回true
System.out.println(long.class == Long.TYPE);//返回true
System.out.println(float.class == Float.TYPE);//返回true
System.out.println(double.class == Double.TYPE);//返回true
System.out.println(void.class == Void.TYPE);//返回true
System.out.println(int[].class.isPrimitive());//返回false
System.out.println(int[].class.isArray());//返回true 判断是否是数组类型
6.反射 --> 反射就是把Java类中的名种成分映射成相应的Java类,
- 反射的基石--Class
- 反射的基石:class类
- 反射的基石->Class类
- 反射的基石Class类
- Class类--反射的基石
- 反射的基石-----Class类的理解
- 黑马程序员——反射类的基石-----Class类
- 黑马程序员——反射的基石 class类
- 黑马程序员-高新技术-反射基石-Class类
- (10) 反射(基石class类、Constructor类、Field类、Method类、数组的反射、HashCode的分析)
- Class 的反射
- 笔记--反射(Reflect)基石之Class类--2011/9/5 10:17
- 黑马程序员____基础加强____反射(框架的基石)
- 程序基石系列之类的声明Class declaration
- Class类,反射的概念
- JAVA的反射 class类
- 反射--Class类的使用
- 反射:Class类、反射概念、类中各成员的反射、反射的应用、数组的反射、框架
- 深入浅出之正则表达式(二)
- hdu1907
- 安装完UBUNTU11.10日历乱码或者出现Invalid UTF-8和GRUB乱码问题解决办法
- 纪念千年一遇的神圣时刻
- ddms - Failed to initialize Monitor Thread: Unable to establish loopback connection
- 反射的基石--Class
- 完全在用户态实现IPSec VPN
- 【AC自动机详解+入门模板】HDU 2222
- SQL Profile介绍
- http://code.google.com/p/zf-open-source-as-utils/
- 什么是持久化(Persistence)
- STL 之multimap
- SEO研究:尝试利用腾讯微博获取流量
- 单板品牌