
设计优化
mojp812
这个作者很懒,什么都没留下…
展开
-
小知识点-第一讲
大家都知道 单例模式,平时开发中最常见的设计模式之一。它是一种对象创建模式,确保系统中一个类只有一个实例。好处: 1 对于频繁使用的对象,可以省略创建对象所花费的时间。 2 new 操作的次数减少,对系统内存的使用频率也会降低,减轻gc压力。 常用的方式无非两种: 1 种加载类时初始化单例类,另一种采用同步机制,判断是否已经初始化,没有则进行初始化否则放回单例类对象,...原创 2013-03-18 22:50:26 · 92 阅读 · 0 评论 -
小知识点-第二讲
代理模式也是我们在开发中常用的设计模式。它使代理对象完成用户请求,屏蔽用户直接对真实对象的访问。 使用代理模式意图很多:安全原因(避免真实对象直接访问),为了提升性能,对真实对象进行封装,达到延迟加载的目的。等等 延迟加载思想:如果当前组件没有被使用,则不需要真正的初始化它,使用一个代理对象替代它原来的位置,只要真正需要使用的时候才进行加载。 将代理模式用于实现延迟加载,可以有...原创 2013-03-19 06:41:40 · 89 阅读 · 0 评论 -
小知识点-第三讲
享元模式:利用享元模式进行对象共享,从而提升系统性能(空间开销和创建创建开销)。在开发的过程中也经常使用此模式。 原理: 当一个应用中使用了大量的对象,这些对象造成了很大的存储开销,而对象的大部分状态或参数都是相同(内部状态)的时候,可以考虑使用享元模式,使用享元模式可以是这些对象引用都共享相同的实例,降低存储开销,而对象之间的不同的状态参数(外部状态)则使用外部参数传入来实现。...原创 2013-03-20 08:46:59 · 111 阅读 · 0 评论 -
小知识点-第四讲
装饰模式:它拥有一个设计非常巧妙的结构,他可以动态添加对象功能,通过委托机制复用组件功能 在运行时 将这些功能组件进行叠加,从而成为一个“超级对象”,使之拥有所有的这些组件的功能 这样有效的分离(性能组件、扩展功能组件)和功能组件,从而升级模块的可维护性和增加模块的复用性。 jdk中 outputstream 和 inputstream 类族的实现是装饰模式的经典应用。 ...原创 2013-03-22 06:40:37 · 112 阅读 · 0 评论 -
小知识点-第五讲
今天说缓存 缓存是一块为提升系统性能开发的内存空间。主要作用是暂存数 据处理的结果,并提供下次访问使用。很多场合,数据的处理或数据获取都比较耗时耗资源,频繁的访问处理等有可能会耗尽cpu资源,因此采用缓存,将结果缓存起来,当其他线程或者客户端访问时,直接将结果 从缓存中取出返回。以此来提高系统的响应时间。 最简单的实现缓存:使用hashmap对象,这样做有一些问题,如何清理无效的...原创 2013-03-24 06:56:47 · 109 阅读 · 0 评论 -
小知识点-第六讲
引用类型 java中提供了4个级别的引用类型:强引用,软引用,弱引用,虚引用。 强引用:可以直接访问目标对象,强引用所指对象在任何时候都不会被系统回收,jvm宁愿跑出oom异常。(FinalReference) 软引用:一个持有软引用的对象,不会很快被jvm回收,jvm会根据当前堆的使用情况来判断何时回收,当堆使用率临近閥值时,才会回收软引用。软引用可以用于实现对内存敏感的c...原创 2013-03-26 06:34:25 · 103 阅读 · 0 评论 -
小知识点-第七讲
多线程常用设计----Future模式 通过异步调用方式:服务程序不等数据处理完成便立刻返回给客户端一个伪装的数据,客户端拿到这个结果后,不急于进行处理,而去调用了其他的业务处理逻辑,充分利用等待时间,处理完其他的业务逻辑之后,在处理返回结果比较慢的future数据进行处理。整个过程调用中不存在无谓的等待,从而提高了系统的响应速度。 这个在android手机开发中太常用了。 ...原创 2013-04-19 06:25:22 · 118 阅读 · 0 评论 -
前端优化
web前端设计优化准则: 1 减少http请求次数,考虑:css,js,图片,,, 2 采用CDN 3 针对css,js,图片 进行缓存,添加Expires 头 4 对 css js 进行gzip压缩 5将css 放置顶部(head) 6 将js放置底部 7 对于互联网应用尽量javascript 和css 采用外部文件 8 精简...原创 2013-07-16 16:49:08 · 87 阅读 · 0 评论