张孝祥 java基础加强版--透彻分析反射的基础
来源:互联网 发布:网络游戏知乎 编辑:程序博客网 时间:2024/05/16 06:01
反射由jdk1.2发展过来,不是jdk1.5新特性
反射的基石--Class(C是大写)一个类
1.java类用于描述一类事物的共性
2.java程序中的各个Java类,属于同一类事物(都是java中的类),可以用一个类来
描述这个事物,这个类就是Class,要注意与小写class关键字的区别
对比提问:一.众多人--->Person; 众多java类--->Class(得到类的名称.类的访问权限等)
二.Person类代表人,他的实例对象就是张三,李四这样一个个具体的人
Class类代表java类,他的各个类:
1.对应各个类在内存中的字节码,例如,Person类的字节码,ArrayList类的字节码
等等.
2.一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是
类的字节码,不同的类的字节码是不不同的,所以他们在在内存中的内容是不同的,这一个个的空间可分别用
一个个对象来表示
知识点:数据在硬盘上的保存形式是而二机制代码
字节码:原程序中将数据转化成字节码
persion p1=new Person()k;
Class cls1=Date.calss//字节码1;
Class cls2=Person.class//字节码2;
Class.for("java.lang.string");
得到字节码的三种方式:
1.类名.class,例如,System.class
2.对象.getClass() 例如,new Date().getClass()
3.Class.forName("类名"),例如,Class.forName("java.util.Date");
八种基本对象的字节码(byte,short,int,long,float,double,char,boolean)和void.class字节码共计
九种预定义字节码
实例:public class ReflectTest {
反射的基石--Class(C是大写)一个类
1.java类用于描述一类事物的共性
2.java程序中的各个Java类,属于同一类事物(都是java中的类),可以用一个类来
描述这个事物,这个类就是Class,要注意与小写class关键字的区别
对比提问:一.众多人--->Person; 众多java类--->Class(得到类的名称.类的访问权限等)
二.Person类代表人,他的实例对象就是张三,李四这样一个个具体的人
Class类代表java类,他的各个类:
1.对应各个类在内存中的字节码,例如,Person类的字节码,ArrayList类的字节码
等等.
2.一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是
类的字节码,不同的类的字节码是不不同的,所以他们在在内存中的内容是不同的,这一个个的空间可分别用
一个个对象来表示
知识点:数据在硬盘上的保存形式是而二机制代码
字节码:原程序中将数据转化成字节码
persion p1=new Person()k;
Class cls1=Date.calss//字节码1;
Class cls2=Person.class//字节码2;
Class.for("java.lang.string");
得到字节码的三种方式:
1.类名.class,例如,System.class
2.对象.getClass() 例如,new Date().getClass()
3.Class.forName("类名"),例如,Class.forName("java.util.Date");
八种基本对象的字节码(byte,short,int,long,float,double,char,boolean)和void.class字节码共计
九种预定义字节码
实例:public class ReflectTest {
/**
* @param args
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String s="abc";
Class cls1=s.getClass();
Class cls2=String.class;
Class cls3=Class.forName("java.lang.String");
System.out.println(cls1==cls2);
System.out.println(cls1==cls3);
}
}
判断是否是基本类型字节码:isPrimitive();
System.out.println(int.class==Integer.TYPE);TYPE代表包装类型所代表的基本类型字节码,所以为true
数组类型的Class实例对象
Class.isArray();
总之,只要在源程序中出现的类型,都有各自的Class实例对象
- 张孝祥 java基础加强版--透彻分析反射的基础
- (Java基础--反射)透彻分析反射的基础--Class类
- Test3_透彻分析java反射机制的基础概念
- 黑马程序员—高新技术加强之透彻分析反射的基础_Class类
- 透彻分析反射的基础(1)
- 透彻分析反射的基础(2)
- 透彻分析反射的基础_Class类
- 透彻分析反射的基础---class类
- java基础加强--反射
- Java基础加强---反射
- java基础加强--反射
- Java基础加强: 反射
- Java基础加强--反射
- 基础加强-java反射
- JAVA基础加强:反射
- 透彻分析反射的基础——Class
- 17 透彻分析反射的基础_Class类
- Java基础加强反射总结
- listView做成的表格样式二
- String学习笔记
- 超实用的8个Linux命令行性能监测工具
- 以下几点那帮你找到合适的产品经理
- 在linux的sqlplus中如何使用方向键——lrwrap
- 张孝祥 java基础加强版--透彻分析反射的基础
- 产品经理修炼之道读后感
- 一生何求
- linux下usb驱动头文件的usb.h(二)
- CDS错误处理
- C#获取桌面等特殊文件夹的路径
- exact cover dancelink 精确覆盖(多解与一解)
- 权限管理数据库设计
- Visio 方向工程连接 Oracle 10G