<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;DkUCQX48cCp7ImA9WhdXGEw.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510</id><updated>2011-08-31T11:11:00.078-07:00</updated><title>Shangshu' Home</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;DkUCQX88cCp7ImA9WhdXGEw.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-6957632130814087528</id><published>2011-08-31T11:11:00.000-07:00</published><updated>2011-08-31T11:11:00.178-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-31T11:11:00.178-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='东游西逛'/><title>(zz) 我为旅行狂－－－Grand Canyon惊鸿之撇(2010年5月6日--9日)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="margin-bottom: 6pt;"&gt;&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;对于黄石&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;大峡谷&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;还有大瀑布的狂热执着&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;我们终于在上周末实现了三分之一的圆梦计划&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;其中要鼎立感谢我家本田&lt;/span&gt;20&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;小时不遗余力地勤劳工作&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;这其中要对家庭成员熊宝未能加入深表遗憾&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;这其中要对在母亲节作出卓越贡献的老妈送上经久不息的热烈掌声。&lt;/span&gt;&lt;/div&gt;&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;大峡谷国家公园在美国西部亚利桑那州，以横贯其中的科罗拉多河在亿万年间切割出的大峡谷而闻名世界&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;大峡谷总长&lt;/span&gt;446&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;公里，最宽处近&lt;/span&gt;30&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;公里，最深处&lt;/span&gt;1600&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;米。河水切出的岩石断壁纵跨地球形成过程中逾&lt;/span&gt;10&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;亿年的历史&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;这条著名的峡谷由安静流淌在谷底的科罗拉多河用&lt;/span&gt;600&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;万年的光阴一点点切割而成&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;河水层层切割出的岩石断面展现了从&lt;/span&gt;20&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;亿年前至今的地球形成史&lt;/span&gt;...&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;这些数字&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;不免让人觉得生硬&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;真正的感受，数字又确实无法衡量&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;只有你亲身站在绝壁边，放眼这浩瀚的旷世奇景&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;才能从心底里发出对造物的由衷赞叹&lt;/span&gt;.&lt;br /&gt;
&lt;div class="articalContent  " id="sina_keyword_ad_area2"&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt; &lt;span lang="ZH-CN" style="font-size: 9.5pt;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;div style="margin-bottom: 6pt;"&gt;&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;大峡谷不只是一道深深的山谷，宽阔的峡谷中，层层叠叠还有许多陡峭的山体和峭壁，形态千变万化。这一带山体呈红褐色&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;纵横数十里的视线被大气朦胧着，恍然如视沙漠中的海市蜃楼。这就是大峡谷最著名的风光之一沙漠全景&lt;/span&gt;(Desert View)&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;。我们于峡谷的南缘驻车&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;开始徒步地探寻这一派奇观绝景&lt;/span&gt;,5&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;月的时节对于峡谷来讲还是分外温柔的&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;可惜色彩略显单薄&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;远远地向峡谷对面北缘眺去&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;依稀见得松绿的植被开始悄然萌动&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;北缘也是有游人的吧&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;像我们一样感叹着自然的力量&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;膜拜着这绝对浑然天成的奥妙&lt;/span&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 6pt;"&gt;&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;去谷底只有两个办法，走路或者骑骡子。骑骡入谷，是大峡谷上百年来长盛不衰、最具风景的一项活动。不过，在骡背上摇晃着，随着骡队前进，在山崖边毫无规则而又及其狭窄的小道上下行&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;亟需勇气。换上登山靴，将水瓶塞进行囊，步行才是惟一的可能。从南缘步行曲折下行至科罗拉多河畔&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;再从彼地盘旋上行到北缘&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;一共需要整整两天的时间&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;这让众多的探寻着望而却步&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;也让大峡谷的浩瀚更沁染人心&lt;/span&gt;.&lt;/div&gt;&lt;div style="margin-bottom: 6pt;"&gt;&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;大峡谷的小道&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;多数是在山崖上硬用炸药炸出的小径，盘旋曲折。到达平衡些的地方回头看，刚刚走过的路好像一丝细线嵌在直上直下的山崖之上，线上那些缓慢移动的小点就是想要征服自然的人们。若是走过一处转角，眼前便会豁然开朗，山势壮丽，谷中云雾蒸腾&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;峡谷内就有驻足点&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;因为路过此地的人都会“唔哇”地感叹，所以得名“唔哇点”&lt;/span&gt;(Ooh-aah Point)&lt;/div&gt;&lt;div style="margin-bottom: 6pt;"&gt;&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;峡谷内的植物分外单一&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;然而我们意外地发现&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;在小学教科书中出现的尺蠖&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;居然活生生出现在了眼前&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;这个红色&lt;/span&gt;circle&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;里面的就是尺蠖了&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;居然真的真的和树枝是一模一样的啊&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;要不是不小心碰到它&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;然后它分外快速而柔软得卷曲了它的身体&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;我是不能相信它是动物&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;而又真的如此会伪装自己的&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;真是大收获&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;大收获啊&lt;/span&gt;..&lt;/div&gt;&lt;span lang="ZH-CN"&gt;峡谷的落日不同于海边&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;不同于崇山峻岭&lt;/span&gt;.&lt;span lang="ZH-CN"&gt;这美&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;应该是源自内心&lt;/span&gt;.&lt;span lang="ZH-CN"&gt;老藤和昏鸦倒是并无多少&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;可枯树满目皆是&lt;/span&gt;.20&lt;span lang="ZH-CN"&gt;亿年&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;这概念太难在心里消化了&lt;/span&gt;.&lt;span lang="ZH-CN"&gt;这浩日&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;依旧升&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;依旧降&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;依旧演绎轮回&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;依旧给年轻的人们&lt;/span&gt;,&lt;span lang="ZH-CN"&gt;展示峡谷的种种&lt;/span&gt;.&lt;br /&gt;
&lt;span lang="ZH-CN" style="font-size: 9.5pt;"&gt;　　　&lt;/span&gt;&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td height="0" width="42"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;清晨的峡谷&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;更加彰显了世界七大自然景观的况美绝情&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;露营之后的深夜还未偃息清冷&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;红日便开始跨过科罗拉多河畔&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;不分南北地挥洒金容&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;日渐升高&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;唤醒静默的层峦叠嶂&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;暖暖地照着，轻轻地抚慰着&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;空气中是树木的芬芳&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;还有清风猎猎。深海的邃蓝是刹那的逸动&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;随之将上的是姜黄&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;是金之风范&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;是橙之雍容&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;是血红之隽美&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;无声无息&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;万静之后的骤变&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;让眼前轰然充盈起来&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;这样的变更&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;是自然每日必行的常理吧&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;在人们的眼中成了万般感叹的奇迹&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;脉脉来&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;默默去&lt;/span&gt;.&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;看看这眼前&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;体味这状景&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;应不再有什么值得日日抱怨&lt;/span&gt;,&lt;span lang="ZH-CN" style="font-family: 宋体;"&gt;时时感怀了&lt;/span&gt;...							 		&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-6957632130814087528?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/6957632130814087528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=6957632130814087528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/6957632130814087528?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/6957632130814087528?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2011/08/zz-grand-canyon201056-9.html' title='(zz) 我为旅行狂－－－Grand Canyon惊鸿之撇(2010年5月6日--9日)'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkEGQX04eSp7ImA9WhdXF04.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-6348867013815451522</id><published>2011-08-30T11:57:00.000-07:00</published><updated>2011-08-30T11:57:00.331-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T11:57:00.331-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title>Oracle ORA-01000 maximum open cursors exceeded</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Several days ago, I wrote a piece of program in C#/.Net to import some records into oracle database. It is windows version 10g XE. When the program is running, I got a run-time error which is ORA-01000 maximum open cursors exceeded. &lt;br /&gt;
&lt;br /&gt;
Here is the Oracle docs about ORA-01000:&lt;br /&gt;
&lt;br /&gt;
ORA-01000 maximum open cursors exceeded&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Cause: A host language program attempted to open too many cursors. The initialization parameter OPEN_CURSORS determines the maximum number of cursors per user.&lt;br /&gt;
&lt;br /&gt;
Action: Modify the program to use fewer cursors. If this error occurs often, shut down Oracle, increase the value of OPEN_CURSORS, and then restart Oracle.&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
In order to solve this problem, I increased my OPEN_CURSORS by using:&lt;br /&gt;
&lt;br /&gt;
ALTER SYSTEM SET open_cursors = 5000 SCOPE=BOTH;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-6348867013815451522?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/6348867013815451522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=6348867013815451522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/6348867013815451522?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/6348867013815451522?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2011/08/oracle-ora-01000-maximum-open-cursors.html' title='Oracle ORA-01000 maximum open cursors exceeded'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUQCR384fyp7ImA9WhdQF0o.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-5395870625949716356</id><published>2011-08-19T10:02:00.000-07:00</published><updated>2011-08-19T10:02:46.137-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-19T10:02:46.137-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='东游西逛'/><title>(zz) 加州七至十日自驾攻略－－贡献篇</title><content type='html'>一晃大半年竟然飘忽忽地过去了。这里这么冷清。这大半年门儿也不出了，闲&lt;br /&gt;
情逸致的书也少读了，朋友也没聚了。少了丰富的生活，觉得手生了，心钝了，懒洋洋&lt;br /&gt;
的 开始倒退了。这可怎么得了？不管怎样，难得有机会再来次加州。坐下来，想想来&lt;br /&gt;
美国整整5年的风雨经历中，加州也多多少少划了重彩。先后三次的造访，让我几乎踏&lt;br /&gt;
遍了它南北所有的景致。既然如此，为什么不总结了做成攻略，拿出来给大家分享？也&lt;br /&gt;
算是为了阔别博客这么久，回归之时的小贡献。&lt;br /&gt;
&lt;br /&gt;
       1.先来点科普的。&lt;br /&gt;
        加州是美国第三大州。北接俄勒冈，南挟墨西哥。若把美国当成矩形，那加州&lt;br /&gt;
