blockcache.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 40 行

JAVA
40
字号
/*
 * $Id: BlockCache.java,v 1.4 2004/01/02 09:16:09 epr Exp $
 */
package org.jnode.fs.ext2.cache;

import java.util.LinkedHashMap;
import java.util.Map;

import org.apache.log4j.Logger;

/**
 * @author Andras Nagy
 */
public class BlockCache extends LinkedHashMap{
	//at most MAX_SIZE blocks fit in the cache
	static final int MAX_SIZE = 50;
	private static final Logger log = Logger.getLogger(BlockCache.class);
	
	public BlockCache(int initialCapacity, float loadFactor) {
		super(initialCapacity, loadFactor, true);
	}
	
	public boolean containsKey(Integer key) {
		boolean result = super.containsKey(key);
		if(result)
			log.debug("CACHE HIT, size:"+size());
		else
			log.debug("CACHE MISS");
		return result;
	}
	
	protected boolean removeEldestEntry(Map.Entry eldest) {
		if(size()>MAX_SIZE) {
			((Block)eldest.getValue()).flush();
			return true;
		} else
			return false;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?