??xml version="1.0" encoding="utf-8" standalone="yes"?>九色porny丨国产精品,91官网在线观看,蜜月aⅴ免费一区二区三区http://www.aygfsteel.com/jeff-lau/谁给我一滴水Q?我便回报他整个大?/description>zh-cnFri, 16 May 2025 23:58:11 GMTFri, 16 May 2025 23:58:11 GMT60XHTML 搜神?/title><link>http://www.aygfsteel.com/jeff-lau/archive/2008/01/18/176144.html</link><dc:creator>Jeff Lau</dc:creator><author>Jeff Lau</author><pubDate>Fri, 18 Jan 2008 03:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/jeff-lau/archive/2008/01/18/176144.html</guid><wfw:comment>http://www.aygfsteel.com/jeff-lau/comments/176144.html</wfw:comment><comments>http://www.aygfsteel.com/jeff-lau/archive/2008/01/18/176144.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jeff-lau/comments/commentRss/176144.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jeff-lau/services/trackbacks/176144.html</trackback:ping><description><![CDATA[<div class="wmqeeuq" id="content"> <p class="red">每个人对时候都有些怀늚东西Q我也不例外。现在每当我刮胡子的时候,怀念小时候,L的花白胡子刺在我q嫩的脸上痒痒的感觉。更怀念在?-4岁的一D|_那时候每天睡觉前Q爸爔R会给我讲一D|事,其是神话故事。讲盘古开天地Q讲奛_造hQ一直讲到西游记。我希望来也会在我孩子每天睡觉前,讲故事给他听。只可惜我现在连x友都没有Q有意?只限x?L下联pL式?/p> <p class="red">在我M后,我才知道爸爸l我讲的很多话故事Q都是来自一本书Q这本书叫做《搜记》。在q里Q我也讲个关于XHTML的神话故事,所以就取名叫《XHTML搜神记》。如果你的孩子要学XHTML的话Q你也可以把q个故事讲给他听。首先向各位介绍故事里的人物和环境?/p> <ul> <li>计算Z? <li>SGML奛_ - 奛_U的人物 <li>HTML书神 - SGML奛_造的W一物Q书? <li>XML万能之神 - SGML奛_造的W二个神物,万能之神 <li>XHTML女神 - HTML书神和XML万能之神的女? <li>InternexQv源地国 <li>MathML - XML万能之神的一个数学家的化w? <li>Microsoft帝国Q现d王Bill Gates <li>Mac共和? <li>Unix王国 <li>Linux联盟 <li>IE舞台 - HTML书神的主要表演舞? <li>IE3、NN3原始部落 <li>Netscape文明古国 </li></ul> <p>1989q_计算Z界的Internetx才刚刚解,那时候计机世界Z的要求还很简单,只要有个说书的,够了。于是SGML奛_Q就在欧z粒子物理实验室依照自己的原型,做了一个简单版本,取名为HTML。这个HTML的主要职责就是说书。所以称为HTML书神。ؓ什么这么称呼呢?你看HTML中的标签q道了Q都是些H1~H6标题QPD落QIMG插图之类的东西,q些都只是增加说书过E中的情而已。HTML书神通过Internetq条q光速的xQ几乎走遍了整个计算Z界。虽然在Internetx中走动的q有FTPQEMail{其他神Q但他们的q远q不及HTML书神的多?/p> <p>HTML书神也造就了像Netscapeq样的一代文明古国,Netscape最l被Microsoft帝国打垮了,现已l没落。但世界上那里有强权Q那里就有斗争。像FIREFOXq样的第三世界现正在崛v。HTML女神使计机世界发展壮大Q她自己也变得也来强大,说书的本领也来高QHTML女神现已l能播放音乐、电影。也来多的出版商、娱乐公司来找HTML女神Q像BBS出版商、门L站出版商和音频视频娱乐公叔R找上了HTML女神QHTML女神好像Ҏ有的来者不拒。HTML女神的责M来大QHTML女神有点不堪重负?/p> <p>在HTML女神有点不堪重负的时侯,SGML奛_造了一个更强大的神QXML万能之神。XML万能之神被鼓吹的能描q真实世界上的万物。MathML是XML万能之神的一个数学家的化w,也许来会有XML万能之神q会化n为CookML厨神、MusicML音乐之神{等?/p> <p>HTML女神qxqhQ但功能有限QXML万能之神虽然法无比Q但难以掌控。ؓ了结合这两者的优点Q得C个他们两个的优良品种Q在W3Cq个媒婆和接生婆的帮助下QXHTML女神Z了。XHTML女神和她妈妈像极了。先写到q里。祝愿XHTML女神一路好走?/p> <p><strong>作者云Q这是初E,我会完善q个故事Qƈ有待大家的批评和指正。大家有什么意见,可以通过评论、或者发电子邮gl我。在后箋的版本,我会增加一个感谢列表,感谢所有提q意见的人,其意见中肯的。又重大贡献的甚臛_以加入到作者列表中?/strong></p> <p>要完善的列表</p> <ul> <li>览器对HTML和XHTML的支? <li>CSS和HTML、XHTML的关p? <li>Javascript和HTML、XHTML的关p? <li>览器大? <li>RIA的应?</li></ul></div><img src ="http://www.aygfsteel.com/jeff-lau/aggbug/176144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jeff-lau/" target="_blank">Jeff Lau</a> 2008-01-18 11:26 <a href="http://www.aygfsteel.com/jeff-lau/archive/2008/01/18/176144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>长度单位http://www.aygfsteel.com/jeff-lau/archive/2008/01/17/176064.htmlJeff LauJeff LauThu, 17 Jan 2008 13:15:00 GMThttp://www.aygfsteel.com/jeff-lau/archive/2008/01/17/176064.htmlhttp://www.aygfsteel.com/jeff-lau/comments/176064.htmlhttp://www.aygfsteel.com/jeff-lau/archive/2008/01/17/176064.html#Feedback0http://www.aygfsteel.com/jeff-lau/comments/commentRss/176064.htmlhttp://www.aygfsteel.com/jeff-lau/services/trackbacks/176064.html