就是落在左手的宽。加州狭长，确实很大。如果要从北部与俄勒冈州 交界出发，沿5号&lt;br /&gt;
州际公路驾车向下穿越整个加州到南部与墨西哥交界处，即使很少或根本没有塞车现象&lt;br /&gt;
，也需要大约15个小时。加州拥有极富变化的自然景观， 从北部海岸地区浓密的红木&lt;br /&gt;
森林、内华达山脉地区的花岗岩山峰，到南加州地区人烟罕至的荒漠。该州的12个景观&lt;br /&gt;
和地区各有特色，变换地区时，时常会让人误以 为置身到一个完全不同的国度。这正&lt;br /&gt;
是加州的美丽所在。説加州适合自驾之旅，其实还因为它温和的气候。加州长年是阳春&lt;br /&gt;
之暖，没有四季之分。只分雨季和旱季。 一年到头都是短T加单外套，让人既感轻便，&lt;br /&gt;
又觉舒畅。&lt;br /&gt;
&lt;br /&gt;
        2.再来点儿个人经验的。&lt;br /&gt;
        说起旅游，自然是人文景观和自然景观结合起来才能丰富见闻，相得益彰。加&lt;br /&gt;
州的经济发达城市是人文景观的综合去处。南加的洛杉矶，北加的硅谷旧金山，是不可&lt;br /&gt;
遗漏的必去之所。而自然景观，加州就更是天堂了。全美共有58个国家公园，加州占&lt;br /&gt;
有其中七个。若是安排七日到十日的驾游，从南至北的贯纵开去，穿过所有国家公园，&lt;br /&gt;
探究人文城市的美好，岂不是人生美事？      &lt;br /&gt;
拉森火山国家公园 (Lassen Volcanic National Park) [Redding, CA]&lt;br /&gt;
红杉树国家公园 (Redwood National Park) [Eureka, California]&lt;br /&gt;
优胜美地国家公园 (Yosemite National Park) [Mariposa, California]&lt;br /&gt;
美洲杉国家公园 (Sequoia National Park) [Fresno, California]&lt;br /&gt;
国王峡谷国家公园(Kings Canyon National Park) [Fresno, CA]&lt;br /&gt;
海峡岛国家公园 (Channel Islands National Park) [Santa Barbara, CA]  &lt;br /&gt;
约束亚树国家公园 (Joshua Tree National Park) [Palm Springs, California]&lt;br /&gt;
&lt;br /&gt;
        3.闲话少叙，直接上攻略&lt;br /&gt;
        个人建议，来趟加州不容易。最好八到九日，且由南至北。首先飞至Los&lt;br /&gt;
