黑马程序员--05反射的学习
来源:互联网 发布:js dom 添加属性 编辑:程序博客网 时间:2024/04/26 03:53
------- android培训、java培训、期待与您交流! ----------
java类用于描述一类事物的共性,该类事物有什么属性,没有什么属性,至于这个属性的值是什么,则是由这个类的实力对象来确定的,不同的
实力对象有不同的属性值。java程序中的各个java类,他们是否属于同一类事物,是不是可以用一个累来描述这类事物呢?这个类的明智就是Class
不是class。
对应各个类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不on过得,所以他们在内存中的
内容是不同的,这一个个的就on感觉可分别用一个个的对象来表示,这些对象都具有相同的类型。
int.class==Integer.TYPE
Class.isArray()
如:
public class ReflectTest {
public static void main(String[] args) throws Exception{
String str1 = "abc";
Class cls1 = str1.getClass();
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());//isPrimitive()是否是原是类型 结果:false
System.out.println(int.class.isPrimitive());//结果:true
System.out.println(int.class == Integer.class);//结果:false
}
}
反射就是把java类中的各种成分映射成相应的java类。
Constructor类
得到某个类所有的构造方法:
如:Constructor [] constructors=Class.forName("java.lang.String").getConstructors();
得到某一个构造方法:
如:Constructor constructor=Class.forName("java.lang.String").getConstructor(StringBuffer.class);
创建实例对象:
通常方式:String str=new String(new StringBuffer("abc"));
反射方式:String str=(String)constructor.newInstance(new StringBuffer("abc"));
//new StringBuffer(new StringBuffer("abc"))
Constructor constructor1=String.class.getConstructor(StringBuffer.class);
String str2=(String)constructor1.newInstance(new StringBuffer("abc"));
System.out.println(str2);
调用获得的方法是要用到上面的相同类型的实例对象
Class.newInstance()方法
如:String obj=(String)Class.forName("java.lang.String").newInstnce();
该方法内部先得到默认的构造方法,然后用该构造方法创建实例对象。
该方法用到了缓存机制来保存默认构造方法的实例对象。
------- android培训、java培训、期待与您交流! ---------- 详细请查看:http://edu.csdn.net/heima/
- 黑马程序员--05反射的学习
- 黑马程序员---反射的学习
- 黑马程序员 反射学习
- 黑马程序员--反射学习
- 黑马程序员-----反射机制的学习
- 黑马程序员-----反射的学习日志
- 黑马程序员 java 反射的深入学习
- 【黑马程序员】java反射的学习总结
- 黑马程序员-Java的反射学习笔记
- 黑马程序员 反射学习日记
- 黑马程序员---反射学习笔记
- 黑马程序员_java反射学习
- 黑马程序员 反射学习笔记
- 黑马程序员--学习日志--反射
- 黑马程序员学习_反射
- 黑马程序员---反射学习笔记
- 黑马程序员 java反射学习
- 黑马程序员-Java反射学习
- database principle (数据库原理)
- 选择排序
- hdu 4054 Hexadecimal View
- 黑马程序员——文件的切割,与合并
- 22222222222222222222222
- 黑马程序员--05反射的学习
- 基于连接的每IP限速实现
- java方向笔试题1- Java基础题
- 结构之美——字典树
- FTP断点续传
- gcc基本编译命令
- 数据结构 — 红黑树
- java方向笔试题2- 算法与编程
- java.lang.OutOfMemoryError: PermGen space tomcat的处理办法