《Java程序性能优化》第二章 读书笔记 I
来源:互联网 发布:电脑软件怎么搬家 编辑:程序博客网 时间:2024/06/05 07:31
第二章 设计优化
2.1 善用设计模式
这本书归纳总结了一些经典的与性能有关的设计模式。并没有涵盖所有的设计模式。
- 1.单例模式
使用场景:它可以确保系统中一个类只产生一个实例。
好处:
a.对于频繁使用的对象,可以省略创建对象所花费的时间,这对于重量级对象而言,是非常可观的一笔系统开销。(比如数据库连接)
b.由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间。
- 2.代理模式
使用场景:
a.安全原因。需要屏蔽客户端直接访问真是对象。
b.远程调用。需要使用代理类处理远程方法调用的技术细节。
c.提升系统性能。对真实对象进行封装,从而达到延迟加载的目的。
- 3.享元模式
使用场景:提高性能。如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝。
好处:同单例模式
- 4.装饰者模式
场景:
动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。
在不想增加很多子类的情况下扩展类。
书中对它运行原理的解释:【通过委托机制,复用系统中的各个组件,在运行时,可以将这些功能组件进行叠加,从而构造一个“超级对象“,使用拥有这些组件的功能。而各个子功能模块,被很好地维护在各个组件的相关类中,拥有整洁的系统结构。】这个解释比较抽象,最好结合实际的例子进行讲解,书中的例子也比较好。文本内容的包装,jdk的OutputStream等
好处:
分离功能和性能组件,从而提升模块的可维护性并增加模块的复用性。
- 5.观察者模式
场景:一个对象的行为依赖另一个对象的状态。
好处:如果不适用观察者模式提供的通用结构,而是实现其类似的功能,则只能在另一个线程中不停监听对象所依赖的状态。在一个复杂系统中,可能会因此开启很多线程来实现这一功能,这将使系统的性能产生额外的负担。观察者模式可以在单线程中,使某一对象,及时得zhi自身所依赖的状态的变化。
- 6.Value Object模式
系统的不同层次之间通信的时候,Value Object模式提倡将一个对象的各个属性进行封装,将封装后的对象在网路中传递,从而使系统用户更好的交互模式,并且减少网络通信数据,从而提高系统性能。
- 7.业务代理模式
业务代理模式是对Value Object模式的递进,将一组由远程方法调用构成的业务流程,封装在一个展示层的代理类中。
好处:
业务代理模式将一些业务流程封装在前台系统,为系统性能优化提供了基础平台。在业务代理中,不仅可以复用业务流程,还可以视情况为展示层组件提供缓存等功能,从而减少远程方法调用次数,降低系统压力。
- 《Java程序性能优化》第二章 读书笔记 I
- 《Java程序性能优化》第二章 读书笔记 II
- 【Java程序性能优化】-读书笔记第3章
- Java 程序性能优化 --读书笔记 1
- 读书笔记之Java程序性能优化
- 《JAVA 程序性能优化》读书笔记:木桶原理与性能瓶颈
- Java程序性能优化 读书笔记(九)优化组件:池
- Java程序性能优化 读书笔记(十六)集合访问优化
- java 性能优化读书笔记
- 《Java性能优化...》读书笔记
- java 程序性能优化《第二章》设计优化 2.1善用设计模式 1 单例模式
- java 程序性能优化《第二章》设计优化 2.1善用设计模式 2 代理模式
- c程序性能优化读书笔记
- java性能优化读书笔记之三《程序优化===字符串优化》
- java性能优化读书笔记之三《程序优化===集合优化(list)》
- java性能优化读书笔记之三《程序优化===集合优化(Map)》
- java性能优化读书笔记之三《程序优化===优化集合访问代码》
- [读书笔记]深入理解计算机系统 第6章 优化程序性能
- html标签:超文本标记语言
- res文件夹各目录
- java中FileInputStream与InputStream的available()方法的作用
- java各种版本的新特性,特别是java8
- 考研日记2017/11/22
- 《Java程序性能优化》第二章 读书笔记 I
- spring中的事务管理(一)
- 跨平台开源项目Ngui【简介】
- 关于《C语言程序设计现代方法》第15章例子“文本格式化”的理解
- 冒泡排序
- rnn的一个例子
- Swift数组定义和操作
- 沐枫NOI 2841. 棋盘(2017年普及组3)
- 语句