Thinking In Java 学习笔记 14.类型信息

RTTI 运行时类型信息使得你可以在程序运行时发现和使用类型信息。
多态,通过动态绑定,非让代码只操纵对基类的引用(面向对象编程的基本特性)
传统的类型转换
代表对象类型的Class对象
关键字instanceof
每个类都有一个class对象,所有类都是在对其第一次使用时,动态加载到JVM(中的类加载器)中的
Class.forName("class1"),获得对class对象的引用
如果已经有了一个该类型对象,可以用getClass()方法
类字面常量 用于生成对Class对象的引用 Class1.class(不会自动初始化该class对象)为了使用类需要 加载——链接——初始化
Class<?> 通配符?,表示任何事物

反射 ,运行时的类信息 反射
反射提供了一种机制——用来检查可用的方法,并返回方法名
RMI 远程方法调用 允许一个Java程序将对象分布到多台机器上

动态代理
代理 是基本的 设计模式 之一,它是你为了提供额外的或不同的操作,而插入的用来代替“实际”对象的对象。
设计模式的关键就是封装修改
通过调用静态方法Proxy.newProxyInstance() 可以创建动态代理,这个方法需要得到一个类加载器,一个你希望该代理实现的接口列表,以及InvocationHandler接口的一个实现。动态代理可以将所有调用重定向到调用处理器。
通常,你会执行被代理的操作,然后使用Method.invoke()将请求转发给被代理对象,并传入必须的参数。

空对象
RTTI允许通过匿名基类的引用来发现类型信息。
面向对象语言的目的是让我们尽可能使用多态机制,只在必需时使用RTTI

猜你喜欢

转载自blog.csdn.net/jjj1299894209/article/details/80907758
今日推荐