美文网首页
8 反射00

8 反射00

作者: 一枝妖孽 | 来源:发表于2018-06-10 21:20 被阅读0次

1 编译时 vs 运行时

编译时:将Java代码编译成.class文件的过程【只涉及纠正我们的语法正确与否,不涉及运行时,不牵扯内存】
运行时:就是Java虚拟机执行.class文件的过程【肯定会用在内存调用】

1、编译时类型和运行时类型
编译时类型:编译时类型由声明该变量时使用的类型决定
运行时类型:运行时类型由实际赋给该变量的对象决定
Animal animal =new Dog();

2、动态绑定:调用引用实例的方法
1)在编译时,是调用声明类型的成员方法(多态的实现原理),也就是所谓的编译时类型的方法
2)到了运行时,调用的是实际的类型的成员方法,也就是所谓的运行时类型的方法
3)【对于调用引用实例的成员变量】,无论是编译时还是运行时,均是调用编译时类型的成员变量

2 什么是反射

在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。

正常情况下,我们运行的所有的程序在编译期时候就已经把那个类被加载了。 Java的反射机制是在编译时并不确定是哪个类被加载了,而是在程序运行的时候才加载。使用的是在编译期并不知道的类。这样的编译特点就是java反射。

静态编译:在编译时确定类型,绑定对象,即通过。
动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,降低类之间的藕合性。

3 class类

.class文件
Class对象,表示这个类的类型信息

4 反射的运用

方式1【object.getClass();】
方式2【Class.forName("className");】
方式3【类名.class】

使用场景1:获取包名,获取类名
使用场景2:验证所有的类都是Class类的实例
使用场景3:通过反射创建类对象
使用场景4:通过反射得到一个类的构造函数,并实现创建带参实例对象
使用场景5:通过Java反射机制调用类的方法

5 Android中反射的运用

1)通过原始的Java反射机制的方式调用资源
2)Activity的启动过程中Activity对象的创建

相关文章

  • 8 反射00

    1 编译时 vs 运行时 编译时:将Java代码编译成.class文件的过程【只涉及纠正我们的语法正确与否,不涉及...

  • 晨间日记

    7:00~8:00 建筑经济学 8:00~8:30 吃早饭 8:30~10:00 英语 10:00~12:00 蒸...

  • 日常计划

    6:00 ~ 7:00 读书 7:00 ~ 8:00 洗漱 8:00 ~ 8:45 吃饭、去公司 9:00 ~ 1...

  • 四月的计划

    清晨6:00—7:00 瑜伽 8:00—8:20晨读 下午6:00—7:00跑步 8:00—10:30公考 10:...

  • 时间管理者12

    6:00――7:00 背书 7:00――8:00 洗刷、吃饭、出门 8:00――9:00 背书 9:00――...

  • 6.23

    7:00-8:00整理房间 听英语 8:00-8:30背诵英语 8:30洗衣 9:00-10:00英语 12:30...

  • 每日时刻表!

    上午 7:00-8:00晨读 8:00-8:30早饭 下午 17:00-18:00晚饭 18:30-20:00散步...

  • 周末计划

    6:00~7:00玩 7:00~7:50读幼学琼林、画画 8:00~8:30早餐 8:30~9:00玩 9:00~...

  • 时间清单——2019/07/18

    起床 7:00 早餐 7:00--8:00 英语趣配音 8:00--8:40 葫芦丝《草原美》 9:00-...

  • 2019-07-26

    8:00 ——————————起床 8:00~8:30————————洗漱、早餐 8:30~10:35——————...

网友评论

      本文标题:8 反射00

      本文链接:https://www.haomeiwen.com/subject/mbdfeftx.html