黑马程序员----基础学习,反射,享元模式17

来源:互联网 发布:生驹里奈 知乎 编辑:程序博客网 时间:2024/04/27 19:37

                           -------android培训java培训、期待与您交流! ----------       


什么是JAVA的反射机制

Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fieldsmethods的所有信息,并可于运行时改变fields内容或唤起methods

Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的classes

换言之,Java可以加载一个运行时才得知名称的class,获得其完整结构。

JAVA的反射机制作用:                                                                        以通过一个类名来探察这个类里面的信息,比如说类的属性名,属性名的修饰符,方法名,方法返回值,方法修饰符等等,反正除了方法体得不到,其他都可以用反射得到;反射还可以生成类的实例,通过这个实例定义属性,调用方法,特别是能调用私有的属性和私有的方法,是不是很强大啊

传智一同学概括反射概念:反射就是把java类中的各种成分映射成相应的java类。

 

 

享元模式的定义为:采用一个共享来避免大量拥有相同内容对象的开销。这种开销中最常见、直观的就是内存的损耗。享元模式以共享的方式高效的支持大量的细粒度对象。

Flyweight模式的有效性很大程度上取决于如何使用它以及在何处使用它,当以下情况都成立时使用Flyweight模式。

        一个应用程序使用了大量的对象,

        完全有余使用了大量的对象,造成了很大的存储开销。

        对象的大多数状态都可以变为外部状态。

        如果删除对象的外部状态那么可以用相对较少的共享对象取代很多组对象。

        

yweight对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。

....

有很多很小的对象,它们有很多相同的东西(属性),把它们定义为同一个对象。那些不同的东西(属性),把它们作为方法的参数,称为外部状态。那些相同的属性称为内部状态。

 

 

 

原创粉丝点击