Angeles，这城市交通便利，机票相对便宜；其次在LAX机场租车相当方便，不必走出机&lt;br /&gt;
场。 另外如果需要，异地还车费用也能接受；再次，LA 东边不远便是摄人心魄的死亡&lt;br /&gt;
谷国家公园，若还有时间，还有体力，便还有机会顺便去探个究竟.&lt;br /&gt;
        第一日：LA。LA要去的，其实就是Disney Land（DL）和 Hollywood。 其实如&lt;br /&gt;
果去过了Florida Orlando的Disney World，或着有计划去，那么DL就可以省了。DL有&lt;br /&gt;
两个园子：Dl 和 universal studio，认认真真逛，一一全都玩下来，那也需要两天。&lt;br /&gt;
其实进去看看大致状况，重温下童年的梦想，再去Hollywood开车经过，LA也就圆满了&lt;br /&gt;
。 不必特意去LA的海边，接下来的时间机会多了去。&lt;br /&gt;
          &lt;br /&gt;
        第二日：由LA驱车向东1.5小时，便可到第一处国家公园：约束亚树国家公园&lt;br /&gt;
(Joshua Tree National Park) [Palm Springs, California].此 处虽然离LA很近，但&lt;br /&gt;
地貌大不相同。出名的是嶙峋的怪石，模样窘立的约书亚树，还有高过人头的仙人掌海&lt;br /&gt;
洋。在此处攀岩的游客来自世界各地。半天的时间足以 欣赏Joshua的不同。中午十分&lt;br /&gt;
，太阳开始毒辣直接，便可以向圣芭芭拉进发。驱车4小时，算上中途午餐和休憩，下&lt;br /&gt;
午8点正是在SB的海港看落日的好时 机。这个城市精致可爱，其中最美的地方是SB&lt;br /&gt;
Stearns Wharf，离downtown非常近。这海边被成排的椰子树包围着，岸上连着整齐的&lt;br /&gt;
豪宅，海上浮着望不尽的游艇，甚是壮观。2小时足够逛完SB，街边的趴车一般都比较&lt;br /&gt;
友好，备足quater就行了。&lt;br /&gt;
&lt;br /&gt;
        第三日：SB离第二个可去的NP：海峡岛国家公园 (Channel Islands National&lt;br /&gt;
Park) [Santa Barbara, California] 就非常近. Channel Channel Islands一共有八&lt;br /&gt;
個小島，散布在Santa Barbara以南的加州海岸外,是全美最靠近大都市的国家公园。而&lt;br /&gt;
每个其中的岛，都令人旷世怡情。从SB海港处登船，一天的时间可选择其中的2到3个岛&lt;br /&gt;
游访。在太平洋的石礁上感受海天相接，看余晖抚海燕。晚间稍事休息。之后的几日&lt;br /&gt;
多为祁山秀水的国家公园，需要攀岩和徒步，韵味十足。&lt;br /&gt;
&lt;br /&gt;
        第四日: 如果够巧合，恰恰在Santa Barbara的周六过清晨，那么就有口福了&lt;br /&gt;
。今日向下一个国家公园出发前，可以在6：30拜访Santa Barbara Harbor.周六清晨是&lt;br /&gt;
渔夫们在此海港出售海钓产品的时间，一周只有一次。我们能买到的，不仅仅是2.5刀&lt;br /&gt;
一磅的海蟹，还有巨大的salmon和帝王 蟹。买了回去带在路上，几小时后进山，自助&lt;br /&gt;
烧烤，吃新鲜的海蟹，真是人生美事。于是，收拾好行囊，便可以出发了。下个目的地&lt;br /&gt;
，是美洲杉国家公园 (Sequoia National Park) [Fresno, California] 和 国王峡谷&lt;br /&gt;
国家公园(Kings Canyon National Park) [Fresno, California]。这两处国家公园连&lt;br /&gt;
在一起，以其中巨大的红杉树为出名。由树木连接成的海洋或者还不够新奇，不过若是&lt;br /&gt;
比房子还粗的树，想必就难得一见了。从SB驱车到国王谷大概 5.5小时车程，早晨出发&lt;br /&gt;
，下午到达公园南源。公园内有很多的camping点，并且相对容易驻扎。如果没有设备&lt;br /&gt;
，便可以在国王谷南边的三和镇（Three Rivers）歇脚。落脚后，便可以在美洲杉里探&lt;br /&gt;
寻简单的trail，找一找可以钻过一辆车的杉树。晚上篝火营地，美食帐篷，松涛阵阵&lt;br /&gt;
，惬意至极。不过值得注意的是，山林里没有信号，此外有各种野生动物出没，且个个&lt;br /&gt;
形状巨大。比如和手掌大小差不多的黑蜘蛛，还有山蛇。公园的帐篷点还曾经有被黑熊&lt;br /&gt;
偷袭的记录，所以大家要格外小心。&lt;br /&gt;
&lt;br /&gt;
        第五日：第一缕阳光射入营地的时候，就肯定会有小松鼠过来扒帐篷。收起行&lt;br /&gt;
