java
文章平均质量分 64
yanjiu_lj
这个作者很懒,什么都没留下…
展开
-
常用java代理方法
1、jdk proxyjdk proxy是java自带的,不需要依赖其他第三方jar包。但是它只能对接口做代理。示例代码:class ServiceProxy implements InvocationHandler { /** proxy target service */ private Object target; /原创 2015-09-30 10:54:59 · 5212 阅读 · 0 评论 -
状态机模式下的领域模型
当对象的行为取决于它的状态,并且必须在运行时判断状态,做对应操作时,适合使用状态模式为对象设计状态机。以领域模型为例,为领域模型增加状态位图,并提供注册合法状态签转,判断状态签转是否合法的能力。为程序运行时操作提供判断依据。示例代码://领域模型public class DomainModel extends StateGraph { /** 状态位图间隔符 */原创 2015-09-30 16:21:00 · 5821 阅读 · 0 评论 -
线程池最优大小的估算方法实践
线程池的理想大小取决于被提交任务的类型以及所部署系统的特性。线程池应该避免设置的过大或过小,如果线程池过大,大量的线程将在相对很少的CPU和内存资源上发生竞争,这不仅会导致更高的内存使用量,而且还可能耗尽资源。如果线程池过小,那么将导致许多空闲处理器无法执行任务,降低了系统吞吐率。要正确设置线程池的大小,必须分析计算环境、资源预算和任务特性。包括所部署系统的CPU个数、内存大小、任务类型(计算原创 2015-10-02 09:40:45 · 5011 阅读 · 2 评论 -
TOP K+LRU缓存刷新
本地缓存机制常被用来存储系统中变化频率不高的数据,常见的变化频率不高数据有:比如商品配置,可能商家的商品描述信息基本不变化,价格变化也不是很频繁,那可以存在缓存里减少访问数据库。又比如某类计算存在热数据,即某些问题的计算入参在短时间内频繁重,则可以把计算结果缓存起来。设计了类似LRU+TOP K的思路,针对新来的请求先查缓存,若没有实时计算,并把结果添加到缓存,之后对缓存按照请求次数和最近访问原创 2015-09-30 15:04:20 · 4142 阅读 · 0 评论 -
服务上下文建造者模式构造实践
系统服务处理过程通常会有很多透传参数,每次请求实际使用到的参数不尽相同。将透传参数以服务处理上下文的形式存储在Threadlocal中,可以简化代码内部逻辑,避免参数的显示传递。服务处理上下文包含所有需要的参数,通过建造者模式在每次请求处理前只需构造当次需要的参数。public class ServiceProcessContext { /** requestId */ p原创 2015-10-02 12:25:08 · 5499 阅读 · 0 评论