长度单位l常用来表示字体大小?/p>

长度单位有两U?/p>

  • l对长度
  • 相对长度

l对长度是不管在那里,用尺子量出来都一L。绝寚w度不受字号和屏幕分L率的影响。在Web中有以下的表C?/p>

  • in 英寸?1 in = 25.4 mm
  • cm 厘米? cm = 10 mm
  • mm 毫米?
  • pt ?1pt = 1/72 in
  • pc picas?1 pc = 1/6 in? pc = 12pt

相对单位指定一个与另一个值成比例的倹{这个比例由Web的环境指定。与分L率有关的相对长度单位?/p>

  • px 像素

在我q台19in的LCD昄器上Q分辨率?280*1024。所以我现在看到?1 in = ? px

与字体有关的相对长度单位?/p>

  • em 字体中M的宽?
  • ex 字体中x的宽度,q是X的宽度?

与字体有关的相对长度单位q有

  • 预定义尺寸?strong>推荐在body中将基本字号设ؓ一个预定义的尺寸?medium为基|变小减M个因敎ͼ变大增加一个因敎ͼ{等。CSS2规范定义的比例因Cؓ1.2Q这个g可能依浏览器而变化?
    xx-small x-small small medium large x-large xx-larger
  • 相对与父元素的字号大?
    • smaller
    • larger
    • xx%

长度单位讑֮规范

  • 讄内容的根块,如body的字体大ؓsamll?
  • 其他非常规字体的大小设ؓ癑ֈ比?

在长度值前面可加上+?受这个很用到?/p>

Jeff Lau 2008-01-17 21:15 发表评论
]]>
XHTML中的文本模块http://www.aygfsteel.com/jeff-lau/archive/2008/01/16/175772.htmlJeff LauJeff LauWed, 16 Jan 2008 12:40:00 GMThttp://www.aygfsteel.com/jeff-lau/archive/2008/01/16/175772.htmlhttp://www.aygfsteel.com/jeff-lau/comments/175772.htmlhttp://www.aygfsteel.com/jeff-lau/archive/2008/01/16/175772.html#Feedback2http://www.aygfsteel.com/jeff-lau/comments/commentRss/175772.htmlhttp://www.aygfsteel.com/jeff-lau/services/trackbacks/175772.html文本模块

  • 标题 h1~h6
  • D落 p pre br
  • 引文 blockquote q cite
  • 语气 strong em
  • ~写 abbr acronym
  • 地址 address
  • E序相关 code dfn var kbd samp
  • 逻辑?div span

