java提供在运行时识别对象的类和信息,有两种方式:1.RTTI(Run-Time Type Identification)。2.反射机制。

1.先来介绍一下RTTI:(我不知道为什么介绍反射的文章会出现RTTI).

   在运行是,RTTI为何类的相关信息,其中多态就是基于RTTI实现的。即便子类对象向上转型为父类引用,其在运行时仍会被识别为其“真正”的类。

  我的理解就是在对象的内存空间中一定有一块区域标记了他的class类型。

2.反射,不过就是用一个Class类去代表所有的类,通过这个Class类可以获得类的属性,方法,构造器等,总之一切和类相关的东西都可以获得。

      通过这些获得的东西,在java.lang.reflect中定义了,其中包括Field,Method,Constract等,可以再对一个实体进行操作。

额。。。。对我来说java中用到反射的地方就是spring中的代理。

3.代理模式的实现:

  目标对象有实现的接口,有jdk自带的proxy类进行代理。

  目标对象没有实现接口,用cglib进行代理。

posted on 2018-01-18 19:48  rookie111  阅读(103)  评论(0编辑  收藏  举报