装，此时便可以从南至北贯穿过国王谷，向举世闻名的优胜美地国家公园开进了。这段&lt;br /&gt;
路程很近，不过2小时左右.所以中午之前就可以到达，并且选好营地。优胜美地国家公&lt;br /&gt;
园 (Yosemite National Park) [Mariposa, California] 有着其极丰富的地貌特征，&lt;br /&gt;
所以营地非常抢手，超过下午就很难有剩余之地了。占好营地后，就可以去拜访&lt;br /&gt;
yosemity最著名的新娘面纱瀑布了。yosemity最著名的便是大大小小的瀑布以及因为水&lt;br /&gt;
气形成的各种彩虹。此外，在yosemity，还可以在一天之内感受到四个季节的不同变化&lt;br /&gt;
。从高山到瀑布，从平谷到山涧，如梦如幻，仿入仙境。夏日的yosemity和冬日的它又&lt;br /&gt;
呈现出截然不同的景致，很难想象出她在冬日里会有多么厚重的雪景。好像她逃离了加&lt;br /&gt;
州，换到了别处。yosemity的夜晚是摄影爱好者的天堂，此时，你可以在山谷和岩石的&lt;br /&gt;
任何角落找到手握三脚架的高手们。他们在静静的捕捉清空的璀璨，而此时，你也可以&lt;br /&gt;
看看时时滑落的流星，许下美好的愿望。&lt;br /&gt;
&lt;br /&gt;
        第六日：在yosemity看完了日落以后，便可以告别自然景观，进入城市－－－&lt;br /&gt;
旧金山。这一路驱程其实也不过3-5Hrs左右。所以补充寄养后，就可以在事 先定好的&lt;br /&gt;
hotel里好好休息一晚。接下来的几日，会少几分在国家公园里行走的劳顿，多积分城&lt;br /&gt;
市的喧闹。旧金山依旧是个和自然完美结合的现代都市，吸引着 各地的游客。那确实&lt;br /&gt;
是个宁静和繁华融合的地方，守着太平洋的浩瀚，静静地等着人们的到来。&lt;br /&gt;
&lt;br /&gt;
        第七日： 09年的时候因为会议拜访过一次三藩。当时在强大的google map帮&lt;br /&gt;
助下，制作并实践了城市交通一日游。虽然时隔两年，一经查问，发现公交路线和价格&lt;br /&gt;
依然不变。所以拿过来给大家参考。&lt;br /&gt;
        8:00: chinatown已经很繁忙了,大家随便找一家茶餐厅,吃点豆浆油条,非常满&lt;br /&gt;
足.之后在chinatown搭9x公交车($1.5)直接通到渔人码头.&lt;br /&gt;
        10:00到12:00之间: Fisherman wharf是很美的港口, 大约1个小时能够很充足&lt;br /&gt;
的逛完.不过还是非常建议在愚人码头搭乘cobble car(叮叮车)到1000m开外的九曲花街&lt;br /&gt;
(lambard st), 领略一下富豪区的意境.虽然这街只有300m长,但是坡度却有35度,两边&lt;br /&gt;
的住房昂贵得不是一般.非常非常美. 看完九曲花街,再原路返回.在渔人码头尝一尝著&lt;br /&gt;
名的面包海鲜汤,喂一喂海鸟, 就可以向艺术宫出发了.&lt;br /&gt;
        1:00到3:00之间 在渔人码头搭乘30路公交车(SFO公交系统一票通,所以换乘任&lt;br /&gt;
何一辆都不用再买票了),终点站就是SFO艺术宫.16世纪的Palace of fine art值得欣赏&lt;br /&gt;
.之后沿着宫殿向西, 步行15分钟就到golden gate bridge了.在海岸线上直接踏沙,上&lt;br /&gt;
桥.&lt;br /&gt;
        3:00到5:30之间 在大桥的广场上做28路车向南,15分钟左右,就到了全美最大&lt;br /&gt;
的城市公园--golden gate park.这城市森林巨大无比,细细观赏的话,一天也不够用.但&lt;br /&gt;
是最有代表性的还是rose park,很美.&lt;br /&gt;
        5:30 到7:00之间 在park旁边做5路车东行,在downtown转乘9路,大约半小时,&lt;br /&gt;
回到chinatown.走了一天,肚子咕咕作响.走进一家广式餐厅,一份套餐, 3菜一汤,$19.&lt;br /&gt;
99.3个人绝对吃的饱饱的.&lt;br /&gt;
&lt;br /&gt;
        第八日：虽然是返程日，但也绝不会让人失望。加州的一号公路是全美风景第&lt;br /&gt;