文章的各章各节的标题应该用h1~h6依次表示。文章的章节层次最好不要过多,复杂一点的文章有个3?层就可以了,也就是说Q用h1~h4也就行了Qh5和h6很少用到。那正文标题Q用什么表C?我个为可以用<p class="caption">TEXT CAPTION</p>来表C正文标题。章节在HTML中不会自动编P需要手工编h通过其他E序来完成。有以下几种

  • 手工~写章节的编受维护v来比较麻烦,其在插入或删除章节的时候?
  • 用像word的这L文字~辑器,辅助完成~号。但word会在html文档中加入很多垃圾信息,q且不符合XHTML规范?
  • ׃XHTML文能像XML一栯处理Q因此可以自q写一个XHTML处理E序Q或利用别h~写好的处理E序Q像~译源代码一P从一个无~号的XHTML文中,重新输出一个有~号XHML文。这个XHTML处理E序要能批处理。能处理某个目录里的所有XHTML文档、或处理匚w某个命名规定的XHTML文档、或只处理XHTML文中class="auto"的标题?
  • 用JavascriptQ完成XHTML文档的自动编受?

内容在逻辑相关的一个小块,是D落?最常用的段落标{ְ?strong> p。pre是预先设定格式的D落Q?lt;pre> = <p xml:space="preserve">。br表示一个换行?/p>

HTML把下列列表中的字W看成空白字W。在一般情况下Q所有连l的I白字符只显CZؓ一个空根{这?dfn>I白折叠。元素的xml:space属性可以设|是否进行空白折叠。xml:space的属性于有两个:default或preserve。default表示q行I白折叠Qpreserver表示不进行空白折叠。除了pre元素外,所有元素的默认值都是default?/p>

  • I格 &#x0020;
  • TAB &#x0009;
  • q纸W?&#x000C;
  • 0宽度I格 &#x200B;

HTML按下列的方式理换行?/p>

  • 要强制换行,?lt;br />
  • 按单词方式自动换行。每个汉字都一个单词?
  • 要两个单词之间不换行,应该用 代替q两个单词之间的I格?
  • 要一个长单词可以换行Q把&shy;攑֜长单词可以断开的地斏V?

如果从其他地Ҏ抄过来文本,可用引文标签表示。有3U引文标{?参见下面的列?。blockquote和q标签都有一个cite属性。如果需要链接到原文Q需要超链接标签。如Q?code><p>And <cite>Bob</cite> said <q>No, I think it's a banana</q>.</p>

  • blockquote(引文?
  • q(内联引文)
  • cite(引文地址)

为文章的某些文字加强语气Q可用em()和strong(强烈)标签。ؓ了强调这是几个羃写的字母Q可用abbr(~写)或acronym(首字母羃?标签。address表示地址?/p>

Z说明E序U的相关事物Q可用程序相关的标签。他们是

  • code 代码
  • dfn 定义。常用强调一个术语的定义?code><dfn title=“Java key word">class</dfn> HelloWordQ也可用与普通的术语的定义,?br><p><dfn title="Microsoft web browser">IE</dfn> is the most popular browser.</p>
  • var 变量?code>变量<var>$i</var>,代表循环ơ数.
  • kbd 键盘输入?code>To exit, type <kbd>QUIT</kbd>.
  • samp E序输出。samp是sample output from programs,scripts,etc的意思?code>E序的输出是<samp>x+y</samp>

div和spanq无实际的意义。可以通过CSS样式(style)为其赋予不同的表现。div和span的区别在于div表示的一个块Q而span表示的是一个Inline(内联)?/p>

块元?block)和内联元?Inline)?/p>

块元素相当于D落的元素。显C时Q块元素L另v一行,块元素其后的元素也另起一行。块元素有:h1~h6 p pre blockquote address div?/p>

内联元素相当于块中的字符、单词和短语。文本模块提到的所有其他元素都是Inline。a和img元素也是Inline的?/p>

body元素里只能包含块U元素,不能把独立文本和内联元素直接攑֜body元素中?/strong>

q些文本元素的表现Ş似在CSS中介l?/p>

除了br blockquote元素外,所有的其他元素里可以再包含Inline元素和PCDATA(独立文本Q无格式文本)?br>br 是个I元素。也是?br 元素里不能在包含其他元素和独立文本?br>blockquote ?body 元素一P只能包含块元素?/p>

Jeff Lau 2008-01-16 20:40 发表评论
]]>
重读XHTML(一)http://www.aygfsteel.com/jeff-lau/archive/2008/01/15/175561.htmlJeff LauJeff LauTue, 15 Jan 2008 15:02:00 GMThttp://www.aygfsteel.com/jeff-lau/archive/2008/01/15/175561.htmlhttp://www.aygfsteel.com/jeff-lau/comments/175561.htmlhttp://www.aygfsteel.com/jeff-lau/archive/2008/01/15/175561.html#Feedback0http://www.aygfsteel.com/jeff-lau/comments/commentRss/175561.htmlhttp://www.aygfsteel.com/jeff-lau/services/trackbacks/175561.html新徏立的Web面Q必遵守XHTML1.1规范标准?原因误
http://www.transwiki.org/cn/xhtmlfaq.htm#XHTML.E6.AF.94HTML.E6.9C.89.E5.93.AA.E4.BA.9B.E4.BC.98.E7.82.B9.EF.BC.9F

XHTML面?部分?/p>

  • XML声明
  • DTD声明
  • html元素

XML声明推荐使用Q但不是必须的。ؓ什么推荐用呢Q请参?/p>

所有的XHTML1.1的DTD声明都一栗请?/p>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

html元素是XHTML文档的根元素。html元素的属性有

  • (可选的)xmlns?URI = "http://www.w3.org/1999/xhtml")
  • (可选的)I18N, id, version

