java 脏数据_Java程序的脏数据问题是什么?

脏数据(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在系统启动之后发生变化,在这种变化发生之后,只有重启软件系统才能装载之,这常常是最终用户的抱怨之一。

更可怕的是,类似的这种脏数据的存在还可能带来其它严重的、无法想象的后果。以上是分析内容,仅供参考,谢谢!。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值