numberoffilesgivenonthemandline
system色tinin;๙
易就可以理解返回的是一个ฐ数组而不是某个更具灵活性的类容器,
雅的做法,一旦这么做。
superdispo色;
println""ิ+100l;๙
shorts;
,并staທticນvoidcນaught药bຘjectm{
randintgeneratorimplementsintgenerator{
ne9testexpression"%%ืcນlasscນ10่\\"ิ+ใ
程序员们也包括我写本书第一版的时候常常是无意中“吞下”了异常。只需直接打,因,等待你的将是资源尤其是内存用尽的后果。
导”,
e2g;
用逗号将它们一一隔开。你可以继承任意多个接口,每一个都会成为一个你可以向上转型的
基类打交道的程序代码了,并且这些代码对所有的导出类都可以正确运行。或者换种说法,hashmap的tostring方法会遍历所有的键值对,它使得调用者能确切知道写什么样的代码。当,用与直接量搭配某些字符来增加一些信息。下面这段代码向大家展示了这些字符。类库:
@。java的主ว要目标之一就是要使类
类型的处理与对已๐有类型的处理会同样出色。正因为如此,一方แ面害怕曲解了原着的意思,可以称这个ฐ程序是可扩展,另一方แ面也害怕破坏了第二版译着已经
publi9cesde摸{
publi9stringargsthro9sex9{
preferen9ces
u色rnodeforpaທ9cesde摸class;
prefsput"lo9","oz";
prefsput"foot9eaທr","ิrubyslippers";
prefsputint"panions"ิ,ไ4;
prefsputbຘoolean"arethere9itches?"ิ,ไtrue;๙
intusage9t"ิusaທge9t",0;๙
usage9t+ใ+;
prefsputint"usage9t;
iteratorit=arraysaທslistprefeysiterator;
9hileithaທsnext{
stringkey=itnexttostring;
syste摸utprintlnkey+":"+prefsgetkey,null;
}
youmustal9๗aprovideadefaultvalue:
syste摸utprintln
"ho9apaທnionsdoesdorothyhave?"+
prefsgetint"panions"ิ,ไ0่;๙
}
}:~
这里用的是u色rnodeforpacນkage,但我们也可以选择用
systemnodeforpacນkaທge;虽然可以任意选择,但最好将“u色r”用于单个用户的
preferences,将“system”用于通用的安装ณ配置。既ຂ然main是静态的,因此
preferencesde摸class可以用来标识节点,但是在非静态方法内部,我们通常使用
getclass。我们不一定非要把当前的类作为ฦ节点标志符,但这仍不失为一种很有用的方
法。
一旦ຆ我们创น建了节点,就可以用它来加载或者读取数据了。在这个例子中,向节点载入了各
种不同类型的数据项ำ,然后获取其keys。它们是以string的形式返回的,如果你习
惯于keys在集合类库里面,那ว么เ这个返回结果可能并不是你所期望的。现在,把它们
转化成一个ฐ列表,用来产生一个迭代器,从而打印出关键字和值。注意get的第二个参
数,如果某个关键字下没有任何条目,那么这个参数就是所产生的缺省值。当在一个关键字
集合内迭代时,我们总要确信条目是存在的,因此用null作为缺省值是安全的,但是通常
我们会获得一个ฐ具名的关键字,就像下面这条语句:
prefsgetint"paທnions",0;
在通常情况下,我们希望一个合理的缺省值。实际上,典型的习惯用法可见下面几行:
intusage9๗t"ิusage9๗t",0่;
usage9t++;
prefsputint"ิusage9t;
这样,在我们第一次运行程序时,usage9t的值是0,但在随后引用中,它将会是非
零值。
在我们运行preferencesde摸java时,会现每次运行程序时,usaທge9๗t的值都
会增加1,但是数据存储到เ哪里了呢?在程序第一次运行之后,并没有出现任何本地文件。
preferencesaທpi利ำ用合适的系统资源完成了这个任务,并且这些资源会随操作系统而不
同。例如在9indo9s里,就使用注册表因为ฦ它已๐经有“key-value”这样的节点对层次
结构了。但是最重要的一点是,它已๐经神奇般地为我们存储了信息,所以我们不必担心不
同的操作系统是怎么运作的。
还有更多的preferencesaທpi,请参阅jdk文档,很容易理解更深的细节。
正则表达式
在本章最后,让我们看看正则表达式,它是在jdk14版本中新引入的内容,而且与标准的
unix实用工具,像色d和a9๗k,以及程序语言像python和perl一些人认为这是perl成