黑马程序员—高新技术加强之透彻分析反射的基础_Class类
来源:互联网 发布:网络电视电话会议 编辑:程序博客网 时间:2024/05/04 21:54
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ---------
public class 透彻分析反射的基础_Class类 {
/**
*1.java的一个类用于描述一类事物的共性,该类事物有什么属性
*没有什么属性,至于这个属性的值是什么,则是由这个类的实例
*对象来确定的,不同势力对象有不同的属性。java程序中的各个
*java类。他们是否属于同一个事物,是不是可以用一类事物来描
*述这类事物呢?这个雷达名字就是Class。要注意与小写Class关
*键字的区别。Class类描述那些关键字的信息呢?类的名字,累的
*访问属性,雷梭属于的包名,字段名成都列表,方法名的列表
*,等等。学习反射,首先要明白Class这个类。
*/
/*一个类被加载器加载到内存中,占用一片存储空间,这个空间里
* 面的内容就是累的字节码,不同的类字节码是不同,所以它们在
* 内存中的字节码是不同的,这一个个克难攻坚可分为一个个对象
* 来表示,这些对象显然具有相同的类型。
* */
/*
* 如何得到各个字节码对应的对象(Class类型)
* 类名.clsss,例如System.class
* 对象.getClass(),例如,new Data().getClass();
* Class.forName("类名"),例如Class.forName("java.util.Date");
* */
/*九个预定义Class对象:
* 参看Class.isPrimitive方法的帮助。
* int.class==integer.TYPE
* 数组类型的Class实例对象
* Class.isArray();
* 总之,只要是在原程序中出现的类型,都有各自class实例对象。例如:int void。
* */
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);
System.out.println(cls1==cls3);
System.out.println(cls1.isPrimitive());
/*解释:为什么是false
* Class<?> getComponentType()方法是Class中的方法,可以返回表示数组类型的Class。
boolean isPrimitive()用来判断指定的Class类是否为一个基本类型。
例:
String [] arr = new String[10];
String str = "";
System.out.println(arr.getClass()); // 数组的String 类
System.out.println(str.getClass()); // 非数组的String 类
System.out.println(arr.getClass().getComponentType()); // String类
System.out.println(str.getClass().getComponentType()); // 得到null值,因为str不是数组
System.out.println(arr.getClass().getComponentType().isPrimitive()); // 显示false,因为String 不是基本数据类型
如果程序改成:
int [] arr = new int[10];
System.out.println(arr.getClass().getComponentType().isPrimitive()); // 显示true,因为int是基本数据类型
* */
System.out.println("int1"+int.class.isPrimitive());
//System.out.println("int2"+int.class==Integer.class);
//System.out.println("int3"+int.class==Integer.TYPE);
System.out.println("int4"+int[].class.isPrimitive());//不是原始类型。
System.out.println("int5"+int[].class.isArray());//判断数组用isArray()
}
}
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ---------
0 0
- 黑马程序员—高新技术加强之透彻分析反射的基础_Class类
- 透彻分析反射的基础_Class类
- 17 透彻分析反射的基础_Class类
- 张孝祥 java基础加强版--透彻分析反射的基础
- 黑马程序员之基础加强之反射
- 黑马程序员_Java基础加强之反射
- 黑马程序员_java基础加强之反射
- 黑马程序员-JAVA基础加强之反射
- 黑马程序员_基础加强之反射
- 黑马程序员-Java基础加强之反射
- 黑马程序员_基础加强之反射
- 黑马程序员---java之高新技术基础加强篇
- 反射的基础_Class类
- 黑马程序员——java基础加强之反射
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- 黑马程序员——高新技术之 反射
- 黑马程序员——高新技术之反射
- 黑马程序员—JAVA高新技术之反射
- N皇后
- Android开发手记<开发自习助手>
- 创建一个论坛注意事项
- 黑马程序员---基础加强---9反射
- 应用程序无法正常启动0xc000007b
- 黑马程序员—高新技术加强之透彻分析反射的基础_Class类
- The Mathematics of the 3D Rotation Matrix
- Android事件传递机制
- hips算法学习
- php zend framework框架配置(1)
- 黑马程序员_多线程
- 布兰妮新年演唱会上用狗项圈“遛”男友
- 黑马程序员---基础加强---8枚举
- home+work(0-1背包问题)