脏数据(Out-of-date data),指过时的数据。
如果在您的Java程序中存在脏数据,将或多或少地给软件系统带来一些问题,如:无法实时地应用已经发生改变的配置,软件系统出现一些莫名其妙的、难以重现的、后果严重的错误等等。尽量避免脏数据的存在是非常有价值的。
Fragment 1。 缓存技术的脏数据问题
/**
* A report printer is used to print a report。
*
* @version 1。0 9/9/2003
* @author Bill
*/
public class ReportPrinter
{
/**
* Constructs a ReportPrinter instance。
*/
public ReportPrinter()
{
// do something。。。
}
/**
* Prints a printable。
*
* @param printable the specified printable object
*/
public void print(Printable printable)
{
Graphics g = getGraphics();
g。
setFont(getReportFont(printable。getFont());
printable。print(g);
}
/**
* Returns the corresponding report font of a java font。
*
* @param javaFont the specified java font
* @return the corresponding report font
*/
private Font getReportFont(font javaFont)
{
Font reportFont = fontMap。
get(javaFont);
if(reportFont == null)
{
reportFont = loadFont(javaFont);
fontMap。put(javaFont, reportFont);
}
return reportFont;
}
/**
* Loads the corresponding report font of a java font。
*
* @param javaFont the specified java font
* @param the corresponding report font
*/
protected static Font loadFont(Font javaFont)
{
Font reportFont = null;
// do something。
。。
return reportFont;
}
/**
* The font map(java font->report font)。
*/
private static HashMap fontMap = new HashMap();
}
Fragment 1中,由于装载一个java font所对应的report font开销较大,使用了缓存技术来避免这种开销。
这是一种常见的提高性能的方式,而且在一般情况下运行良好。但是Fragment 1的设计与实现可能是不完备的,因为极有可能一个java font所对应的report font在系统启动之后发生变化,在这种变化发生之后,只有重启软件系统才能装载之,这常常是最终用户的抱怨之一。
更可怕的是,类似的这种脏数据的存在还可能带来其它严重的、无法想象的后果。以上是分析内容,仅供参考,谢谢!。
全部
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93916 人正在系统学习中 相关资源:phantomjs-dirty:PhantomJS的脏兼容键值数据库-其它代码类资源…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!