Java反射机制(1)
2015-11-02 21:09
357 查看
Java程序中的各个Java类属于同一类事物,描述这一类事物的Java类名就是Class。
Class class1;中class1就是一份对应相关类型的字节码;
获取该份字节码的方式有以下三种(下面就以String为例子来作说明):
方式一: Class cls1 = String.class
方式二:String str1 = new String();//先获取当前String的对像
Class cls2 = str1.getClass();//根据当前String的对象调用该对象的特有的获取String字节码的方法.getClass()获取一份String的字节码,当然,方式一和方式二获取的字节码都是同一份字节码,都是String的字节码
方式三:Class cls3 = Class.forName("java.lang.String");//首先去内存中搜寻有没有String这份字节码,如果没有,那么此时重新加载一份到Java虚拟机中。
以上三种方式获取的都是同一份String 的字节码,所以此时cls1 ==cls2 为true,另外的cls2==cls3也为true
另外的几个基本类型获取字节码的方式可以这样,如下:
Class cls = Integer.TYPE;
Class cls1 = Byte.TYPE;
Class cls2 = Long.TYPE;
Class cls3 = Short.TYPE;
Class cls4 = Double.TYPE;
Class cls5 = Boolean.TYPE;
Class cls6 = Character.TYPE;
Class cls7 = Float.TYPE;
Class cls8 = Void.TYPE;
另外的判断是否为基本类型的字节码,可以通过这样的方式去判断:
例如:int.class.isPrimitive();此时返回的应该是true,int是一个基本类型
判断一个字节码是否为数组的字节码的方式可以是这样:
例如:int[].class.isArray(); 其他的判断的说明可以参见API
Class class1;中class1就是一份对应相关类型的字节码;
获取该份字节码的方式有以下三种(下面就以String为例子来作说明):
方式一: Class cls1 = String.class
方式二:String str1 = new String();//先获取当前String的对像
Class cls2 = str1.getClass();//根据当前String的对象调用该对象的特有的获取String字节码的方法.getClass()获取一份String的字节码,当然,方式一和方式二获取的字节码都是同一份字节码,都是String的字节码
方式三:Class cls3 = Class.forName("java.lang.String");//首先去内存中搜寻有没有String这份字节码,如果没有,那么此时重新加载一份到Java虚拟机中。
以上三种方式获取的都是同一份String 的字节码,所以此时cls1 ==cls2 为true,另外的cls2==cls3也为true
另外的几个基本类型获取字节码的方式可以这样,如下:
Class cls = Integer.TYPE;
Class cls1 = Byte.TYPE;
Class cls2 = Long.TYPE;
Class cls3 = Short.TYPE;
Class cls4 = Double.TYPE;
Class cls5 = Boolean.TYPE;
Class cls6 = Character.TYPE;
Class cls7 = Float.TYPE;
Class cls8 = Void.TYPE;
另外的判断是否为基本类型的字节码,可以通过这样的方式去判断:
例如:int.class.isPrimitive();此时返回的应该是true,int是一个基本类型
判断一个字节码是否为数组的字节码的方式可以是这样:
例如:int[].class.isArray(); 其他的判断的说明可以参见API
相关文章推荐
- java随机生成十个数
- eclipse 安装egit 成功后Team中没有显示
- Struts2返回JSON对象的方法总结
- 在spring的init-method指定的方法之前做一些事情要用BeanPostProcessor
- java char基本数据类型
- java学习笔记(1)-----关于interface
- eclipse scm url下拉为空
- java虚拟机的性能监控工具的介绍以及指令的含义
- cxf+spring发布webservice和调用
- Java基础之面向对象思想
- java 偏执却管用的10条Java编程技巧
- JAVA三星题之playing a TicTacToe game
- spring 自定义bean初始化及析构方法
- JAVA相关基础知识
- JAVA DATE解析(时间戳解析为固定格式)
- java方法创建
- Java基础之查找文件名&删除文件夹和文件
- Java 中泛型的全面解析
- java String的使用
- java---表、栈和队列