html元素可包含的元素?/p>

  • (必须)head
  • (必须)body


Jeff Lau 2008-01-15 23:02 发表评论
]]>
我给电脑?amp;ldquo;剑南?amp;rdquo;?/title><link>http://www.aygfsteel.com/jeff-lau/archive/2008/01/15/175343.html</link><dc:creator>Jeff Lau</dc:creator><author>Jeff Lau</author><pubDate>Mon, 14 Jan 2008 18:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/jeff-lau/archive/2008/01/15/175343.html</guid><wfw:comment>http://www.aygfsteel.com/jeff-lau/comments/175343.html</wfw:comment><comments>http://www.aygfsteel.com/jeff-lau/archive/2008/01/15/175343.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jeff-lau/comments/commentRss/175343.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jeff-lau/services/trackbacks/175343.html</trackback:ping><description><![CDATA[<p>最q,昑֍风扇的噪韛_大。拍机箱、上沚w试过了,安静一会儿Q它又有上诉了。我都想直接枪毙了它。今天,打电话给一个熟悉的修电脑的师傅Q他我用酒精z一z。我住的地方附近没有医院和药店,我只有忍痛开了一?2度的“剑南春”,倒了一炚wQ给昑֍的风扇喝?/p> <p>z好后,晑ֹ。装上风扇,OK了!电脑又安静了。扇出来风还有一股酒香了?/p><img src ="http://www.aygfsteel.com/jeff-lau/aggbug/175343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jeff-lau/" target="_blank">Jeff Lau</a> 2008-01-15 02:21 <a href="http://www.aygfsteel.com/jeff-lau/archive/2008/01/15/175343.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>应用E序的配|?/title><link>http://www.aygfsteel.com/jeff-lau/archive/2008/01/10/174156.html</link><dc:creator>Jeff Lau</dc:creator><author>Jeff Lau</author><pubDate>Wed, 09 Jan 2008 20:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/jeff-lau/archive/2008/01/10/174156.html</guid><wfw:comment>http://www.aygfsteel.com/jeff-lau/comments/174156.html</wfw:comment><comments>http://www.aygfsteel.com/jeff-lau/archive/2008/01/10/174156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jeff-lau/comments/commentRss/174156.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jeff-lau/services/trackbacks/174156.html</trackback:ping><description><![CDATA[<p>摘要Q大多数应用E序都可以由用户配置。配|文件是实现应用E序灉|性的一个有效手DcHibernate、Spring{应用都需要配|文件。国际化的应用程序也是通过和Locale有关配置文g来实现的?/p> <p> </p> <p>下面的内容和Java应用E序配置有关?/p> <ul> <li>properties <ul> <li>properties文g <li>pȝ信息</li></ul> <li>preferences</li></ul> <p> </p> <h1>properties的?/h1> <h2>加蝲</h2> <p class="code">Properties prop = new Properties();<br>prop.load(new FileInputStream("filename"));<br>String value = prop.getProperties("key");</p> <p> </p> <h2>存储</h2> <p class="code">Properties prop = new Properties();<br>prop.setProperties("key", "value");<br>...<br>prop.store(new FileOutputStream("filename.properties"), "comments");</p> <p> </p> <h2>默认?/h2> <p class="code">prop.getProperties("key", "default");</p> <p>或者:</p> <p class="code">Properties defaultProp = new Properties();<br>defaultProp.setProperties("key", "value");<br>...<br></p> <p class="code">Properties prop = new Properties(defaultProp);<br>prop.load(new FileInputStream("filename"));<br>prop.getProperties("key");</p> <p> </p> <h2>汉字</h2> <p>手写的Properties文gQ如果含有非ISO-8859-1的字W,p用native2ascii.exe工具来编译了。eclipse中也有工具可以实现该功能。native2ascii的用很单?/p> <p> </p> <p>l构化的key</p> <p>font.name=Monospaced<br>font.size=12</p> <p> </p> <h2>枚Dkey和values</h2> <p class="code">public Enumeration<?> propertyNames()</p> <p class="code">size(), keys(), values</p> <p> </p> <h2>XML</h2> <p class="code"><properties><br>    <comment>comments</comment><br>    <entry key="key">value</entry><br>    ... ...<br></properties></p> <p> </p> <h2>Properties和Hashtabel的关p?</h2> <p>Properties是Hashtable的子cR?q是一个坏的设计。Hashtable应当只是Properties的一个实例变量?/p> <p>class Properties {<br>    public String getProperty(String) {...}<br>    public String setProperty(String, String) {...}<br>    ...<br>    private Hashtable entry;<br>    protected Properties defaults;<br>}</p> <p>在Properties的API中有下面的一D话QSun通过文来I补设计上的缺陗?/p> <blockquote>因ؓ Properties l承?HashtableQ所以可?Properties 对象应用 put ?putAll Ҏ。但强烈反对使用q两个方法,因ؓ它们允许调用Ҏ入其键或g?Strings 的项。相反,应该使用 setProperty Ҏ。如果在“有危险”的 Properties 对象Q即包含?String 的键或|上调?store ?save ҎQ则该调用将p|?/blockquote><img src ="http://www.aygfsteel.com/jeff-lau/aggbug/174156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jeff-lau/" target="_blank">Jeff Lau</a> 2008-01-10 04:40 <a href="http://www.aygfsteel.com/jeff-lau/archive/2008/01/10/174156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Windows XP的自动播?/title><link>http://www.aygfsteel.com/jeff-lau/archive/2008/01/08/173817.html</link><dc:creator>Jeff Lau</dc:creator><author>Jeff Lau</author><pubDate>Tue, 08 Jan 2008 14:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/jeff-lau/archive/2008/01/08/173817.html</guid><wfw:comment>http://www.aygfsteel.com/jeff-lau/comments/173817.html</wfw:comment><comments>http://www.aygfsteel.com/jeff-lau/archive/2008/01/08/173817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jeff-lau/comments/commentRss/173817.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jeff-lau/services/trackbacks/173817.html</trackback:ping><description><![CDATA[<p>用Windows XP的自动播放,有两U方法: <p>【方法一?br>插入Ud存储讑֤后按SHIFT键不村֍可? <p>【方法二?br>用组{略可以全部用Windows XP的自动播攑֊能,步骤如下Q? <p>1、点击Windows“开始”-“运行”,键入“gpedit.msc”,点击定按钮Q打开“组{略”窗口; <p>2、在H口左栏的“本地计机{略”下Q打开“计机配置/理模板/pȝ”,然后在右栏的“设|”标题下Q鼠标双L开“关闭自动播䏀; <p>3、选择“设|”选项卡,N“已启用”复选钮Q然后在“关闭自动播䏀框中选择“所有驱动器”,单击“确定”按钮,退出“组{略”窗口? <p>原地址Q?a title="http://csc.rising.com.cn/KnowledgeBase/detailInfo.aspx?Action=ViewInfo&InfoID=757&Channel=RSQ" >http://csc.rising.com.cn/KnowledgeBase/detailInfo.aspx?Action=ViewInfo&InfoID=757&Channel=RSQ</a></p><img src ="http://www.aygfsteel.com/jeff-lau/aggbug/173817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jeff-lau/" target="_blank">Jeff Lau</a> 2008-01-08 22:14 <a href="http://www.aygfsteel.com/jeff-lau/archive/2008/01/08/173817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>代理(Proxy)http://www.aygfsteel.com/jeff-lau/archive/2008/01/06/173122.htmlJeff LauJeff LauSun, 06 Jan 2008 06:11:00 GMThttp://www.aygfsteel.com/jeff-lau/archive/2008/01/06/173122.htmlhttp://www.aygfsteel.com/jeff-lau/comments/173122.htmlhttp://www.aygfsteel.com/jeff-lau/archive/2008/01/06/173122.html#Feedback1http://www.aygfsteel.com/jeff-lau/comments/commentRss/173122.htmlhttp://www.aygfsteel.com/jeff-lau/services/trackbacks/173122.html如果惛_q行时生成新的对象,q且q个对象的类型是全新的,是现有系l中没有的。就可以用ProxycM的静态方法newProxyInstance来实现。其API如下Q?/p>