一的景观路。虽然由旧金山驾车至洛杉矶最快捷的公路是101，不过人们还是会宁愿多&lt;br /&gt;
花2小时的时间去选择carlifornia 1.这条公路多为双车道，蜿蜒在海与山峦之间。行&lt;br /&gt;
驶在上面，往往让人觉得一伸右手就能触到太平洋，一伸左手就能摸到层峦的山脊。沿&lt;br /&gt;
1号从SFO到LA，行程大约7到8个小时。所以要做好准备，并且早早出发。因为沿途实在&lt;br /&gt;
是美不胜收，光是修成的turnouts，vista point等等的景观台就是几十处。更别提大&lt;br /&gt;
大小小的州立公园了。沿途经过的各个城市，像是santa maria, santa monica, santa&lt;br /&gt;
rosa...都是极富海域风情的明亮所在，碧天蓝海，百墙红瓦，色彩饱满的让人睁不开&lt;br /&gt;
眼睛。最美的路段在于Pfeiffer Big Sur Area,这一处的州立公园有大大小小10个之多&lt;br /&gt;
，虽然都是沿着海岸的景色，可是确实各自有婀娜的姿态，千变万化，不能足一。 这&lt;br /&gt;
图片上道来的，就是1号公路变随处的海景。人们行驶的很慢，随时都可以停下来，在&lt;br /&gt;
路肩上拍照。这样的美，如果错过了，又怎么能补回呢？倘若时间不赶，其 实最好能&lt;br /&gt;
停下来，顺着公路边上的小岔路走下去，到那蔚蓝里去看看，看看究竟有什么样的魔力&lt;br /&gt;
，染了这样美的色彩。况且那浩瀚，伸展到了天边，伸展到了每个过 客的心里。&lt;br /&gt;
       其实，八天的时间，还不能完全够。再往三藩北去，还有红杉国家公园和拉森&lt;br /&gt;
火山国家公园。可惜那两处太远，并不如从俄勒冈出发。况且它们的景致和优胜美地以&lt;br /&gt;
及国王谷有几分相似，所以也不会太过遗憾。另外，洛杉矶向东5小时车程，便是闻名&lt;br /&gt;
四海的沙漠绿洲拉斯维加斯，还有震撼人心的死亡谷国家公园，其实如果时间 允许可&lt;br /&gt;
以多停留一两日，这两处也是不容错过的必游之地。加州的自助攻略到此为止了。希望&lt;br /&gt;
来日，还可以有更多的机会，在课业工作之余探访名山大川，丰富见 闻，开阔视野。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         4.贴士&lt;br /&gt;
         美国国家公园有Annual National Pass， 一张管一辆车，80刀。所有58个NP&lt;br /&gt;
全部通用，而一个NP的 One to Seven Days Pass是20刀。我们当年横穿美国的时候不&lt;br /&gt;
知道买了多少个single pass才明白，痛心疾首地心疼绿票子啊。&lt;br /&gt;
         一路上行车，最好事先定好hotel，省的路上慌乱。经常使用的网站是&lt;br /&gt;
expedia.com,此处肯定没有做广告之嫌。其实个人强烈推荐户外扎营，带上 帐篷地垫&lt;br /&gt;
睡袋，和野外的炉灶。在山野圹林之处享受大自然的美好，回归返璞，是最最惬意的。&lt;br /&gt;
不过若是从别的州飞到加州，恐怕就只得放弃这种惬意了。&lt;br /&gt;
         国家公园内的hotel一般很抢手，而且价格令人乍舌。作为穷学生，我们最好&lt;br /&gt;
的策略是在离公园行车2小时或者1小时距离处的城镇，定栖息之所。这些地域的 价格&lt;br /&gt;
一般在70－－80刀，相对合理。此外，出行时最重要的是保暖和饮食。美国的垃圾食品&lt;br /&gt;
最不适宜长途旅行。我们的经验是在落地的超市买营地的炉灶和气 （一套也就40刀左&lt;br /&gt;
右），还有小型的锅。这样晚间到了住处，至少可以有烧开的热水还有煮熟的热汤面，&lt;br /&gt;
暖胃祛除疲劳，且不占地方。&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-5395870625949716356?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/5395870625949716356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=5395870625949716356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/5395870625949716356?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/5395870625949716356?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2011/08/zz.html' title='(zz) 加州七至十日自驾攻略－－贡献篇'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0MCRn8-cCp7ImA9WhdQEkw.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-8560387485271617541</id><published>2011-08-12T21:56:00.000-07:00</published><updated>2011-08-12T21:57:47.158-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-12T21:57:47.158-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><title>Tips about sizeof() function in C and C++</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The &lt;span style="color: blue;"&gt;unary operator&lt;/span&gt; sizeof is used to calculate the sizes of datatypes in Bytes in modern luanguages in the programming languages C and C++. It is an useful operation in memory allocation. In order to use it right, some tips that you may want to know:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;sizeof() is a &lt;span style="color: blue;"&gt;compile-time&lt;/span&gt; function (macro-like function), not a run-time function. Therefore, you can declare array as: &lt;span style="color: red;"&gt;int arr[sizeof(int)];&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;because sizeof() is a compile-time function, the equation in sizeof() function will not be calculated. For example: int i=3; int a = sizeof(i++); the value of i will not be changed after sizeof(i++);&lt;/li&gt;
&lt;li&gt;&amp;nbsp;because sizeof() is a compile-time function, it can not help you determine the size of an array parameter. The following code will print out size 12 and 4.&lt;/li&gt;
&lt;/ul&gt;&lt;pre class="brush: c; highlight[5, 10]"&gt;void test_sizeof(int arr[])
{
    cout &amp;lt;&amp;lt; "sizeof(arr) = " &amp;lt;&amp;lt; sizeof(arr) &amp;lt;&amp;lt; endl;
}

