黑马程序员——反射基础
来源:互联网 发布:淘宝网页制作教程 编辑:程序博客网 时间:2024/06/15 05:01
程序运行时需要字节码文件,当用到一个类的时候就会加载它的字节码到内存中去,所有的字节码对象都属于Class这个类型
得到字节码对象有三种方式
第一种
可以用Class来得到该类的字节码对象
Class cl = Class.forName("类的全名(前面包括包名)")
第二种
直接用类名.class得到
Class cl = String.class
第三种
当该类有了实例对象时
String s = new String();
Class cl = s.getClass()
经常使用的是第一种方式,因为用反射的时候在程序运行时还不知道类的名字
九个预定义Class对象
它们是八大基本数据类型加一个void类型
它们都有自己的字节码对象
程序中每个类在内存中都只有一份字节码对象
public class Test {public static void main(String[] args) throws Exception{String s = new String();Class c1 = s.getClass();Class c2 = String.class;Class c3 = Class.forName("java.lang.String");System.out.println(c1 == c2);System.out.println(c1 == c3);}}
结果:
true
true
无论那种方法得到的但它们都是同一份字节码对象
Class还有一个可以判定基本数据类型的方法isPrimitive()
public class Test {public static void main(String[] args) throws Exception{String s = new String();Class c1 = s.getClass();Class c2 = int.class;System.out.println(c1.isPrimitive());System.out.println(c2.isPrimitive());}}
结果:
false
true
0 0
- 黑马程序员——基础加强反射
- 黑马程序员——反射基础
- 黑马程序员——java基础---反射
- 黑马程序员——Java基础---反射
- 黑马程序员——Java基础--- 反射
- 黑马程序员——JAVA基础 反射
- 黑马程序员——反射基础详解
- 黑马程序员——Java基础---反射
- 黑马程序员——Java基础---反射
- 黑马程序员——Java基础---反射
- 黑马程序员——Java基础---反射
- 黑马程序员——Java基础---反射
- 黑马程序员——java基础---反射
- 黑马程序员——Java基础---反射
- 黑马程序员——JAVA基础------反射
- 黑马程序员——JAVA基础---反射
- 黑马程序员—JAVA基础—反射
- 黑马程序员——Java基础---反射
- C# listView增删操作
- java多线程(三)
- java泛型学习和实践(1)
- Yocto Study
- GetWindowLong
- 黑马程序员——反射基础
- centos 6.5下搭建hhvm+nginx环境
- ios开发
- Eclipse用svn管理Android项目问题
- hdu 2594 Simpsons’ Hidden Talents
- Web系统大规模并发——电商秒杀与抢购
- tcp-ip Link Layer
- 大数据时代数据库混合部署方案探究
- Hibernate的merge()方法