public static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler handler);

参数Q?/p>

  • loader: cd载器。如果ؓnullQ就要默认类加蝲?
  • interfaces: q个新类要实现的接口l?
  • 调用处理器?/li>

函数q回的对象类型是$Proxyn, (n >= 0. W一ơ调用这个方法,新类名ؓ$Proxy0, W二个新cd?Proxy1, 以此cL)

生成?Proxyn 的源代码大致cM如此Q?/p>

public final class $Proxy0 implements interfaces {
    InvocationHandler handler;

    public String toString() {
        Method m = this.getClass().getMethod("toString");
        handler.invoke(this, m, m.getParameters());
    }

    public int hashCode() {
        Method m = this.getClass().getMethod("hashCode");
        handler.invoke(this, m, m.getParameters());
    }

    public String equals() {
        Method m = this.getClass().getMethod("equals");
        handler.invoke(this, m, m.getParameters());
    }

   
    // 以下是实现interfaces的方?br>    public return_type interfaces_method(args...) {
        Method m = this.getClass().getMethod("equals");
        handler.invoke(this, m, m.getParameters());       
   }

   ... ...接口interfaces中的其他Ҏ  
}

 

当我们这栯用时: Object o = Proxy.newProxyInstance(null, interfaces, handler0);

q成一个新$Proxy0cȝ对象o, q个对象o的字Dhandler被赋gؓhandler0?Proxy0实现了interfaces中所有的接口Q其实现方式都一P是调用字段handler的invokeҎ。其UML囑֦下:

