今日读书笔记

葛一鸣《Java性能优化》的典型模式介绍

1.单例模式

定义:一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例。
优点:省略创建对象所花费的时间,系统内存的使用频率降低,减轻GC压力。
注意点:单例类必须有一个private构造方法,instance成员变量和getInstance()方法必须是static.
升级版1:引入延迟加载机制。这时getInstance()必须同步的,防止多线程创建多个实例。由于加入同步,耗时。
升级版2:使用内部类来维护单例的实例,效率比较高。
补充:通过反射调用私有构造,生成多个实例。序列化和反序列化可能会破坏单例。




2.代理模式
定义:使用代理对象完成用户请求,屏蔽 用户对真实对象的访问,代理对象需要用户的授权。
用途:用于远程调用的网络代理,考虑安全因素的安全代理,延迟加载。
延迟加载的定义:如果没有当前没有使用组件,则不需要真正的初始化真正地初始化,使用代理对象代理它的位置,真正需要使用的时候,才进行加载。
代理模式用于延迟加载,可以有效地提升系统的启动速度。
动态代理生成的方法:1.JDK自带的动态代理 2.CGLIB3.Javassist或者asm。


3.享元模式
核心思想:一个系统中存在多个相同的对象,只需共享一份对象的拷贝,不必都创建新的对象。
优点:节约时间,GC压力降低。
享元和对象池:享元对象是不可相互替代的,有各自的含义和用途;对象池对象是等价的。


4.装饰模式
核心思想:通过委托机制,复用系统中的各个组件,在运行时,可以将这些功能组件进行叠加。
JDK的典型应用:outputStream,inputStream为核心。(BufferedoutputStream)


5.观察者模式
定义:当一个对象的行为依赖于另一个对象的状态。
JDK实现观察者的模式:java.util.Observable观察者接口,notifyObserver,Observer是应用程序的核心扩展对象,业务逻辑在
update().或者JButton按钮。


6.Value Object
定义:将一个对象的各个属性进行封装,将封装后的对象在网络中传递,使系统使用更好的交互模型,并且减少网咯通信数据,从而提高系统性能。


7.业务代理模式
定义:将一组由远程方法构成的业务流程,封装在一位于展示层的代理类中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值