int main() {
    int arr[3];

    cout &amp;lt;&amp;lt; "sizeof(arr) =" &amp;lt;&amp;lt; sizeof(arr) &amp;lt;&amp;lt; endl;
    testsizeof(arr); 
}&lt;/pre&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;sizeof() can not be applied to incomplete datatype. Compile errors will be report when the following code is compiled:&lt;/li&gt;
&lt;/ul&gt;&lt;pre class="brush: c; highlight[5, 10]"&gt;class InCompClass;
int main() {
    cout &amp;lt;&amp;lt; "Sizeof(InComplete Types)" &amp;lt;&amp;lt; sizeof(InComClass) &amp;lt;&amp;lt; endl;
}&lt;/pre&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;However, sizeof() can be used to determine the size of empty class type and 1 will be returned. &lt;/li&gt;
&lt;li&gt;When sizeof() is used to calculate the size of user-defined data structure, the size may not be equal to the sum of the size of data members because of the memory alignment in most compilers. &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-8560387485271617541?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/8560387485271617541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=8560387485271617541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/8560387485271617541?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/8560387485271617541?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2011/08/tips-about-sizeof-function-in-c-and-c.html' title='Tips about sizeof() function in C and C++'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0YBQXc5fCp7ImA9WhdRFU8.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-1101720718462963852</id><published>2011-08-04T22:12:00.000-07:00</published><updated>2011-08-04T22:12:30.924-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-04T22:12:30.924-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='胡说八道'/><title>人权与主权</title><content type='html'>前些天看到一个，讲测定一个人的政治倾向。其中有一道题选择说是：&lt;br /&gt;
“人权高于主权” 还是 “主权高于人权”。&lt;br /&gt;
&lt;br /&gt;
博主说博主本人选择是“人权高于主权”，可是博主国内的的父亲却选择是“主权高于人权”。&lt;br /&gt;
&lt;br /&gt;
其实这根本就是一个伪命题，茶余饭后聊聊，口水战一下还可以。可是要是仔细追究起来，恐怕事实上美国国家都采用的是“主权高于人权”的行为。打个比方说，现在很多国家的人民都想加入美国，拥有美国国籍。如果我们把人权定义为：人有追求自由，幸福的权利。那么这些想加入美国国籍的人们的意愿就是人权的范畴。那人权是不是要高于主权呢？我想大家都知道，因为美国的主权关系，美国要审查你的资格。如果能为美国所用，美国欢迎你加入；如果不是，恐怕就很难咯。&lt;br /&gt;
&lt;br /&gt;
当年日本侵华打的旗号是建立大东亚共荣圈，只是没有民主那么好听而已。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-1101720718462963852?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/1101720718462963852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=1101720718462963852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/1101720718462963852?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/1101720718462963852?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2011/08/blog-post.html' title='人权与主权'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkMCRHs-eSp7ImA9WhdRFU8.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-2826449201149365225</id><published>2011-08-04T22:01:00.000-07:00</published><updated>2011-08-04T22:01:05.551-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-04T22:01:05.551-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title>Java: Syntax error, parameterized types are only available if source level is 5.0</title><content type='html'>&lt;p&gt;&lt;strong&gt;HOW TO FIX IT:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;It is because eventhough you have Java 5 installed, the JVM running may be different.&lt;/p&gt;&lt;p&gt;Try typing this in the console window: java -version.&lt;br /&gt;
It will give you the Version of the Runtime Environment.&lt;/p&gt;&lt;p&gt;Or, if you are using an IDE, then you need to enable Java 5 support.&lt;br /&gt;
In Eclipse, You can add Java 5 in Window &gt; Preferences &gt; Java &gt; Installed JRE’s.&lt;br /&gt;
and/or, Set the compiler compliance level to 5.0 (Window &gt; Preferences &gt; Java &gt; Compiler)&lt;/p&gt;&lt;p&gt;In Netbeans, you can use (Tools -&gt; Java Platform Manager) to check your default platform.&lt;/p&gt;&lt;p&gt;If you use javac commond line, try: javac -1.5 xxx.java&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;Reference: http://laksmono.wordpress.com/2007/05/27/syntax-error-parameterized-types-are-only-available-if-source-level-is-50/&lt;br /&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-2826449201149365225?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/2826449201149365225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=2826449201149365225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/2826449201149365225?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/2826449201149365225?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2011/08/java-syntax-error-parameterized-types.html' title='Java: Syntax error, parameterized types are only available if source level is 5.0'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkQHQHcyfip7ImA9WhdRFU8.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-8865803444753430460</id><published>2011-08-04T21:58:00.000-07:00</published><updated>2011-08-04T21:58:51.996-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-04T21:58:51.996-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title>ant error: unable to find a javac compiler</title><content type='html'>When tomcat starts in service mode, it will call tomcat52.exe to start tomcat. By default, tomcat5w.exe uses java runtime as vm, and the vm will use its own JAVA_HOME setting which is stored in system registry data. For example, when you use JDK 1.4.2_06, java_home can be found in HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.4.2_06. Its default value is "C:\Program Files\Java\j2re1.4.2_06" which is java run time directory. You can change this to point to JDK home directory, like "C:\j2sdk1.4.2_06".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-8865803444753430460?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/8865803444753430460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=8865803444753430460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/8865803444753430460?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/8865803444753430460?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2011/08/ant-error-unable-to-find-javac-compiler.html' title='ant error: unable to find a javac compiler'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;A08MRXc4fSp7ImA9WhdRFUw.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-5278727331852884506</id><published>2009-02-16T09:06:00.000-08:00</published><updated>2011-08-04T21:51:24.935-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-04T21:51:24.935-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title>Comparison == vs equals() in Java</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: TimesNewRoman;"&gt;In java, we have two operations ("&lt;b&gt;==&lt;/b&gt;" and "&lt;b&gt;equals()&lt;/b&gt;") to check the equivalence of &lt;b&gt;String&lt;/b&gt;s. It is important to understand that the difference between them.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: TimesNewRoman;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;==&lt;/span&gt;&lt;br /&gt;
The == operator compares the &lt;span style="font-weight: bold;"&gt;two objects &lt;/span&gt;and  checks to see if two objects are &lt;b&gt;exactly the same object&lt;/b&gt; (refer to the same instance).&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;.equals()&lt;/span&gt;&lt;br /&gt;
The equals() method compares the characters in the two different objects. Two strings may be different &lt;b&gt;objects&lt;/b&gt;, but can contains the same values (exactly the same characters).&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: java" name="code"&gt;public class Main {