proxy



Jeff Lau 2008-01-06 14:11 发表评论
]]>
闚wE序http://www.aygfsteel.com/jeff-lau/archive/2008/01/04/172627.htmlJeff LauJeff LauThu, 03 Jan 2008 22:21:00 GMThttp://www.aygfsteel.com/jeff-lau/archive/2008/01/04/172627.htmlhttp://www.aygfsteel.com/jeff-lau/comments/172627.htmlhttp://www.aygfsteel.com/jeff-lau/archive/2008/01/04/172627.html#Feedback8http://www.aygfsteel.com/jeff-lau/comments/commentRss/172627.htmlhttp://www.aygfsteel.com/jeff-lau/services/trackbacks/172627.html“干得比驴篏,吃得比猪?起得比鸡?看上L谁都?五年后比谁都老”相信很多程序员朋友都曾q样感慨和抱怨过自己的生zȝ?的确,日复一日地手按键盘、目盯显C器,在实C个个E序和Q务的同时,有时候我们的健康也慢慢流失在那一D|整齐的代码中.

E序员的健康问题Q是个很Ҏ被程序员自己忽略的问题。关注一D늨序,一晃就是好几个时。眼睛越来越q视Q颈椎越来越酸。如何解册个问题?

要是有个闚wQ来个整Ҏ时就好了。整点一刎ͼ从位v来,打杯_泡杯咖啡Q做做颈部和四肢的展运动,长此以往Q健庯然回来了?/p>

I闲之余Q就用Java做了q样的一个闹钟程序。启动后Q程序就在系l托盘中Q图标是q样?a href="http://www.aygfsteel.com/images/blogjava_net/jeff-lau/WindowsLiveWriter/c20587c55223_594E/image_4.png">image ?/p>

