在Jakarta Commons Pool中已经内置定义了个对象池分别是StackObjectPoolGenericObjectPool和SoftReferenceObjectPool
StackObjectPool:它利用javautilStack来保存对象可以为StackObjectPool指定一个初始化大小并且当空间不够时StackObjectPool可以自动增长当无法从该对象池得到可用的对象时它会自动创建新的对象
GenericObjectPool:是一个通用的对象池它可以设定对象池的容量也可以设定在无可用对象的情况下对象池的表现行为(等待或者创建新的对象实例)还可以设置是否进行对象的有效性检查GenericObjectPool有一个复杂的构造函数来定义它的这些行为
GenericObjectPool(
PoolableObjectFactory<T> factory //指定PoolableObjectFactory
int maxActive //能从池中借出的对象的最大数目
byte whenExhaustedAction //指定当对象池耗尽时的行为(等待创建新实例抛异常)
long maxWait //当耗尽行为为等待时最大的等待时间
int maxIdle //最大的空闲对象数
int minIdle //最小的空闲对象数
boolean testOnBorrow //borrowObject()时是否进行有效性验证
boolean testOnReturn // returnObject()时是否进行有效性验证
long timeBetweenEvictionRunsMillis //多少毫秒进行对象清理
int numTestsPerEvictionRun //在进行后台对象清理时每次检查几个对象
long minEvictableIdleTimeMillis //休眠多少时间的对象设置为过期
boolean testWhileIdle //是否对没有过期的对象进行有效性检查
long softMinEvictableIdleTimeMillis
//对象被回收前在池中保持空闲状态的最小时间毫秒数
boolean lifo //是否使用后进先出策略
)
返回目录Java程序性能优化让你的Java程序更快更稳定
编辑推荐
Java程序设计培训视频教程
JEE高级框架实战培训视频教程
JME移动开发实战教学视频
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLEG数据库开发优化指南
[] []