&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String s1 = "Shangshu";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String s2 = new String(s1);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(s1 + " == " + s2 + " is " + (s1 == s2));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(s1 + ".equals(" + s2 + ") is " + (s1.equals(s2)));
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

}
&lt;/pre&gt;&lt;br /&gt;
The output of the above code is:&lt;br /&gt;
&lt;pre class="brush: java"&gt;Shangshu == Shangshu is false
Shangshu.equals(Shangshu) is true
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
However, please compare the following code segment with the above code:&lt;br /&gt;
&lt;pre class="brush: java"&gt;public class Main {
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String s1 = "Shangshu";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String s2 = "Shangshu"; //new String(s1);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(s1 + " == " + s2 + " is " + (s1 == s2));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(s1 + ".equals(" + s2 + ") is " + (s1.equals(s2)));
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/pre&gt;&lt;br /&gt;
The output of this code will be:&lt;br /&gt;
&lt;pre class="brush: java"&gt;Shangshu == Shangshu is true
Shangshu.equals(Shangshu) is true
&lt;/pre&gt;&lt;br /&gt;
It is caused by the JVM optimization. When JVM detect two constant strings with the same content, it will optimize the the two constant strings to one copy to save memory. Therefore, the two string references will refer to the same object. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-5278727331852884506?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/5278727331852884506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=5278727331852884506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/5278727331852884506?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/5278727331852884506?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2009/02/java-string-comparison-vs-equals.html' title='Comparison == vs equals() in Java'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkcDR3czcCp7ImA9WxVXFEg.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-24889582977653674</id><published>2009-02-12T08:57:00.000-08:00</published><updated>2009-02-12T09:01:16.988-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-02-12T09:01:16.988-08:00</app:edited><title>Using String Table in VC</title><content type='html'>String table is a very useful resource for localization.  The usage is simple:&lt;br /&gt;&lt;br /&gt;Add a string to the string table:&lt;br /&gt;&lt;br /&gt;// ID                      VALUE        Caption&lt;br /&gt;IDS_STRING      58624(auto)          String Table Test&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the file, CString::LoadString() function can help you load the string from string table&lt;br /&gt;CString str;&lt;br /&gt;&lt;br /&gt;str.LoadString(IDS_STRING);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-24889582977653674?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/24889582977653674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=24889582977653674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/24889582977653674?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/24889582977653674?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2009/02/using-string-table-in-vc.html' title='Using String Table in VC'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;C0QNRncyfyp7ImA9WxVXFE8.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-1334698322481542317</id><published>2009-02-11T22:47:00.000-08:00</published><updated>2009-02-11T22:49:57.997-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-02-11T22:49:57.997-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='MFC'/><title>Create Splitting Windows in VC 2005</title><content type='html'>Add two CSplitterWnd type variables into the MainFrame:&lt;br /&gt;&lt;br /&gt;    CSplitterWnd    m_wndSplitterLM;  // split the window to left and middle panel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Than add the following code into the OnCreateClient Function:&lt;br /&gt;&lt;br /&gt;BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,&lt;br /&gt;    CCreateContext* pContext)&lt;br /&gt;{&lt;br /&gt;    // create a splitter with 1 row, 2 columns&lt;br /&gt;    if (!m_wndSplitterLM.CreateStatic(this, 1, 2))&lt;br /&gt;    {&lt;br /&gt;        TRACE("SpltLR create failed\n");&lt;br /&gt;        return false;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;        // add the first splitter pane - the default view in column 0&lt;br /&gt;    if (!m_wndSplitterLM.CreateView(0, 0,&lt;br /&gt;        RUNTIME_CLASS(CMultiLayerTree), CSize(60, 0), pContext))&lt;br /&gt;    {&lt;br /&gt;        TRACE0("Failed to create first pane\n");&lt;br /&gt;        return FALSE;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // add the second splitter pane - which splits the right window into two columns&lt;br /&gt;    if (!m_wndSplitterMR.CreateStatic(&lt;br /&gt;        &amp;amp;m_wndSplitterLM,     // our parent window is the first splitter&lt;br /&gt;        1, 2,               // the new splitter is 1 rows, 2 column&lt;br /&gt;        WS_CHILD | WS_VISIBLE,  // style, WS_BORDER is needed&lt;br /&gt;        m_wndSplitterLM.IdFromRowCol(0, 1)&lt;br /&gt;        // new splitter is in the first row, 2nd column of first splitter&lt;br /&gt;       ))&lt;br /&gt;    {&lt;br /&gt;        TRACE0("Failed to create nested splitter\n");&lt;br /&gt;        return FALSE;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    if (!m_wndSplitterMR.CreateView(0, 0,&lt;br /&gt;        pContext-&gt;m_pNewViewClass, CSize(600, 0), pContext))&lt;br /&gt;    {&lt;br /&gt;        TRACE0("Failed to create second pane\n");&lt;br /&gt;        return FALSE;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    if (!m_wndSplitterMR.CreateView(0, 1,&lt;br /&gt;        RUNTIME_CLASS(CCtrlPanel), CSize(40, 0), pContext))&lt;br /&gt;    {&lt;br /&gt;        TRACE0("Failed to create third pane\n");&lt;br /&gt;        return FALSE;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    return true;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-1334698322481542317?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/1334698322481542317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=1334698322481542317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/1334698322481542317?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/1334698322481542317?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2009/02/create-splitting-windows-in-vc-2005.html' title='Create Splitting Windows in VC 2005'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUcCRno6fCp7ImA9WxVQGE0.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-977132681753647573</id><published>2009-02-04T19:58:00.000-08:00</published><updated>2009-02-04T20:11:07.414-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-02-04T20:11:07.414-08:00</app:edited><title>Web服务器的架设 (1)</title><content type='html'>1.  Install Webserver: &lt;br /&gt;         &lt;span style="font-size:85%;"&gt; sudo apt-get install apache2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2.  Install Database Server&lt;br /&gt;         &lt;span style="font-size:85%;"&gt;sudo apt-get install mysql-server-5.0&lt;br /&gt;            Typing the password for Mysql server and keep it in mind.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3.  Install PHP5 and Apache PHP5 module&lt;br /&gt;&lt;code&gt;     sudo apt-get install php5 libapache2-mod-php5&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-977132681753647573?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/977132681753647573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=977132681753647573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/977132681753647573?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/977132681753647573?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2009/02/web-1.html' title='Web服务器的架设 (1)'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkUBQH88fCp7ImA9WxVQGE0.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-6839143090183978941</id><published>2009-02-04T19:19:00.000-08:00</published><updated>2009-02-04T19:24:11.174-08:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2009-02-04T19:24:11.174-08:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title>Enable root Account in Ubuntu Server</title><content type='html'>After ubuntu server has been installed, you can login with the account that you created. Then the following command can enable you create a password for root.&lt;br /&gt;&lt;br /&gt;  test@test: sudo passwd root&lt;br /&gt;&lt;br /&gt;  And then input your passwd for root.&lt;br /&gt;&lt;br /&gt;  Command "su" can let you access the root, just type:&lt;br /&gt;&lt;br /&gt;  test@test: su&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;  Be sure that remember the passwd for root for security reasons. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-6839143090183978941?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/6839143090183978941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=6839143090183978941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/6839143090183978941?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/6839143090183978941?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2009/02/enable-root-account-in-ubuntu-server.html' title='Enable root Account in Ubuntu Server'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkUCQ3o5fip7ImA9WhdSGE4.&quot;'><id>tag:blogger.com,1999:blog-1629744085272704510.post-6687014558015486322</id><published>2008-11-16T09:16:00.000-08:00</published><updated>2011-07-27T22:17:42.426-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-07-27T22:17:42.426-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title>Java函数参数的传递机制</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="color: #000099;"&gt;&lt;span class="hilite1"&gt;         &lt;span style="font-style: italic;"&gt; Java函数参数的传递是以&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;传递值&lt;/span&gt;&lt;span style="font-style: italic;"&gt;，或者说&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;副本&lt;/span&gt;&lt;span style="font-style: italic;"&gt;来进行的。&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
看到上面这句话可能从C/C++转过来的程序员可能会有些疑惑，那岂不是没有引用传递这一说了。那有些函数我需要用到传递引用怎么办呢？&lt;br /&gt;
&lt;br /&gt;
其实不然，Java函数也是可以传递引用的（是不是更迷惑了:))。 其实这要设计到Java变量和类型的存储引用机制。Java对原始变量存值，而对其它对象采用引用操作，类似C/C++的指针。如果我们称后者为&lt;span style="font-weight: bold;"&gt;引用类型&lt;/span&gt;的话。那么但&lt;span style="font-weight: bold;"&gt;引用类型&lt;/span&gt;传递给函数时，Java函数复制一个引用的副本 （这时这个引用的副本可以理解为 &lt;span style="font-weight: bold;"&gt;指向原对象指针的副本&lt;/span&gt;）。这样对这个引用的操作就会实时的反映到原对象上面。也即完成了原来C/C++中传递指针或者引用的功能。&lt;br /&gt;
&lt;br /&gt;
这样就不难理解为什么Java函数参数是传递值的了。&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #000099;"&gt;下面给出一个小小的例子：&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre title="Example" class="brush: java"&gt;class Ob {
   int value = 0;
   public Ob(int i) {
     value = i;
   }
}