E序必须q行在jdk6+中?/strong>

下蝲地址Q?a title="http://www.aygfsteel.com/Files/jeff-lau/clock.zip" href="http://www.aygfsteel.com/Files/jeff-lau/clock.zip">http://www.aygfsteel.com/Files/jeff-lau/clock.zip



Jeff Lau 2008-01-04 06:21 发表评论
]]>
交换http://www.aygfsteel.com/jeff-lau/archive/2008/01/03/172392.htmlJeff LauJeff LauThu, 03 Jan 2008 02:42:00 GMThttp://www.aygfsteel.com/jeff-lau/archive/2008/01/03/172392.htmlhttp://www.aygfsteel.com/jeff-lau/comments/172392.htmlhttp://www.aygfsteel.com/jeff-lau/archive/2008/01/03/172392.html#Feedback1http://www.aygfsteel.com/jeff-lau/comments/commentRss/172392.htmlhttp://www.aygfsteel.com/jeff-lau/services/trackbacks/172392.html在程序开发的q程Q要交换两个变量的内容,是一U比较常见的事情。在排序法中,有一U就叫做“交换排序法”。在所有的排序法Q交换要排序的集合中的两个元素,几乎是必ȝq程。在Java中交换两个元素的内容Q如果你是程序员新手Q你可能到意想不到的问题?/p>

首先Q来看看交换下面的程序。ؓ了交换两个整数变量的内容Q写了下面这L一个方法实玎ͼ

public void swap(int i, int j) {
    int t = i;
    i = j;
    j = t;
}

调用上面的方法,有问题吗Q?/p>

int x = 100;
int y = 1;
swap(x, y);

在程序执行此D代码后Q你会发玎ͼxq是100Q?yq是1。ؓ什么呢Q因为JavaҎ法参数的传递,是?strong>D?call by value)的。想惻I如果我这栯用swap函数呢,swap(3, 4)Q这是莫名其妙的Q有谁会要交??q两个常数呢?/p>

那没办法交换两个整数变量了吗Q可以。把swap函数体替换掉swap函数的调用就可以了。如Q?/p>

int x = 100;
int y = 1;
int t = x;
x = y;
y = t;

Java中其他的原生cd(primitive type)的情况,和int的一栗?/p>

 

l箋讨论函数调用吧。函数调用时Q参C递的方式主要有两U:

  • g?
  • 引用传?

Java使用的是g递。g递是把变量的倹{常数或帔R传递给参数。而引用传递,是把变量的所在内存中的地址传递给参数Q参数通过地址扑ֈ变量的倹{很明显Q引用传递不能把常数传递给参数。g递和引用传递还有一个很大的不同Q对于像intq样的小cd变量来说Qg递没副作用,而引用传递有。也是_在函数调用的执行q程中,不能改变传递给参数的变量的倹{?/p>

但对于普通类cd参数的传递方式的理解和原生类型有点不同。对于方法method(Object o)的调用method(x)Q?不是把对象x复制一份传递给参数oQ而是把对象x的在内存中的首地址Q也是把对象x的引用拷贝给参数o。这样就能这样实现对象的交换函数了吗Q?/p>

public void swap(Object o, Object p) {
    Object t = o;
    o = p;
    p = t;
}

{案是:No。因为像下面q样的调用:

Object x = X;
Object y = Y;
swap(x, y);

在执行完上的代码后,x指向的还是原来的X对象Qy指向的还是那个Y对象。就像歌q那样Q星星还是那个星星,月亮q是那个月亮?/p>

 

N׃能通过Ҏ调用实现交换q个功能吗?可以。有两种办法Q?/p>

  • 可以交换数组{集合里的元?
  • 用反实?/li>

public void swap(Object[] a, int i, int j) {
    Object t = a[i] ;
    a[i] = a[j];
    a[j] = a[i];
}

用反实现swap函数Q有Ҏ鸡用大炮的感觉。性能不怎么Pq容易出错。这个留着做家庭作业吧?/p>

Jeff Lau 2008-01-03 10:42 发表评论
]]>
վ֩ģ壺 | հ| ֹ| | ˮ| | | | | Ӽ| | | ǧ| ϲ| | ɽ| | | | | | | | | ֣| | | ̶| | Դ| Ϻӿ| | | | | | | | | | |