/**
* 仿照Android池化技术
* @author fgtian
*
*/
public class ObjectCacheTest {
public static class ObjectItem {
private static int sPoolSize = 0;
private static final int MAX_CACHE = 10;
private static final Object sPoolLock = new Object();
private static ObjectItem sPool = null; private ObjectItem mNext = null;
private int mValue; public static ObjectItem obtain() {
synchronized (sPoolLock) {
if (null != sPool) {
ObjectItem item = sPool;
sPool = item.mNext;
item.mNext = null;
--sPoolSize;
return item;
}
}
return new ObjectItem();
} public static ObjectItem obtain(int value) {
synchronized (sPoolLock) {
if (null != sPool) {
ObjectItem item = sPool;
sPool = item.mNext;
item.mNext = null;
--sPoolSize;
item.mValue = value;
return item;
}
}
return new ObjectItem(value);
} public void recycle() {
synchronized (sPoolLock) {
if (sPoolSize < MAX_CACHE) {
mValue = 0;
this.mNext = sPool;
sPool = this; sPoolSize++;
}
}
} public ObjectItem() { } public ObjectItem(int value) {
mValue = value;
} @Override
public String toString() {
return String.valueOf(mValue);
}
} public static final void main(String[] args) {
ObjectItem item1 = ObjectItem.obtain(1);
item1.recycle();
ObjectItem item2 = ObjectItem.obtain(3);
if (item1 == item2) {
System.out.println("YES, USE THE SAME OBJECT");
} else {
System.out.println("ERROR");
}
}
}

最新文章

  1. Windows-mysql5.7安装
  2. CF 468A 24 Game
  3. Sqli-LABS通关笔录-12
  4. BZOJ2400: Spoj 839 Optimal Marks
  5. 写给程序员和UI--Android的切图标准
  6. Java JDBC 驱动 MySQL
  7. Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)
  8. java 伪静态的方法
  9. java获取照片相关属性
  10. Blue Jeans
  11. NOI十连测 第三测 T1
  12. es随想一
  13. ASP.NET Core的身份认证框架IdentityServer4--(1)服务配置
  14. 2017年PHP程序员未来路在何方——韩天峰
  15. SpringMVC Controller接收参数总结
  16. 搭建Hbase完全分布式集群
  17. 自定义标签TLD文件中,rtexprvalue子标签的意思
  18. vsCode快捷键设置
  19. python学习笔记_week14
  20. Properties 使用

热门文章

  1. KDE Plasma 5.8 的 LTS 周期正好与其所采用的 Qt 5.6 的 LTS 周期一致
  2. google analytics是什么(免费的网站流量分析服务:比如分析有多少个人来了你的网站,告诉你怎么样才能在网站上面实现最大收益。)
  3. Vim常用匹配、查找、替换命令总结
  4. [Recompose] Compute Expensive Props Lazily using Recompose
  5. JSON入门之二:org.json的基本用法 分类: C_OHTERS 2014-05-14 11:25 6001人阅读 评论(0) 收藏
  6. ajax上传图片文件
  7. 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(8)枚举、补码
  8. c3p0 xml配置文件模版
  9. C++ 计算任意两个日期之间的天数
  10. 【U205】最大值