public class Test {

public void increaseValue(int i){
i += 1;
System.out.println("In function i = " + i);
}

public void increaseValue(Ob ob){
ob.value += 1;

System.out.println("In function ob = " + ob.value);
}

public void increaseValue(Integer it){
it += 1;

System.out.println("In function it = " + it);
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Test test = new Test();

System.out.println("This is a Test");

int i = 0;
Integer it = new Integer(0);
Ob    ob = new Ob(0);

System.out.println("Before Function i = " + i);
test.increaseValue(i);
System.out.println("After Function i = " + i);

System.out.println("Before Function it = " + i);
test.increaseValue(it);
System.out.println("After Function it = " + it);

System.out.println("Before Function ob = " + ob.value);
test.increaseValue(ob);
System.out.println("After Function ob = " + ob.value);
}
}
&lt;/pre&gt;&lt;br /&gt;
===================output================&lt;br /&gt;
This is a Test&lt;br /&gt;
&lt;br /&gt;
Before Function i = 0&lt;br /&gt;
In function i = 1&lt;br /&gt;
After Function i = 0&lt;br /&gt;
&lt;br /&gt;
Before Function it = 0&lt;br /&gt;
In function it = 1&lt;br /&gt;
After Function it = 0&lt;br /&gt;
&lt;br /&gt;
Before Function ob = 0&lt;br /&gt;
In function ob = 1&lt;br /&gt;
After Function ob = 1&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1629744085272704510-6687014558015486322?l=shangshucai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shangshucai.blogspot.com/feeds/6687014558015486322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1629744085272704510&amp;postID=6687014558015486322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/6687014558015486322?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1629744085272704510/posts/default/6687014558015486322?v=2'/><link rel='alternate' type='text/html' href='http://shangshucai.blogspot.com/2008/11/java.html' title='Java函数参数的传递机制'/><author><name>尚书府</name><uri>http://www.blogger.com/profile/12242210807661026137</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry></feed>