首页 > 编程知识 正文

java数据库连接池实现,饿汉式单例模式

时间:2023-05-06 01:18:59 阅读:162979 作者:683

介绍:

客体池技术基本原理的核心是两点。 缓存和共享是指对于频繁使用的对象,通过缓存并使其可在后续APP应用程序中重用,而不是在使用后立即释放,从而减少对象的创建和释放次数,提高APP应用程序的性能事实上,由于对象池技术将对象限制为一定数量,因此还可以有效地减少APP应用程序内存开销。

应用:

并不是在任何情况下都适合采用象池技术。 基本上,只有在反复生成对象的操作成为影响性能的重要因素时,才适合采用对象池技术。 通过池化提高性能不重要的情况下,为了维持代码的简洁,最好不要采用对象池化技术。 因为对象池的维护也需要一定的内存。

示例:

publicclasssimplepoolimplementspools.pool {

私有文件对象[ ] m pool;

私有int mpoolsize;

//*

* creates a new实例。

*

* @ parammaxpoolsizethemaxpoolsize。

*

* @ throwsillegalargumentexceptionifthemaxpoolsizeislessthanzero。

*/

publicsimplepool (intmaxpoolsize ) {

if(maxpoolsize=0) {

thrownewillegalargumentexception (themaxpoolsizemustbe0);

}

mPool=new Object[maxPoolSize];

}

@Override

@suppresswarnings('unchecked ' ) )。

public T acquire (

if(mpoolsize0) (

finalintlastpooledindex=mpoolsize-1;

tinstance=(t ) mPool[lastPooledIndex];

mPool[lastPooledIndex]=null;

moolsize----;

返回实例;

}

返回空值;

}

@Override

publicbooleanrelease(tinstance )

if (isin pool (实例) ) }

thrownewillegalstateexception (' alreadyinthepool!' );

}

mpoolsizempool.length (if ) {

mPool[mPoolSize]=instance;

mPoolSize;

返回真;

}

返回假;

}

privatebooleanisinpool (t instance ) {

for(intI=0; i mPoolSize; I ) {

if(mpool[I]==instance ) {

返回真;

}

}

返回假;

}

}

使用方法:

staticsimplepoolsimplepool=newsimplepool (5;

publicstaticvoidmain (string [ ] args ) {

for(intI=0; i5; I ) {

pointpoint=newpoint(I,i 1 );

simplepool.release(point;

}

for(intj=0; j10; j ) {

Point point=(Point ) simplePool.acquire (;

if (重点!=null ) {

system.out.print(point.x ',' point.y );

}

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。