![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java程序性能优化
Gizing
这个作者很懒,什么都没留下…
展开
-
2.1.4 装饰者模式
动态添加对象功能(通过叠加功能组件),可以有效分离性能组件和功能组件,提升模块的可维护性和复用性主要角色:组件接口,装饰者和被装饰者的接口,定义了被装饰者的核心功能和装饰者需要加强的功能点具体组件(被装饰者),具体的业务逻辑装饰者,持有一个具体的被装饰者对象具体装饰者,实现装饰逻辑,继承自装饰者UML图见书P28例子:组件接口public i原创 2016-09-13 23:21:48 · 147 阅读 · 0 评论 -
《Java程序性能优化》第一章笔记
Java性能调优概述原创 2016-08-09 11:25:11 · 298 阅读 · 2 评论 -
2.1.1 单例模式
一种对象创建模式,确保系统中的一个类只产生一个实例两大好处:1.对于频繁使用的对象,可以减少创建的系统开销2.减轻GC压力,缩短GC停顿时间参与者:单例类,提供单例的工厂使用者,获取并使用单例第一种:首先,单例类必须要有一个private访问级别的构造函数,其次instance变量和getInstance()必须是static的无法对instance原创 2016-08-28 19:54:43 · 364 阅读 · 4 评论 -
2.1.2 代理模式
使用代理对象完成用户请求,屏蔽用户对真实对象的访问本节应用:实现延迟加载,提升性能(只是应用场景的一种),系统启动时初始化代理类,等真正用时再加载真实资源参与者: 主题接口,定义代理类和真实主题的公共对外方法,也是代理类代理真实主题的方法 真实主题,实现业务逻辑的类 代理类,代理和封装真实主题 客户端,使用代理类和主题接口原创 2016-08-28 19:59:51 · 314 阅读 · 2 评论 -
2.1.3 享元模式
以提高性能为目的核心思想:一个系统中存在多个相同的对象,只需共享一份对象的拷贝,而不必为每一次使用都创建新的对象。(复用对象)主要角色:享元工厂:创建具体享元类并维护相同的享元对象,内部实现类似单例模式,请求的对象已存在时直接返回对象,没有则创建(维护一个对象列表)抽象享元:共享对象的业务接口具体享元类:实现抽象享元类,完成具体的逻辑主函数:通过享元工厂获取对象原创 2016-09-05 22:27:18 · 198 阅读 · 0 评论 -
2.1.5 观察者模式
用于事件监听、通知发布等,确保观察者在不使用轮询方式下及时收到相关消息和事件(不然需要另开一个线程不断监听,浪费资源)UML结构图见Page33主题接口依赖于观察者接口主要角色:主题接口,被观察的对象具体主题,实现主题接口,维护一个观察者列表观察者接口,定义观察者的方法,依赖状态改变时由主题接口调用具体观察者,实现观察者接口Example:主题接口原创 2016-09-26 23:28:45 · 172 阅读 · 0 评论 -
2.1.6&2.1.7 Value Object模式和业务代理模式
Value Object模式J2EE中业务信息交互次数过多,影响性能,例如查询订单(Order)信息,来回三次分别查询客户名、商品名和数量Value Object模式提倡将一个对象(如Order)的各个属性进行封装,将封装后的对象在网络中传输,从而减少网络交互次数此对象必须可串行化业务代理模式业务代理模式将一组远程方法调用构成的业务流程,封装在一个位于展示层原创 2016-09-27 21:48:46 · 242 阅读 · 0 评论 -
3.2.2 Map接口
1.HashMapHashtable与HashMap区别: Hashtable大部分方法是同步的,HashMap没有同步 Hashtable不允许key或value为null,HashMap可以 映射算法不同HashMap实现原理 用key做hash算法得到hash值 用hash值和数组长度计算得到数组下标索引 用原创 2016-11-29 18:36:24 · 264 阅读 · 0 评论 -
4.1.1 Future模式
核心思想调用方式为异步,去除了主函数中的等待时间,主函数可去处理其他任务,如图:代码实现 参与者 作用 Main 主函数,调用Client发出请求 Client 返回Data对象,立即返回FutureData,并开启ClientThread线程装配RealData Data 返回数据的接口 FutureData 虚拟数据,构造很快 RealData 真原创 2016-12-07 19:17:49 · 242 阅读 · 0 评论