锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲av乱码中文一区二区三区,亚洲伦乱亚洲h视频,色婷五月综激情亚洲综合http://www.tkk7.com/yuxh/wayzh-cnFri, 09 May 2025 22:38:45 GMTFri, 09 May 2025 22:38:45 GMT60Hive2.1婧愮爜鍒嗘瀽(涓錛夊惎鍔ㄨ剼鏈?/title><link>http://www.tkk7.com/yuxh/archive/2017/03/29/432418.html</link><dc:creator>yuxh</dc:creator><author>yuxh</author><pubDate>Wed, 29 Mar 2017 08:01:00 GMT</pubDate><guid>http://www.tkk7.com/yuxh/archive/2017/03/29/432418.html</guid><wfw:comment>http://www.tkk7.com/yuxh/comments/432418.html</wfw:comment><comments>http://www.tkk7.com/yuxh/archive/2017/03/29/432418.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yuxh/comments/commentRss/432418.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yuxh/services/trackbacks/432418.html</trackback:ping><description><![CDATA[鏈榪戝湪緗戜笂鐪嬪埌鐨勭浉鍏蟲潗鏂欓兘姣旇緝闄堟棫錛屼篃澶畝鐣ワ紝鍙傜湅浜嗕竴涓嬪叾浠栦漢鐨勫唴瀹癸紝閽堝Hive2.1.1鍋氱偣鍒嗕韓錛?br /><div style="margin: 0px; color: #000000; font-family: mononoki, Helvetica, 'Hiragino Sans GB', 寰蔣闆呴粦, 'Microsoft YaHei UI', SimSun, SimHei, arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">1錛変笅杞絘pache-hive-2.1.1-bin.tar.gz</div><div style="margin: 0px; color: #000000; font-family: mononoki,Helvetica,"Hiragino Sans GB",寰蔣闆呴粦,"Microsoft YaHei UI",SimSun,SimHei,arial,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><p style="margin: 0px;">2錛夎В鍘嬬緝錛屼笅闈㈢殑鍛戒護(hù)琛屽鍚姩鎶ラ敊錛岃鑷鏌ョ暐Hive鍚姩閰嶇疆</p><div style="margin: 0px;">3錛夊惎鍔?span style="line-height: 1.5;">hiveserver2</span> <span style="line-height: 1.5;">錛堥潪蹇呴』錛屼嬌鐢╦dbc璁塊棶鐨勬椂鍊欐墠浣跨敤錛?br /><div>bin鐩綍涓?/div></span></div><div style="margin: 0px;">hive --service hiveserver2 -p10001鏉ュ惎鍔?span style="line-height: 1.5;">hiveserver2</span> <span style="line-height: 1.5;">鏈嶅姟(榛樿涓?0000绔彛)</span></div><div style="margin: 0px;">nohup hive --service hiverserver2 -p10001鍙互鍦ㄥ悗鍙拌窇</div><div style="margin: 0px;">4錛?span style="line-height: 1.5;">hive鑴氭湰榪愯嫻佺▼</span><div style="margin: 0px;">bin鐩綍涓嬶紝浣跨敤鍛戒護(hù)鏂規(guī)硶涓猴細(xì)</div><div style="margin: 0px;"><div>./hive <parameters> --service serviceName <service parameters></div></div><div style="margin: 0px;">涓句緥錛歨ive --debug :</div><div style="margin: 0px;">   鏌ョ湅bin/hive鏂囦歡</div><div style="margin: 0px;">嫻佺▼涓細(xì)鍒ゆ柇$1=‘--debug’鍒?DEBUG=‘--debug’</div><div style="margin: 0px;"> <div style="margin: 0px;">if [ "$DEBUG" ]; then</div><div style="margin: 0px;">  if [ "$HELP" ]; then //<span style="line-height: 1.5;">濡傝繕鏈?-help錛屽氨浼?xì)鎵цdebug_help鏂規(guī)硶銆?/span></div></div></div><div style="margin: 0px;"><div style="margin: 0px;"><div style="margin: 0px;">    debug_help</div><div style="margin: 0px;">    exit 0</div><div style="margin: 0px;">  else</div><div style="margin: 0px;">    get_debug_params "$DEBUG"</div><div style="margin: 0px;">    export <span style="color: red;">HADOOP_CLIENT_OPTS</span>="$HADOOP_CLIENT_OPTS $HIVE_MAIN_CLIENT_DEBUG_OPTS"http://<span style="line-height: 1.5;">璁劇疆HIVE_MAIN_CLIENT_DEBUG_OPTS鐨勫弬鏁頒腑鍔犲叆debug鐩稿簲鍙傛暟</span></div><div style="margin: 0px;">  fi</div><div style="margin: 0px;">fi</div></div><div style="margin: 0px;"></div><div style="margin: 0px;"><div style="margin: 0px;">if [ "$SERVICE" = "" ] ; then</div><div style="margin: 0px;">  if [ "$HELP" = "_help" ] ; then</div><div style="margin: 0px;">    SERVICE="help"</div><div style="margin: 0px;">  else</div><div style="margin: 0px;">    SERVICE="cli"     //榛樿璧嬪糲li</div><div style="margin: 0px;">  fi</div><div style="margin: 0px;">fi</div></div><div style="margin: 0px;">榪欎釜shell鑴氭湰寰堝鍙橀噺搴旇鏄湪鍏朵粬sh鏂囦歡涓畾涔夛紝鍏朵腑$SERVICE_LIST灝辨槸鍏朵粬寰堝sh鏂囦歡鐨勬渶寮濮嬪艦鎴愮殑錛歟xport SERVICE_LIST="${SERVICE_LIST}${THISSERVICE} "</div><div style="margin: 0px;"></div><div style="margin: 0px;"><div style="margin: 0px;">hive鑴氭湰鏈鍚庣殑<span data-wiz-span="data-wiz-span" style="color: #ff0000;">$TORUN "$@"</span> 錛岄粯璁ゆ儏鍐典笅TORUN鍏跺疄灝辨槸cli,鍗蟲墽琛?ext/cli.sh鑴氭湰錛岃鑴氭湰涓富瑕佹槸璋冪敤/ext/util/execHiveCmd.sh 鏉ユ墽琛屾渶鍚庣殑CliDriver銆?/div><div style="margin: 0px;"> 銆?span style="line-height: 1.5;">shell鑴氭湰涓殑$*錛?@鍜?#</span><div style="margin: 0px;">涓句緥璇達(dá)細(xì)</div><div style="margin: 0px;">鑴氭湰鍚嶇О鍙玹est.sh 鍏ュ弬涓変釜: 1 2 3</div><div style="margin: 0px;">榪愯test.sh 1 2 3鍚?/div><div style="margin: 0px;">$*涓?1 2 3"錛堜竴璧瘋寮曞彿鍖呬綇錛?/div><div style="margin: 0px;">$@涓?1" "2" "3"錛堝垎鍒鍖呬綇錛?/div><div style="margin: 0px;">$#涓?錛堝弬鏁版暟閲忥級</div><span data-wiz-span="data-wiz-span">銆?/span></div><div style="margin: 0px;">鍗砮xec $HADOOP jar ${HIVE_LIB}/$JAR<span data-wiz-span="data-wiz-span"> $CLASS $HIVE_OPTS "$@" //1<br /></span></div><div style="margin: 0px;">鍏朵腑:</div><div style="margin: 0px;">$HADOOP=<span style="line-height: 1.5;">$HADOOP_HOME/bin/hadoop</span><span style="line-height: 1.5;"> 銆恏ive鑴氭湰涓畾涔?/span><span style="line-height: 1.5;">HADOOP=$HADOOP_HOME/bin/hadoop銆?/span></div><div style="margin: 0px;">$CLASS=org.apache.hadoop.hive.cli.CliDriver銆愪紶鍏ョ殑絎竴涓弬鏁幫紝鍦╟li.sh涓湁瀹氫箟銆?/div><div style="margin: 0px;"></div><div><div style="margin: 0px; color: #000000; font-family: mononoki, Helvetica, 'Hiragino Sans GB', 寰蔣闆呴粦, 'Microsoft YaHei UI', SimSun, SimHei, arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">hadoop鑴氭湰錛?.7.3涓轟緥錛変腑鏈緇堜細(xì)鎵ц錛?/div><div style="margin: 0px; color: #000000; font-family: mononoki, Helvetica, 'Hiragino Sans GB', 寰蔣闆呴粦, 'Microsoft YaHei UI', SimSun, SimHei, arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0px;"># Always respect HADOOP_OPTS and HADOOP_CLIENT_OPTS</div><div style="margin: 0px;">    HADOOP_OPTS="$HADOOP_OPTS $<span data-wiz-span="data-wiz-span" style="color: #ff0000;">HADOOP_CLIENT_OPTS</span>"</div><div style="margin: 0px;">    #make sure security appender is turned off</div><div style="margin: 0px;">    HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,NullAppender}"</div><div style="margin: 0px;"> </div><div style="margin: 0px;">    export CLASSPATH=$CLASSPATH</div><div style="margin: 0px;">    exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@" //2</div></div><div style="margin: 0px; color: #000000; font-family: mononoki,Helvetica,"Hiragino Sans GB",寰蔣闆呴粦,"Microsoft YaHei UI",SimSun,SimHei,arial,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">hive鐨刣ebug鍙傛暟灝辨槸鍦ㄥ惎鍔╤ive鑴氭湰鏃舵斁鍒癏ADOOP_OPTS涓殑</div></div><div style="margin: 0px;"></div><div style="margin: 0px;"><div><div style="margin: 0px; color: #000000; font-family: mononoki, Helvetica, 'Hiragino Sans GB', 寰蔣闆呴粦, 'Microsoft YaHei UI', SimSun, SimHei, arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0px;"><div style="margin: 0px;"><div style="margin: 0px;"><div><div style="margin: 0px; color: #000000; font-family: mononoki, Helvetica, 'Hiragino Sans GB', 寰蔣闆呴粦, 'Microsoft YaHei UI', SimSun, SimHei, arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 21px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0px;"><div style="margin: 0px;"><div style="margin: 0px;">1鍜?澶勭粨鍚堝彲寰楀埌鏈緇堢殑榪愯鍛戒護(hù)錛屾煡鐪嬩竴涓嬭繍琛岀粨鏋滐細(xì)ps -ef|grep CliDriver</div></div></div></div></div></div></div></div></div></div><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">  </span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">java</span><span style="color: #000000; ">/</span><span style="color: #000000; ">jdk1.</span><span style="color: #000000; ">8</span><span style="color: #000000; ">.0_101</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">java </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Xmx256m </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Djava.net.preferIPv4Stack</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dhadoop.log.dir</span><span style="color: #000000; ">=</span><span style="color: #000000; ">.. </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dhadoop.log.file</span><span style="color: #000000; ">=</span><span style="color: #000000; ">hadoop.log </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dhadoop.home.dir</span><span style="color: #000000; ">=</span><span style="color: #000000; ">.. </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dhadoop.id.str</span><span style="color: #000000; ">=</span><span style="color: #000000; ">root </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dhadoop.root.logger</span><span style="color: #000000; ">=</span><span style="color: #000000; ">INFO,console </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Djava.library.path</span><span style="color: #000000; ">=</span><span style="color: #000000; ">.. </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dhadoop.policy.file</span><span style="color: #000000; ">=</span><span style="color: #000000; ">hadoop</span><span style="color: #000000; ">-</span><span style="color: #000000; ">policy.xml </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Djava.net.preferIPv4Stack</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Xmx512m </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dproc_hivecli </span><span style="color: #000000; ">-</span><span style="color: #000000; ">XX:</span><span style="color: #000000; ">+</span><span style="color: #000000; ">UseParallelGC </span><span style="color: #000000; ">-</span><span style="color: #000000; ">agentlib:jdwp</span><span style="color: #000000; ">=</span><span style="color: #000000; ">transport</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dt_socket,server</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y,address</span><span style="color: #000000; ">=</span><span style="color: #000000; ">8000</span><span style="color: #000000; ">,suspend</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dlog4j.configurationFile</span><span style="color: #000000; ">=</span><span style="color: #000000; ">hive</span><span style="color: #000000; ">-</span><span style="color: #000000; ">log4j2.properties </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Djava.util.logging.config.file</span><span style="color: #000000; ">=</span><span style="color: #000000; ">..<br />  </span><span style="color: #000000; ">-</span><span style="color: #000000; ">Dhadoop.security.logger</span><span style="color: #000000; ">=</span><span style="color: #000000; ">INFO,NullAppender org.apache.hadoop.util.RunJar </span><span style="color: #000000; "></span><span style="color: #000000; ">/</span><span style="color: #000000; ">yuxh</span><span style="color: #000000; ">/</span><span style="color: #000000; ">app</span><span style="color: #000000; ">/</span><span style="color: #000000; ">apache</span><span style="color: #000000; ">-</span><span style="color: #000000; ">hive</span><span style="color: #000000; ">-</span><span style="color: #000000; ">2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">*/</span><span style="color: #000000; ">lib</span><span style="color: #000000; ">/</span><span style="color: #000000; ">hive</span><span style="color: #000000; ">-</span><span style="color: #000000; ">cli</span><span style="color: #000000; ">-</span><span style="color: #000000; ">2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">*</span><span style="color: #000000;">.jar org.apache.hadoop.hive.cli.CliDriver</span></div></div></div></div></div><img src ="http://www.tkk7.com/yuxh/aggbug/432418.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yuxh/" target="_blank">yuxh</a> 2017-03-29 16:01 <a href="http://www.tkk7.com/yuxh/archive/2017/03/29/432418.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>JBoss Forge 2鍏ラ棬鏁欑▼http://www.tkk7.com/yuxh/archive/2015/09/23/427327.htmlyuxhyuxhWed, 23 Sep 2015 13:14:00 GMThttp://www.tkk7.com/yuxh/archive/2015/09/23/427327.htmlhttp://www.tkk7.com/yuxh/comments/427327.htmlhttp://www.tkk7.com/yuxh/archive/2015/09/23/427327.html#Feedback0http://www.tkk7.com/yuxh/comments/commentRss/427327.htmlhttp://www.tkk7.com/yuxh/services/trackbacks/427327.html闃呰鍏ㄦ枃

yuxh 2015-09-23 21:14 鍙戣〃璇勮
]]>
appfuse3.5鎵撳嵃Hibernate sql鍙傛暟http://www.tkk7.com/yuxh/archive/2015/07/22/426376.htmlyuxhyuxhWed, 22 Jul 2015 06:11:00 GMThttp://www.tkk7.com/yuxh/archive/2015/07/22/426376.htmlhttp://www.tkk7.com/yuxh/comments/426376.htmlhttp://www.tkk7.com/yuxh/archive/2015/07/22/426376.html#Feedback0http://www.tkk7.com/yuxh/comments/commentRss/426376.htmlhttp://www.tkk7.com/yuxh/services/trackbacks/426376.htmlappfuse3.5浣跨敤Hibernate4.3.6, 鑰孒ibernate鏃ュ織妗嗘灦浣跨敤浜唈boss-logging錛屾兂鍦ㄥ悗鍙版墦鍑簊ql鐨勫弬鏁頒竴鐩存棤娉曠敓鏁堛?/div>
媯(gè)鏌ラ厤緗枃浠訛紝妗嗘灦閲岄潰鐨勪袱涓厤緗枃浠訛紝src/test/resources/log4j2.xml錛堝崟鍏冩祴璇曟椂閰嶇疆錛夛紝src/main/resources/log4j2.xml錛堣繍琛屾椂閰嶇疆錛?/div>
鎼炴竻log4j2鐨勯厤緗悗錛屽悇縐嶄慨鏀癸紙涓昏鏄?/div>
  <Logger name="org.hibernate.SQL" level="trace"/>
  <Logger name="org.hibernate.type" level="trace"/>)
鐢╦unit嫻嬭瘯浠葷劧鏃犳硶鎵撳嵃鍑虹湡瀹炲弬鏁般傛牴鎹繖浜涘疄璺碉紝紜畾log4j2鏄嬌鐢ㄦ棤璇敓鏁堢殑錛屽彧鏄痮rg.hibernate榪欓儴鍒嗙殑logger涓鐩存湭璧鋒晥
鍙傝冨浗鍐呭緗戠珯錛屼竴鐩存棤浜哄洖絳攈ibernate4鐨勮繖涓棶棰橈紝鏈変漢鎸囧嚭榪欓儴鍒咹ibernate瀹樻柟鏂囨。鍙槸鎻愪簡涓鍙ワ紝涓鐩存湭鏇存柊鐩稿叧鍐呭銆傛渶鍚庢湁浜烘彁鍒板簲璇ユ槸 jboss-logging 鐨?/span>LoggerProviders榪欎釜綾葷殑闂錛岀湅瀹炵幇瀵筶og4j2宸茬粡鍋氭敮鎸併傛渶鍚庡彂鐜?nbsp;jboss-logging浣跨敤鐨勬槸3.2.0.beta錛屽姣旂浉鍏崇被鐨勬簮浠g爜錛屾洿鏀逛負(fù)3.2.0.Final錛岀敓鏁堬紒

P.S 鎶婅繖涓棶棰樻彁浜ょ粰Appfuse瀹樼綉錛宨ssue APF-1478錛屼綔鑰呮爣蹇椾負(fù)4.0鐗堟湰淇銆?/span>


yuxh 2015-07-22 14:11 鍙戣〃璇勮
]]>Andriod webview瀹炵幇鏂囦歡涓婁紶http://www.tkk7.com/yuxh/archive/2012/03/12/371715.htmlyuxhyuxhMon, 12 Mar 2012 04:54:00 GMThttp://www.tkk7.com/yuxh/archive/2012/03/12/371715.htmlhttp://www.tkk7.com/yuxh/comments/371715.htmlhttp://www.tkk7.com/yuxh/archive/2012/03/12/371715.html#Feedback1http://www.tkk7.com/yuxh/comments/commentRss/371715.htmlhttp://www.tkk7.com/yuxh/services/trackbacks/371715.html
Andriod 鍒?.2鐗堟湰涓烘錛寃ebview鏂瑰紡涓嬩嬌鐢?lt;input type="file" />鐐瑰嚮鍚庨兘娌℃湁鍙嶅簲銆傚疄闄呬笂欏跺眰鏄湁闅愬惈鐨勬帴鍙f病瀹炵幇鐨勶紝鍙互鑷繁閲嶅啓榪欎釜鏂規(guī)硶鏉ュ疄鐜般備互phonegap涓轟緥錛?br />
public class App extends DroidGap {
    
private ValueCallback<Uri> mUploadMessage;
    
private final static int FILECHOOSER_RESULTCODE = 1;

    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
super.init();
        
// WebView wv = new WebView(this);
        
// wv.setWebViewClient(new WebViewClient());
        this.appView.setWebChromeClient(new CordovaChromeClient(App.this) {
            
// For Android 3.0+
            public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
                mUploadMessage 
= uploadMsg;
                Intent i 
= new Intent(Intent.ACTION_GET_CONTENT);
                i.addCategory(Intent.CATEGORY_OPENABLE);
                i.setType(
"image/*");
                App.
this.startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE);
            }

            
// The undocumented magic method override
            
// Eclipse will swear at you if you try to put @Override here
            public void openFileChooser(ValueCallback<Uri> uploadMsg) {
                mUploadMessage 
= uploadMsg;
                Intent i 
= new Intent(Intent.ACTION_GET_CONTENT);
                i.addCategory(Intent.CATEGORY_OPENABLE);
                i.setType(
"image/*");
                App.
this.startActivityForResult(Intent.createChooser(i, "File Chooser"), App.FILECHOOSER_RESULTCODE);
            }
        });

        
// setContentView(wv);
        super.loadUrl("file:///android_asset/www/login.html");
    }

    @Override
    
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        
if (requestCode == FILECHOOSER_RESULTCODE) {
            
if (null == mUploadMessage)
                
return;
            Uri result 
= intent == null || resultCode != RESULT_OK ? null : intent.getData();
            mUploadMessage.onReceiveValue(result);
            mUploadMessage 
= null;
        }
    }
}
濡傛灉鐩存帴鐨剋ebview鏂瑰紡錛宔xtends WebChromeClient鍗沖彲銆? 鍙傝冿細(xì)http://stackoverflow.com/questions/5907369/file-upload-in-webview

yuxh 2012-03-12 12:54 鍙戣〃璇勮
]]>RCP涓嶥ocument椋庢牸http://www.tkk7.com/yuxh/archive/2011/10/08/360224.htmlyuxhyuxhSat, 08 Oct 2011 13:47:00 GMThttp://www.tkk7.com/yuxh/archive/2011/10/08/360224.htmlhttp://www.tkk7.com/yuxh/comments/360224.htmlhttp://www.tkk7.com/yuxh/archive/2011/10/08/360224.html#Feedback0http://www.tkk7.com/yuxh/comments/commentRss/360224.htmlhttp://www.tkk7.com/yuxh/services/trackbacks/360224.html鏈変袱縐峉OAP message椋庢牸錛?em>document 鍜?em>RPC錛?/em>浠栦滑瀹氫箟浜哠OAP message body鐨勬牸寮忋備嬌鐢╠ocument椋庢牸鏃訛紙鍖呮嫭wrapped鍜寀nwrapped錛夛紝鍦╳sdl涓湁涓涓潪絀虹殑types閮ㄥ垎錛岃繖涓儴鍒嗙敤XML Schema language瀹氫箟浜唚eb service瑕佺敤鍒扮殑綾誨瀷銆?em>wsgen宸ュ叿浠嶴IB錛堟湁SEI灝辮凍澶熶簡錛変腑鐢熸垚涓嶺SD瀵瑰簲鐨刯ava綾匯傜敤java浠g爜鐢熸垚WSDL鏂囦歡鐨勬椂鍊欓渶瑕佷竴浜沯ava綾伙紝wsgen宸ュ叿鍙互鐢熸垚榪欎簺Java綾伙紝鐢熸垚鐨勮繖浜沯ava綾昏縐頒負(fù)wsgen artifacts錛屽簳灞傜殑JWS綾誨簱浼?xì)鐢ㄥ埌杩欎簺绫诲Q岀壒鍒槸JAX-B緋誨垪鐨勫寘錛屼細(xì)鐢ㄦ潵杞崲(marshal)java綾誨疄渚?that is, Java in-memory objects)涓篨ML綾誨瀷鐨刋ML瀹炰緥錛堟弧瓚砐ML Schema document鐨刋ML鏂囨。瀹炰緥錛夛紝

The inverse operation is used to convert (unmarshal) an XML document instance to an in-memory
object, an object of a Java type or a comparable type in some other language銆傚洜姝?em>wsgen宸ュ叿鐢熸垚鐨刟rtifacts錛屾敮鎸佷簡Java涓哄熀紜鐨剋eb service鐨勪簰鎿嶄綔鎬с侸AX-B綾誨簱鎻愪緵浜咼ava鍜孹SD綾誨瀷杞崲鐨勫簳灞傛敮鎸併?/p>

For the most part, the wsgen utility can be used without our bothering to inspect the artifacts that it produces. For the most part, JAX-B remains unseen infrastructure.

wsgen artifacts瀹為檯涓婃槸wsdl message鐨勬暟鎹被鍨嬶紝浠栦滑鍜孹ML Schema type緇戝畾錛屾瘡涓猰essage鐨刋ML Schema types浠庤繖浜沯ava綾誨瀷寰楁潵鐨勩傛敞錛氬湪褰撳墠鐨刯dk1.6.24涓紝宸茬粡铻嶅叆wsgen鑷姩鐢熸垚鐨勮繃紼嬶紝涓嶉渶鎵嬪姩璋冪敤銆?/p>

wsgen宸ュ叿鍙敤鏉ョ敓鎴恮sdl鏂囦歡錛屽錛? wsgen -cp "." -wsdl ch01.ts.TimeServerImpl 銆傝繖涓篢imeServer鏈嶅姟鐢熸垚浜唚sdl銆傜敤wsgen鐢熸垚鐨剋sdl鍜岄氳繃璁塊棶鍙戝竷鐨勬湇鍔$敓鎴愮殑wsdl 鏈変釜寰堝ぇ鐨勫尯鍒細(xì)wsgen鐢熸垚鐨勬病鏈塭ndpoint,鍥犱負(fù)榪欎釜URL鏄湪鍙戝竷鏈嶅姟鐨勬椂鍊欏喅瀹氱殑銆傚叾浠栧湴鏂逛袱涓獁sdl鏄浉鍚岀殑銆?/p>

wsimport(浠ュ墠鍙玾sdl2java鍜?java2wsdl鏇村艦璞?em>)宸ュ叿鍙嬌鐢╓SDL鐢熸垚鐢ㄦ潵甯姪鍐欏鎴風(fēng)鐨刟rtifacts .

1 鍏堝綰﹀啀緙栫爜鏂瑰紡
涓涓緥瀛愶細(xì)寰楀埌涓涓猼empConvert.wsdl鏂囦歡錛屼嬌鐢ㄥ懡浠?wsimport -keep -p ch02.tc tempConvert.wsdl 錛屽懡浠ゆ牴鎹畐sdl鐨刾ortType鐢熸垚涓涓猄EI綾伙紝鎶奡EI鐨刬nterface鎹負(fù)class錛屽啀鎶婃柟娉曟敼涓哄疄鐜板氨鍙彉涓篠IB銆傛妸璇IB鍙戝竷錛屽啀浣跨敤鍛戒護(hù)wsimport -keep -p clientTC http://localhost:5599/tc?wsdl錛屾潵鐢熸垚瀹㈡埛绔緟鍔╃被
2 緙栫爜浼樺厛
鏈嶅姟琚彂甯冧箣鍚庯紝浼?xì)鑷姩鐢熸垚WSDL渚涘鎴風(fēng)浣跨敤銆傜劧鑰岋紝浣跨敤annotations鍙互鎺у埗WSDL鎴朩SDL-generated artifacts鐨勭敓鎴愩?/p>

yuxh 2011-10-08 21:47 鍙戣〃璇勮
]]>
鍖哄垎getPath(), getAbsolutePath(), getCanonicalPath()http://www.tkk7.com/yuxh/archive/2011/06/24/352951.htmlyuxhyuxhFri, 24 Jun 2011 05:42:00 GMThttp://www.tkk7.com/yuxh/archive/2011/06/24/352951.htmlhttp://www.tkk7.com/yuxh/comments/352951.htmlhttp://www.tkk7.com/yuxh/archive/2011/06/24/352951.html#Feedback0http://www.tkk7.com/yuxh/comments/commentRss/352951.htmlhttp://www.tkk7.com/yuxh/services/trackbacks/352951.html

鏉ヨ嚜

http://stackoverflow.com/questions/1099300/whats-the-difference-between-getpath-getabsolutepath-and-getcanonicalpath

C:\temp\file.txt" - this is a path, an absolute path, a canonical path

.\file.txt This is a path, It's not an absolute path nor canonical path.

C:\temp\myapp\bin\..\\..\file.txt This is a path, and an absolute path, it's not a canonical path

Canonical path is always an absolute path.

Converting from a path to a canonical path makes it absolute (閫氬父浼?xì)澶勭悊鏀瑰彉褰撳墠鐩綍锛屾墍浠ュ儚. ./file.txt 鍙樹負(fù)c:/temp/file.txt). The canonical path of a file just "purifies" the path, 鍘婚櫎鍜岃В鏋愮被浼?#8220; ..\” and resolving symlinks(on unixes)

In short:

  • getPath() gets the path string that the File object was constructed with, and it may be relative current directory.
  • getAbsolutePath() gets the path string after resolving it against the current directory if it's relative, resulting in a fully qualified path.
  • getCanonicalPath() gets the path string after resolving any relative path against current directory, and removes any relative pathing (. and ..), and any file system links to return a path which the file system considers the canonical means to reference the file system object to which it points.

Also, each of this has a File equivalent which returns the corresponding File object.

The best way I have found to get a feel for things like this is to try them out:

import java.io.File;
public class PathTesting {
        public static void main(String [] args) {
                File f = new File("test/.././file.txt");
                System.out.println(f.getPath());
                System.out.println(f.getAbsolutePath());
                try {
                        System.out.println(f.getCanonicalPath());
                }
                catch(Exception e) {}
        }
}

Your output will be something like:

test\..\.\file.txt
C:\projects\sandbox\trunk\test\..\.\file.txt
C:\projects\sandbox\trunk\file.txt

So, getPath() gives you the path based on the File object, which may or may not be relative; getAbsolutePath() gives you an absolute path to the file; and getCanonicalPath() gives you the unique absolute path to the file. Notice that there are a huge number of absolute paths that point to the same file, but only one canonical path.

When to use each? Depends on what you're trying to accomplish, but if you were trying to see if two Files are pointing at the same file on disk, you could compare their canonical paths.


yuxh 2011-06-24 13:42 鍙戣〃璇勮
]]>
XML浠嬬粛http://www.tkk7.com/yuxh/archive/2011/03/24/346908.htmlyuxhyuxhThu, 24 Mar 2011 01:05:00 GMThttp://www.tkk7.com/yuxh/archive/2011/03/24/346908.htmlhttp://www.tkk7.com/yuxh/comments/346908.htmlhttp://www.tkk7.com/yuxh/archive/2011/03/24/346908.html#Feedback0http://www.tkk7.com/yuxh/comments/commentRss/346908.htmlhttp://www.tkk7.com/yuxh/services/trackbacks/346908.htmlDTDs

Introduced as part of the XML 1.0 specification, DTDs are the oldest constraint model around in the XML world. They're simply to use, but this simplicity comes at a price: DTDs are inflexible, and offer you little for data type validation as well.

XML Schema (XSD)

XML Schema is the W3C's anointed successor to DTDs. XML Schemas are literally orders of magnitude more flexible than DTDs, and offer an almost dizzying array of support for various data types. However, just as DTDs were simple and limited, XML Schemas are flexible, complex, and (some would argue) bloated. It takes a lot of work to write a good schema, even for 50- or 100-line XML documents. For this reason, there's been a lot of dissatisfaction with XML Schema, even though they are widely being used.

[prefix]:[element name]
鍏冪礌錛?br>root鍏冪礌蹇呴』鍖呭惈鎵鏈夋枃妗d腑鐨勫厓绱狅紝鍙兘鏈変竴涓猺oot鍏冪礌銆傚厓绱犲悕鍙兘浠ヤ笅鍒掔嚎鎴栧瓧姣嶅紑澶達(dá)紝涓嶈兘鏈夌┖鏍鹼紝鍖哄垎澶у皬鍐欍傚紑鍏冪礌蹇呴』鏈夊搴旈棴鍏冪礌錛堜篃鏈夌被浼糷tml鐨勭畝鍐欙紝濡?lt;img src="http://www.tkk7.com/images/xml.gif" />錛夈傛枃妗g敱DTD鎴杝chema鏉ラ檺鍒跺畠鏄惁鍚堟牸銆?/pre>
灞炴э細(xì)
浠涔堟椂鍊欑敤灞炴э紵鍩烘湰鍘熷垯錛氬涓肩殑鏁版嵁鐢ㄥ厓绱狅紝鍗曞肩殑鏁版嵁鐢ㄥ厓绱犮傚鏋滄暟鎹湁寰堝鍊兼垨鑰呮瘮杈冮暱錛屾暟鎹渶鍙兘灞炰簬鍏冪礌銆備粬涓昏琚綋浣滄枃鏈紝瀹?lt;rss:author>Doug Hally</rss:author> <journal:author>Neil Gaiman</journal:author>鏄撴悳绱紝濂界敤銆傛瘮濡備竴鏈功鐨勭珷鑺傛弿榪般傜劧鑰屽鏋滄暟鎹富瑕佷綔涓哄崟鍊煎鐞嗙殑璇濓紝鏈濂戒綔涓哄睘鎬с傚鏋滄悶涓嶆竻妤氾紝鍙互瀹夊叏鐨勪嬌鐢ㄥ厓绱犮?/pre>
鍛藉悕絀洪棿Namespaces錛?br>xml鐨勫懡鍚嶇┖闂存槸涓縐嶇敤涓涓壒瀹氱殑URI鏉ュ叧鑱擷ML鏂囨。閲岀殑涓涓垨澶氫釜鍏冪礌鐨勬柟娉曘傛剰鍛崇潃鍏冪礌鏄敱鍚嶅瓧鍜屽懡鍚嶇┖闂翠竴璧鋒潵璇嗗埆鐨勩傝澶氬鏉傜殑XML鏂囦歡閲岋紝鍚屼竴涓悕瀛椾細(xì)鏈夊涓敤閫斻傛瘮濡傦紝涓涓猂SS feed鏈変竴涓綔鑰咃紝榪欎釜浣滆呭悓鏃舵槸姣忎釜鏃ヨ鐨勩傝櫧鐒惰繖浜涙暟鎹兘鐢╝uthor鍏冪礌鏉ヨ〃紺猴紝浣嗕粬浠笉搴旇琚綋浣滃悓涓涓?em>綾誨瀷鐨勬暟鎹傚懡鍚嶇┖闂村緢濂界殑瑙e喅浜嗚繖涓棶棰橈紝鍛藉悕絀洪棿璇存槑涔﹁姹備竴涓墠緙鍜屽敮涓鐨刄RI鑱斿悎璧鋒潵鍖哄垎涓嶅悓鍛藉悕絀洪棿閲岀殑鍏冪礌銆傚http://www.neilgaiman.com/entries浣滀負(fù)URI錛岃仈鍚堝墠緙journal鐢ㄦ潵琛ㄧず鏃ュ織鐩稿叧鐨勫厓绱犮?br><rdf:RDF xmlns:rss="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:journal="http://www.neilgaiman.com/entries">錛岀劧鍚庡氨鍙嬌鐢ㄤ簡錛?br><rss:author>Doug Hally</rss:author> <journal:author>Neil Gaiman</journal:author>瀹為檯涓婂湪浣跨敤鍛藉悕絀洪棿鍓嶇紑鐨勬椂鍊欏啀瀹氫箟涔熷彲浠ョ殑錛?br><rss:author xmlns:rss="http://www.w3.org/1999/02/22-rdf-syntax-ns#">Doug Hally</rss:author>
濡傛灉鍚嶅瓧娌℃湁鍛藉悕絀洪棿錛屼笉浠h〃鍦ㄩ粯璁ゅ懡鍚嶇┖闂翠腑錛岃屾槸xml澶勭悊鍣ㄤ互鍦ㄤ換浣曞懡鍚嶇┖闂翠互澶栨柟寮忚В閲婁粬銆傝澹版槑榛樿鍛藉悕絀洪棿鐨勮瘽灝變笉鐢ㄥ悗闈㈠啋鍙烽儴鍒嗭紝濡?lt;Insured xmlns="浣跨敤鐨勪竴浜涙湳璇?/strong>:
  • The name of a namespace (such as http://www.ibm.com/software) is the namespace URI.

  • The element or attribute name can include a prefix and a colon (as in prod:Quantity). A name in that form is called a qualified name, or QName, and the identifier that follows the colon is called a local name. If a prefix is not in use, neither is the colon, and the QName and local name are identical.

  • An XML identifier (such as a local name) that has no colon is sometimes called an NCName. (The NC comes from the phrase no colon.)

Entity references:
鐢ㄦ潵澶勭悊杞箟瀛楃錛岃娉曟槸& [entity name] ;XML瑙f瀽鍣ㄧ鍒拌繖縐峞ntity reference錛屽氨浼?xì)鐢ㄥ搴旂殑鍊兼浛鎹㈡帀浠栥傚&lt;錛?lt;錛?&gt;(>),&amp;(&),&quot;("),&apos;(')銆傛敞鎰廵ntity reference鏄敤鎴峰彲瀹氫箟鐨勩傛瘮濡傚澶勭敤鍒扮増鏉冩彁紺猴紝鑷繁瀹氫箟鍚庝互鍚庢洿鏀瑰氨鏂逛究浜嗭細(xì)<ora:copyright>&OReillyCopyright;</ora:copyright>銆傞櫎浜嗙敤鏉ヨ〃紺烘暟鎹腑鐨勫鏉傛垨鐗規(guī)畩瀛楃澶栵紝entity reference榪樹細(xì)鏈夋洿澶氱敤閫斻?/p>

涓嶈В鏋愮殑鏁版嵁錛?br>褰撲紶杈撳ぇ閲忔暟鎹粰搴旂敤涓斾笉鐢▁ml瑙f瀽鐨勬椂鍊欙紝CDATA灝辨湁鐢ㄤ簡銆傚綋澶ч噺鐨勫瓧絎﹂渶瑕佺敤entity reference杞箟鐨勬椂鍊欙紝鎴栫┖鏍煎繀欏諱繚鐣欑殑鏃跺欙紝浣跨敤CDATA銆?lt;![CDATA[鈥?]]>



yuxh 2011-03-24 09:05 鍙戣〃璇勮
]]>js鍒嗗壊csv鏂囦歡 http://www.tkk7.com/yuxh/archive/2010/12/03/339669.htmlyuxhyuxhFri, 03 Dec 2010 01:06:00 GMThttp://www.tkk7.com/yuxh/archive/2010/12/03/339669.htmlhttp://www.tkk7.com/yuxh/comments/339669.htmlhttp://www.tkk7.com/yuxh/archive/2010/12/03/339669.html#Feedback0http://www.tkk7.com/yuxh/comments/commentRss/339669.htmlhttp://www.tkk7.com/yuxh/services/trackbacks/339669.htmlhttp://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm錛屾妸csv鏂囦歡鎸夊垎闅旂鍒囧壊鍚庢斁鍦ㄦ暟緇勪腑銆?
// This will parse a delimited string into an array of arrays. 
   // The default delimiter is the comma, but this

// can be overriden in the second argument.
    CSVToArray:function(strData, strDelimiter){
 
        
// Check to see if the delimiter is defined. If not,
        // then default to comma.
        strDelimiter = (strDelimiter || ",");
        
// Create a regular expression to parse the CSV values.
        var objPattern = new RegExp(
            (
                
// Delimiters.
                "(\\" + strDelimiter + "|\\r?\\n|\\r|^)" +
 
                
// Quoted fields.
                "(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +
 
                
// Standard fields.
                "([^\"\\" + strDelimiter + "\\r\\n]*))"
            ),
            
"gi"
            );
 
 
        // Create an array to hold our data. Give the array
        // a default empty first row.
        var arrData = [[]];
 
        // Create an array to hold our individual pattern
        // matching groups.
        var arrMatches = null;
 
 
        // Keep looping over the regular expression matches
        // until we can no longer find a match.
        while (arrMatches = objPattern.exec( strData )){
 
            // Get the delimiter that was found.
            var strMatchedDelimiter = arrMatches[ 1 ];
 
            // Check to see if the given delimiter has a length
            // (is not the start of string) and if it matches
            // field delimiter. If id does not, then we know
            // that this delimiter is a row delimiter.
            if (
                strMatchedDelimiter.length &&
                (strMatchedDelimiter != strDelimiter)
                ){
 
                // Since we have reached a new row of data,
                // add an empty row to our data array.
                arrData.push( [] );
            }
 
 
            // Now that we have our delimiter out of the way,
            // let's check to see which kind of value we
            // captured (quoted or unquoted).
            if (arrMatches[ 2 ]){
 
                // We found a quoted value. When we capture
                // this value, unescape any double quotes.
                var strMatchedValue = arrMatches[ 2 ].replace(
                    new RegExp( 
"\"\"""g" ),
                    
"\""
                    );
 
            }
 else {
 
                
// We found a non-quoted value.
                var strMatchedValue = arrMatches[ 3 ];
            }

 
 
            
// Now that we have our value string, let's add
            // it to the data array.
            arrData[ arrData.length - 1 ].push( strMatchedValue );
        }
 
        
// Return the parsed data.
        return( arrData );
    }


yuxh 2010-12-03 09:06 鍙戣〃璇勮
]]>
Java Puzzlers錛堜笁-浜?寰幆錛?/title><link>http://www.tkk7.com/yuxh/archive/2010/11/15/338121.html</link><dc:creator>yuxh</dc:creator><author>yuxh</author><pubDate>Mon, 15 Nov 2010 11:59:00 GMT</pubDate><guid>http://www.tkk7.com/yuxh/archive/2010/11/15/338121.html</guid><wfw:comment>http://www.tkk7.com/yuxh/comments/338121.html</wfw:comment><comments>http://www.tkk7.com/yuxh/archive/2010/11/15/338121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yuxh/comments/commentRss/338121.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yuxh/services/trackbacks/338121.html</trackback:ping><description><![CDATA[<p>31 <br>while (i != 0)<br>    i >>>= 1; //鏃犵鍙峰彸縐伙紝涓嶇姝h礋宸﹁竟閮芥槸琛?<br>涓轟簡琛ㄨ揪寮忓悎娉曪紝榪欓噷鐨刬蹇呴』鏄暣鍨?<tt>byte</tt>, <tt>char</tt>, <tt>short</tt>, <tt>int</tt>, or <tt>long</tt>)銆傝皽棰樼殑鍏抽敭鍦ㄤ簬<tt>>>>=</tt> 鏄竴涓鍚堣祴鍊兼搷浣滅錛屼笉騫哥殑鏄鍚堣祴鍊兼搷浣滅浼?xì)榛橀粯鐨勫?span class="docEmphasis">narrowing primitive conversions錛屽嵆浠庝竴涓暟鎹被鍨嬭漿鎹負(fù)涓涓洿灝忕殑鏁版嵁綾誨瀷銆?span class="docEmphStrong">Narrowing primitive conversions can lose information about the magnitude or precision of numeric values</span>銆備負(fù)浜嗕嬌闂鏇村叿浣擄紝鍋囪榪欐牱瀹氫箟錛?br>short i = -1; 鍥犱負(fù)鍒濆鍊糹 (<tt>(short)0xffff</tt>) 闈為浂錛屽驚鐜墽琛屻傜涓姝ヤ綅縐諱細(xì)鎶奿鎻愬崌涓篿nt銆?tt>short</tt>, <tt>byte</tt>, or <tt>char</tt>綾誨瀷鐨勬搷浣滄暟閮戒細(xì)鍋氳繖鏍風(fēng)殑鎿嶄綔銆傝繖鏄?span class="docEmphasis">widening</span> primitive conversion錛屾病鏈変俊鎭涪澶便傝繖縐嶆彁鍗囨湁絎﹀彿鎵╁睍錛屽洜姝ょ粨鏋滄槸int鍊?tt>0xffffffff</tt>銆傛棤絎﹀彿鍙崇Щ涓浣嶄駭鐢焛nt鍊?tt>0x7fffffff</tt>銆備負(fù)浜嗘妸int鍊煎瓨鍥瀞hort鍙橀噺錛孞ava鎵ц浜嗗彲鎬曠殑narrowing primitive conversion,鍗崇畝鍗曞幓鎺夐珮鍗佸叚浣嶃傝繖鏍峰張鍙樺洖浜?tt>(short)0xffff</tt>銆傚鏋滃畾涔夌被浼?tt>short</tt> or <tt>byte</tt>鍨嬬殑璐熸暟錛岄兘浼?xì)寰楀埌绫讳技缁撴灉銆備綘濡傛灉瀹氫箟鐨勬槸char璇濓紝鍒欎笉浼?xì)鏃犻檺弩@鐜紝鍥犱負(fù)char鍊奸潪璐燂紝浣嶇Щ涔嬪墠鐨勫鎵╁睍涓嶄細(xì)鍋氱鍙鋒墿灞曘?br><br>鎬葷粨錛?span style="color: red">涓嶈鍦?tt>short</tt>, <tt>byte</tt>, or <tt>char</tt>鍙橀噺涓婁嬌鐢ㄥ鍚堣祴鍊兼搷浣滅</span>銆傝繖縐嶈〃杈懼紡榪涜娣峰悎綾誨瀷璁$畻錛岄潪甯稿鏄撴販娣嗐傛洿緋熺硶鐨勬槸闅愬惈鐨勭獎(jiǎng)鏄犲皠浼?xì)涓㈡帀淇℃伅銆?br><br>32 <br>while (i <= j && j <= i && i != j) {}<br><tt>i <= j</tt> and <tt>j <= i</tt>, surely <tt>i</tt> must equal <tt>j</tt>錛熷浜庡疄鏁版潵璇存槸榪欐牱鐨勩備粬闈炲父閲嶈錛屾湁涓悕縐幫細(xì)The 鈮?relation on the real numbers is said to be <span id="6111116" class="docEmphasis">antisymmetric銆侸ava's <tt><=</tt> operator used to be antisymmetric before release 5.0, but no longer.Java 5涔嬪墠鏁版嵁姣旇緝絎﹀彿(<tt><, <=</tt>, <tt>></tt>, and <tt>>=</tt>) 闇瑕佷袱杈圭殑鎿嶄綔鏁板繀欏諱負(fù)鍩虹綾誨瀷(<tt>byte</tt>, <tt>char</tt>, <tt>short</tt>, <tt>int</tt>, <tt>long</tt>, <tt>float</tt>, or <tt>double).鍦↗ava 5鍙樹負(fù)涓よ竟鎿嶄綔鏁頒負(fù)鍑℃槸鍙漿鍙樹負(fù)鍩虹綾誨瀷鐨勭被鍨嬨俲ava 5寮曞叆autoboxing and auto-unboxing 銆俆he boxed numeric types are <tt>Byte</tt>, <tt>Character</tt>, <tt>Short</tt>, <tt>Integer</tt>, <tt>Long</tt>, <tt>Float</tt>, and <tt>Double銆傚叿浣撶偣錛岃涓婇潰榪涘叆鏃犻檺寰幆錛?br></tt></tt></span>Integer i = new Integer(0);<br>Integer j = new Integer(0);<br> (<tt>i <= j</tt> and <tt>j <= i</tt>) perform <span id="1611166" class="docEmphasis">unboxing conversions</span> on <tt>i</tt> and <tt>j</tt> and compare the resulting <tt>int</tt> values numerically銆俰鍜宩琛ㄧず0錛屾墍浠ヨ〃杈懼紡涓簍rue銆?tt>i != j</tt>姣旇緝鐨勬槸瀵硅薄寮曠敤錛屼篃涓簍rue銆傚緢濂囨鑼冩病鏈夋妸絳夊彿鏀逛負(fù)姣旇緝鍊箋傚師鍥犲緢綆鍗曪細(xì)鍏煎鎬с傚綋涓縐嶈璦騫挎硾搴旂敤鐨勬椂鍊欙紝涓嶈兘鐮村潖宸插瓨鍦ㄧ殑瑙勮寖鏉ユ敼鍙樼▼搴忕殑琛屼負(fù)銆係ystem.out.println(new Integer(0) == new Integer(0));鎬繪槸杈撳嚭false錛屾墍浠ュ繀欏諱繚鐣欍傚綋涓涓槸boxed numeric 綾誨瀷錛屽彟涓涓槸鍩烘湰綾誨瀷鐨勬椂鍊欏彲浠ュ兼瘮杈冦傚洜涓簀ava 5涔嬪墠榪欐槸闈炴硶鐨勶紝鍏蜂綋鐐癸細(xì)<br>System.out.println(new Integer(0) == 0); //涔嬪墠鐨勭増鏈潪娉曪紝Java 5杈撳嚭True<br>鎬葷粨錛?span style="color: red">褰撲袱杈圭殑鎿嶄綔鏁版槸boxed numeric綾誨瀷鐨勬椂鍊欙紝鏁板瓧姣旇緝絎﹀拰絳変簬絎﹀彿鏄牴鏈笉鍚岀殑錛氭暟瀛楁瘮杈冪鏄兼瘮杈冿紝絳夊彿姣旇緝鐨勬槸瀵硅薄寮曠敤</span>銆?br><br>33 <br>while (i != 0 && i == -i) {}<br>鏈夎礋鍙瘋〃紺篿涓瀹氭槸鏁板瓧錛孨aN涓嶈錛屽洜涓轟粬涓嶇瓑浜庝換浣曟暟銆備簨瀹炰笂錛屾病鏈夊疄鏁板彲浠ュ嚭鐜拌繖縐嶆儏鍐點(diǎn)備絾Java鐨勬暟瀛楃被鍨嬪茍娌℃湁瀹岀編琛ㄨ揪瀹炴暟銆傛誕鐐規(guī)暟鐢變竴涓鍙蜂綅錛屼竴涓湁鏁堟暟瀛楋紙灝炬暟錛夛紝涓涓寚鏁版瀯鎴愩傛誕鐐規(guī)暟鍙湁0鎵嶄細(xì)鍜岃嚜宸辯殑璐熸暟鐩哥瓑錛屾墍浠鑲畾鏄暣鏁般傛湁絎﹀彿鏁存暟鐢ㄧ殑鏄簩榪涘埗琛ョ爜璁$畻錛氬彇鍙嶅姞涓銆傝ˉ鐮佺殑涓澶т紭鍔挎槸鐢ㄤ竴涓敮涓鐨勬暟鏉ヨ〃紺?銆傜劧鑰屾湁涓涓搴旂殑緙虹偣錛氭湰鏉ュ彲琛ㄨ揪鍋舵暟涓鹼紝鐜板湪鐢ㄤ竴涓〃杈句簡0錛屽墿涓嬪鏁頒釜鏉ヨ〃紺烘璐熸暟錛屾剰鍛崇潃姝f暟鍜岃礋鏁扮殑鏁伴噺涓嶄竴鏍楓傛瘮濡俰nt鍊鹼紝浠栫殑<tt>Integer.MIN_VALUE</tt>錛?tt>-2</tt><sup>31</sup>錛夈傚崄鍏繘鍒惰〃杈?tt>0x8000000</tt>銆傞氳繃琛ョ爜璁$畻鍙煡浠栫殑璐熸暟浠嶇劧涓嶅彉銆傚浠栧彇璐熸暟鏄孩鍑轟簡鐨勶紝涓嶈繃Java鍦ㄦ暣鏁拌綆椾腑蹇界暐浜嗘孩鍑恒?br>鎬葷粨錛欽ava浣跨敤浜岃繘鍒惰ˉ鐮侊紝鏄笉瀵圭О鐨勩傛湁絎﹀彿鏁存暟(<tt>int</tt>, <tt>long</tt>, <tt>byte</tt>, and <tt>short</tt>) 璐熸暟鍊兼瘮鏁存暟鍊煎涓涓?br><br>34<br>        final int START = 2000000000;<br>        int count = 0;<br>        for (float f = START; f < START + 50; f++)<br>            count++;<br>        System.out.println(count);<br>娉ㄦ剰寰幆鍙橀噺鏄痜loat銆傚洖蹇嗚皽棰?8 錛屾槑鏄緁++娌℃湁浠諱綍浣滅敤銆俧鐨勫垵濮嬪寲鍊兼帴榪?tt>Integer.MAX_VALUE</tt>錛屽洜姝ら渶瑕?1浣嶆潵鍑嗙‘琛ㄨ揪錛屼絾鏄痜loat綾誨瀷鍙彁渚涗簡24浣嶇簿搴︺傚鍔犺繖鏍峰ぇ鐨勪竴涓猣loat鍊間笉浼?xì)鏀瑰彉鍊箋傜湅璧鋒潵浼?xì)姝诲惊鐜Q熻繍琛岀▼搴忎細(xì)鍙戠幇錛岃緭鍑?銆傚驚鐜腑f鍜?tt>(float)(START + 50)鍋氭瘮杈冦備絾int鍜宖loat姣旇緝鐨勬椂鍊欙紝鑷姩鎶奿nt鍏堟彁紺轟負(fù)float銆備笉騫哥殑鏄笁涓細(xì)寮曡搗綺懼害涓㈠け鐨勫鍩烘湰綾誨瀷杞崲鐨勫叾涓箣涓錛堝彟澶栦袱涓槸long鍒癴loat錛宭ong鍒癲ouble錛夈俧鐨勫垵濮嬪煎法澶э紝鍔?0鍐嶈漿鎹負(fù)float鍜岀洿鎺ユ妸f杞崲涓篺loat鏄竴鏍風(fēng)殑鏁堟灉錛屽嵆<tt>(float)2000000000 == 2000000050錛屾墍浠?tt>f < START + 50</tt> 澶辮觸銆傚彧瑕佹妸float鏀逛負(fù)int鍗沖彲淇銆?br></tt></tt>     娌℃湁璁$畻鍣紝浣犳庝箞鐭ラ亾 2,000,000,050 鍜宖loat琛ㄧず2,000,000,000涓鏍鳳紵鈥︹?br>The moral of this puzzle is simple: <span style="color: red" class="docEmphStrong">Do not use floating-point loop indices</span>, because it can lead to unpredictable behavior. If you need a floating-point value in the body of a loop, take the <tt>int</tt> or <tt>long</tt> loop index and convert it to a <tt>float</tt> or <tt>double</tt>. <span id="1166111" class="docEmphStrong">You may lose precision when converting an <tt>int</tt> or <tt>long</tt> to a <tt>float</tt> or a <tt>long</tt> to a <tt>double</tt></span>, but at least it will not affect the loop itself. <span id="1116161" class="docEmphStrong">When you use floating-point, use <tt>double</tt> rather than <tt>float</tt></span> unless you are certain that <tt>float</tt> provides enough precision <span id="6116616" class="docEmphasis">and</span> you have a compelling performance need to use <tt>float</tt>. The times when it's appropriate to use <tt>float</tt> rather than <tt>double</tt> are few and far between銆?br></span></p> <p><span id="6616166" class="docEmphasis">35 <br></span><span id="1116161" class="docEmphasis">涓嬮潰紼嬪簭妯℃嫙涓涓畝鍗曠殑鏃墮挓<br>int minutes = 0; <br>for (int ms = 0; ms < 60*60*1000; ms++) <br>  if (ms %  60*1000 == 0) <br>     minutes++; <br> </span><span id="6166661" class="docEmphasis">System.out.println(minutes); </span><span id="1666111" class="docEmphasis"><br>緇撴灉鏄?tt>60000錛岄棶棰樺湪浜庡竷?yōu)當(dāng)琛ㄨ緫旨弇s % 60*1000 == 0錛屾渶綆鍗曠殑淇敼鏂規(guī)硶鏄細(xì)if (ms % (60 * 1000) == 0) <br>鏇村ソ鐨勬柟娉曟槸<font color="#ff0000">鐢ㄥ悎閫傚懡鍚嶇殑甯擱噺浠f浛欖斿姏鏁板瓧</font>錛?/tt></span></p> <p><span id="1161166" class="docEmphasis"><tt></tt></span>private static final int MS_PER_HOUR = 60 * 60 * 1000; <br>private static final int MS_PER_MINUTE = 60 * 1000; <br>public static void main(String[] args) {<br>   int minutes = 0; <br>   for (int ms = 0; ms < MS_PER_HOUR; ms++) <br>     if (ms % MS_PER_MINUTE == 0) <br>        minutes++;<br>    System.out.println(minutes); <br>} <span id="1661661" class="docEmphasis"><br><font color="#ff0000">緇濅笉瑕佺敤絀烘牸鏉ュ垎緇勶紱浣跨敤鎷彿鏉ュ喅瀹氫紭鍏堢駭</font></p></span><img src ="http://www.tkk7.com/yuxh/aggbug/338121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yuxh/" target="_blank">yuxh</a> 2010-11-15 19:59 <a href="http://www.tkk7.com/yuxh/archive/2010/11/15/338121.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java Puzzlers錛堜笁-涓 寰幆錛?/title><link>http://www.tkk7.com/yuxh/archive/2010/11/15/336547.html</link><dc:creator>yuxh</dc:creator><author>yuxh</author><pubDate>Mon, 15 Nov 2010 08:39:00 GMT</pubDate><guid>http://www.tkk7.com/yuxh/archive/2010/11/15/336547.html</guid><wfw:comment>http://www.tkk7.com/yuxh/comments/336547.html</wfw:comment><comments>http://www.tkk7.com/yuxh/archive/2010/11/15/336547.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yuxh/comments/commentRss/336547.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yuxh/services/trackbacks/336547.html</trackback:ping><description><![CDATA[<span style="color: #000000">24      <br />   for (byte b = Byte.MIN_VALUE; b < Byte.MAX_VALUE; b++) {<br />         if (b == 0x90)<br />             System.out.print("Joy!");<br />     }<br /> <tt>Ox90</tt> 瓚呰繃浜哹yte鐨勫彇鍊艱寖鍥?font face="Courier New">-128鍒?27銆俠yte鍜宨nt姣旇緝鏄竴縐嶆販鍚堢被鍨嬫瘮杈冦傝冭檻涓〃杈懼紡<tt>((byte)0x90 == 0x90)寰楀埌鐨勬槸false銆俠yte鍜宨nt鍋氭瘮杈冪殑鏃跺欙紝Java鍏堝byte榪涜浜唚idening primitive conversion 鍐嶆瘮杈冧袱涓猧nt鍊箋傚洜涓篵yte鏄湁絎﹀彿綾誨瀷錛岃漿鍙樺仛浜嗙鍙鋒墿灞曪紝鎶婅礋鐨刡yte鍊艱漿鎹負(fù)鐩稿簲鐨刬nt鍊箋傝繖涓緥瀛愪腑(byte)0x90琚漿鍙樹負(fù)-112錛屽綋鐒朵笉絳変簬int鍊?<tt>0x90</tt>鎴栬呰+144銆傛販鍚堟瘮杈冩昏浜鴻糠鎯戯紝鍥犱負(fù)鎬繪槸寮鴻揩緋葷粺鍘繪彁鍗囦竴涓搷浣滄暟鏉ュ拰鍙︿竴縐嶇被鍨嬪尮閰嶃傛湁鍑犵鏂瑰紡鍙伩鍏嶆販鍚堟瘮杈冦傚彲浠ユ妸int鏄犲皠涓篵yte錛屼箣鍚庢瘮杈冧袱涓猙yte鍊鹼細(xì) <br /> if (b == (byte)0x90)<br />     System.out.println("Joy!");<br /> 鍙﹀錛屽彲鐢╩ask鎶戝埗絎﹀彿鎵╁睍錛屾妸byte杞崲涓篿nt錛屼箣鍚庢瘮杈冧袱涓猧nt鍊鹼細(xì)<br /> if ((b & 0xff) == 0x90)<br />     System.out.println("Joy!");<br /> 浣嗘渶濂界殑鏂規(guī)硶鏄妸甯擱噺鍊肩Щ鍑哄驚鐜斁鍒板父閲忓0鏄庝腑銆?br /> <span id="1111161" class="docEmphStrong">    private static final byte TARGET = 0x90; // Broken!</span><br />     public static void main(String[] args) {<br />         for (byte b = Byte.MIN_VALUE; b < Byte.MAX_VALUE; b++)<br />             if (b == TARGET)<br />                 System.out.print("Joy!");<br />     }<br /> 涓嶅垢鐨勬槸錛屼笂闈㈢紪璇戦氫笉榪囷細(xì)<tt>0x90</tt>瀵逛簬byte綾誨瀷鏉ヨ涓嶆槸涓涓湁鏁堝箋傝繖鏍蜂慨鏀瑰嵆鍙細(xì)<br /> private static final byte TARGET = <span id="6116161" class="docEmphStrong">(byte)</span>0x90;<br /> <p class="docText">To summarize: <span id="1111161" class="docEmphStrong">Avoid mixed-type comparisons, because they are inherently confusing</span> (<a class="docLink" href="ch02lev1sec5.html#ch02lev1sec5">Puzzle 5</a>). To help achieve this goal, <span id="6166166" class="docEmphStrong">use declared constants in place of "magic numbers." </span>You already knew that this was a good idea; it documents the meanings of constants, centralizes their definitions, and eliminates duplicate definitions.鐜板湪浣犵煡閬撲粬榪樺彲浠ュ己鍒朵綘涓烘瘡涓涓父閲忓畾涔夐傜敤鐨勭被鍨嬶紝閬垮厤涓縐嶆販鍚堢被鍨嬫瘮杈冪殑鏉ユ簮銆?/p> <p class="docText">25 <br /> </span<br /> <font color="#000000">int j = 0;<br /> for (int i = 0; i < 100; i++)<br />   j = j++;<br /> System.out.println(j); //</font><font color="#000000">鎵撳嵃鍑虹殑鏄?<span></p> </font></tt></font> <p>闂鍑哄湪 j = j++; 絳夊悓浜庝笅鍒楁搷浣滐細(xì)</p> <p>int tmp = j; j = j + 1; j = tmp; <br /> 榪欐鐨勬暀璁拰闅鵑7涓鏍鳳細(xì)<font color="#ff0000">鍦ㄤ竴涓〃杈懼紡涓笉瑕佺粰鍚屼竴涓彉閲忚祴鍊艱秴榪囦竴嬈°?/font></p> <p><font color="#000000">26</font></p> <p><font color="#000000">public static final int END = Integer.MAX_VALUE;<br /> public static final int START = END - 100;<br /> public static void main(String[] args) {<br />     int count = 0;<br />     for (int i = START; i <= END; i++)<br />        count++;<br />      System.out.println(count);<br /> }<br /> 鐪嬭搗鏉ュ儚100錛屽啀浠旂粏鐪嬪驚鐜槸灝忎簬絳変簬錛屽簲璇ユ槸101錛熺粨鏋滄槸紼嬪簭娌℃湁杈撳嚭浠諱綍鍊鹼紝闄峰叆涓涓寰幆銆傞棶棰樺嚭鍦?tt>Integer.MAX_VALUE錛屽綋緇х畫澧炲姞鐨勬椂鍊欙紝浠栨?zhèn)勬?zhèn)勫彉涓?tt>Integer.MIN_VALUE銆傚鏋滀綘闇瑕佸驚鐜痠nt鍊艱竟鐣岋紝鏈濂界敤long鍙橀噺鍋氱儲(chǔ)寮曪細(xì)<br /> for (long i = START; i <= END; i++)  //杈撳嚭101<br /> <font color="#ff0000">鏁欒鏄細(xì)<tt>int</tt>s are not integers銆傛棤璁轟綍鏃剁敤鍩烘湰綾誨瀷錛屾敞鎰忚竟鐣屽箋備笂婧㈡垨涓嬫孩浼?xì)鍑虹庮C粈涔堟儏鍐碉紵涓鑸潵璇存渶濂界敤澶т竴鐐圭殑綾誨瀷錛堝熀鏈被鍨嬫槸<tt>byte</tt>, <tt>char</tt>, <tt>short</tt>, <tt>int</tt>, and <tt>long</tt>錛夈?/font>涔熷彲浠ヤ笉鐢╨ong錛?/tt></tt></font></p> <p><font color="#000000">int i = START; <br /> do { <br />   count++; <br /> } while (i++ != END); <br /> 鑰冭檻鍒版竻鏅板拰綆鍗曪紝鎬繪槸鐢╨ong绱㈠紩錛岄櫎浜嗕竴縐嶇壒孌婃儏鍐碉細(xì)濡傛灉瑕侀亶鍘嗘墍鏈塱nt鍊鹼紝榪欐牱鐢╥nt绱㈠紩鐨勮瘽浼?xì)蹇袱鍊嶃?br /> 涓涓驚鐜洓鍗佷嚎int鍊鹼紝璋冪敤鏂規(guī)硶鐨勫父瑙勭敤娉曪細(xì)</font><font color="#ff0000"></p> <pre><font color="#000000">// Apply the function f to all four billion int values int i = Integer.MIN_VALUE; do { f(i); } while (i++ != Integer.MAX_VALUE); </font></pre> <p><span style="color: #000000">27  浣嶇Щ<br /> <font color="#ff0000"><span style="color: #000000"><font style="color: #000000" color="#ff0000">璁頒綇java鏄嬌鐢ㄤ簩榪涘埗琛ョ爜璁$畻錛屽湪浠諱綍鏈夌鍙峰熀鏈被鍨嬩腑(<tt>byte</tt>, <tt>short</tt>, <tt>int</tt>, or <tt>long</tt>)閮芥槸鐢ㄦ墍鏈変綅緗?鏉ヨ〃紺?1銆?<br /> </font><font color="#ff0000"><span style="color: #000000"><font color="#ff0000">        <span style="color: #000000"><font style="color: #000000" color="#ff0000">int i = 0;<br />         while (-1 << i != 0)       //宸︿綅縐?br />             i++;<br />         System.out.println(i);<br /> </font>int鍨嬬殑-1鐢?tt>0xffffffff</tt> 琛ㄧず銆備笉鏂乏縐伙紝鍙寵竟鐢?琛ヤ綅銆傜Щ浣?2嬈★紝鍙樹負(fù)鍏?錛岃煩鍑哄驚鐜墦鍗?2錛熷疄闄呬笂紼嬪簭浼?xì)姝诲惊鐜傞棶棰樺嚭鍦?1<<32涓嶇瓑浜?鑰屾槸絳変簬-1錛屽洜涓轟綅<span style="color: #ff0000">縐葷鍙峰彧鐢ㄥ彸杈規(guī)搷浣滄暟鐨勪綆浜斾綅浣滀負(fù)縐誨姩璺濈</span>錛屽鏋滃乏鎿嶄綔鏁版槸long鐨勮瘽鐢ㄥ叚浣嶃備笁涓綅縐繪搷浣滅錛?lt;<,>>,>>>閮芥槸榪欐牱銆傜Щ鍔ㄨ窛紱繪繪槸0鍒?1錛屽乏杈規(guī)搷浣滄暟鏄痩ong鐨勮瘽0鍒?3銆備綅縐昏窛紱葷敤32鍙栨ā錛屽乏杈規(guī)槸long鍒欑敤64鍙栨ā銆傜粰int鍊間綅縐?2浣嶆垨緇檒ong鍊間綅縐?4浣嶅彧浼?xì)杩斿洖鏈w傛墍浠ヤ笉鍙兘鐢ㄤ綅縐誨畬鍏ㄧЩ闄や竴涓暟鎹傚垢榪愮殑鏄紝鏈変竴涓畝鍗曠殑鍔炴硶瑙e喅榪欎釜闂銆備繚瀛樹笂涓嬈$殑浣嶇Щ緇撴灉錛屾瘡涓嬈¤凱浠e縐誨姩涓浣嶃?br />         int distance = 0;<br />         for (int val = -1; val != 0; val <<= 1)<br />             distance++;<br />         System.out.println(distance);<br /> 淇敼鍚庣殑紼嬪簭璇存槑浜嗕竴涓師鍒欙細(xì)<span style="color: #ff0000">浣嶇Щ璺濈濡傛灉鍙兘鐨勮瘽錛岀敤甯擱噺</span>銆?br /> 鍙﹀涓涓棶棰橈紝璁稿紼嬪簭鍛樿涓哄彸縐諱竴涓礋鐨勭Щ鍔ㄨ窛紱伙紝灝卞拰宸︾Щ涓鏍鳳紝鍙嶄箣浜︾劧銆備簨瀹炰笂涓嶆槸榪欐牱錛屽乏縐繪槸宸︾Щ錛屽彸縐誨氨鏄彸縐匯傝礋鏁拌窛紱誨彧鐣欎笅浣庝簲浣嶏紙long鐣欏叚浣嶏級錛屽叾浣欑殑緗?灝卞彉涓轟簡姝f暟璺濈銆傛瘮濡傦紝宸︾Щ涓涓猧nt鍊?1鐨勮窛紱伙紝瀹為檯涓婃槸宸︾Щ31浣嶃?br /> <br /> 28 鏃犵┓鐨勮〃紺?br /> for (int i = start; i <= start + 1; i++) {<br /> }<br /> 鐪嬭搗鏉ュ驚鐜袱嬈″氨浼?xì)缁撴潫锛屽鏋湗q欐牱瀹氫箟鍛細(xì)<br /> int start = Integer.MAX_VALUE - 1;//姝誨驚鐜?br /> while (i == i + 1) {<br /> }<br /> 榪欎釜涓嶅彲鑳芥寰幆錛熷鏋渋鏄棤絀峰憿錛烰ava閲囩敤IEEE 754嫻偣鏁扮畻鏈紝鐢╠ouble鎴杅loat鏉ヨ〃紺烘棤絀楓傛墍浠ュ彲浠ョ敤浠諱綍嫻偣鏁拌綆楄〃杈懼紡寰楀嚭鏃犵┓鏉ュ垵濮嬪寲i銆傛瘮濡傦細(xì)double i = 1.0 / 0.0;<br /> 鏇村ソ鐨勬槸鍙互鍒╃敤鏍囧噯搴撴彁渚涚殑甯擱噺:double i = Double.POSITIVE_INFINITY;<br /> 浜嬪疄涓婏紝鏍規(guī)湰鐢ㄤ笉鐫鐢ㄦ棤絀峰垵濮嬪寲i鏉ュ紩璧鋒寰幆銆傚彧瑕佽凍澶熷ぇ鐨勬誕鐐規(guī)暟灝卞浜嗭細(xì)double i = 1.0e40;<br /> 榪欐槸鍥犱負(fù)嫻偣鏁拌秺澶э紝浠栫殑鍊煎拰涓嬩竴涓暟鐨勫艱窛紱諱篃灝辮秺澶с俤istribution of floating-point values is a consequence of their representation with a fixed number of <u>significant</u> bits. 緇欒凍澶熷ぇ鐨勬誕鐐規(guī)暟鍔犱竴涓嶄細(xì)鏀瑰彉鍊鹼紝鍥犱負(fù)浠栦笉鑳藉~鍏呰繖涓暟鍜屼笅涓涓暟涔嬮棿鐨勮窛紱匯傛誕鐐規(guī)暟鎿嶄綔榪斿洖鏈鎺ヨ繎鍑嗙‘鏁板緇撴灉鐨勬誕鐐瑰箋備竴鏃︿袱涓浉閭繪誕鐐瑰間箣闂寸殑璺濈澶т簬2錛屽姞1灝變笉浼?xì)鏈夋晥鏋溿俧loat綾誨瀷鏉ヨ錛岃秴榪?<sup>25</sup>錛堟垨33,554,432錛夊啀鍔?灝辨棤鏁堬紱瀵筪ouble鏉ヨ瓚呰繃2<sup>54</sup>錛堟帴榪?.8 x 10<sup>16</sup>錛夊啀鍔?灝辨棤鏁堛?br />      鐩擱偦嫻偣鏁頒箣闂寸殑璺濈縐頒負(fù)ulp錛坲nit in the last place鐨勭緝鍐欙級銆傚湪Java 5閲?<tt>Math.ulp鏂規(guī)硶琚紩鍏ユ潵璁$畻float鎴杁ouble鍊肩殑ulp銆?/tt></span></font></span></font></span></font></span></p> <p><span style="color: #000000"><font color="#ff0000"><span style="color: #000000"><font color="#ff0000"><span style="color: #000000"><font color="#ff0000"><span style="color: #000000"><tt>鎬葷粨錛?font color="#ff0000">涓嶅彲鑳界敤float鎴杁ouble鏉ヨ〃紺烘棤絀楓傚彟澶栵紝鍦ㄤ竴涓ぇ鐨勬誕鐐規(guī)暟涓婂姞涓涓皬鐨勬誕鐐規(guī)暟錛屽間笉浼?xì)鏀瑰彉銆傛湁鐐逛笉鍚堝父鐞嗭紝瀹炴暟騫朵笉鏄繖鏍楓傝浣忎簩榪涘埗嫻偣鏁拌綆楀彧鏄繎浼間簬瀹炴暟璁$畻銆?/font></tt></span></font></span></font></span></font></span></p> <p></font><font color="#ff0000"><span style="color: #000000"><span style="color: #000000"><span style="color: #000000"><span style="color: #000000"><tt>29 NaN</tt></span></span></span></span></font></span></span></p> <p>while (i != i) { } <br /> IEEE 754 嫻偣鏁拌綆椾繚鐣欎簡涓涓壒孌婂兼潵鏉ヨ〃紺轟笉鏄暟瀛楃殑鏁伴噺銆侼aN鏄誕鐐硅綆椾笉鑳藉緢濂藉畾涔夌殑鏁幫紝姣斿<tt>0.0 / 0.0銆傝鑼冨畾涔?font color="#ff0000">NaN涓嶇瓑浜庝換浣曟暟鍖呮嫭鑷繁</font>銆傚洜姝ouble i = 0.0 / 0.0; 鍙寮濮嬬殑絳夊紡涓嶆垚绔嬨備篃鏈夋爣鍑嗗簱瀹氫箟鐨勫父閲忥細(xì)</tt>double i = Double.NaN; 濡傛灉涓涓垨澶氫釜鎿嶄綔鏁頒負(fù)NaN錛岄偅涔堟誕鐐規(guī)暟璁$畻灝變細(xì)絳変簬NaN銆?/p> <p>鎬葷粨錛歠loat鍜宒oule瀛樺湪鐗規(guī)畩鐨勫糔aN錛屽皬蹇冨鐞嗐?/p> <p>30<br /> while (i != i + 0) { } 榪欎竴嬈′笉鑳戒嬌鐢╢loat鎴栬卍ouble銆?br /> <tt>+鎿嶄綔絎﹂櫎浜嗘暟瀛楋紝灝卞彧鑳藉鐞哠tring銆?鎿嶄綔絎︿細(xì)琚噸杞斤細(xì)瀵逛簬String綾誨瀷錛屼粬鍋氱殑鏄繛鎺ユ搷浣溿傚鏋滄搷浣滄暟鏈夐潪String綾誨瀷錛屼細(xì)鍏堝仛杞崲鍙樹負(fù)String涔嬪悗鍐嶅仛榪炴帴銆俰涓鑸敤浣滄暟瀛楋紝瑕佹槸瀵筍tring鍨嬪彉閲忚繖涔堝懡鍚嶅鏄撳紩璧瘋瑙c?/tt></p> <p><tt>鎬葷粨錛?font color="#ff0000">鎿嶄綔絎﹂噸杞介潪甯稿鏄撹瀵間漢銆傚ソ鐨勫彉閲忓悕錛屾柟娉曞悕錛岀被鍚嶅拰濂界殑娉ㄩ噴瀵逛簬紼嬪簭鐨勫彲璇繪т竴鏍烽噸瑕併?/font></tt></p> <img src ="http://www.tkk7.com/yuxh/aggbug/336547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yuxh/" target="_blank">yuxh</a> 2010-11-15 16:39 <a href="http://www.tkk7.com/yuxh/archive/2010/11/15/336547.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://8xxon8.com" target="_blank">嫩草成人永久免费观看</a>| <a href="http://yanyingqiang.com" target="_blank">中文精品人人永久免费</a>| <a href="http://58rjz.com" target="_blank">免费无遮挡无码视频在线观看</a>| <a href="http://zjhydouyaji.com" target="_blank">亚洲av成人片在线观看</a>| <a href="http://yuase.com" target="_blank">一个人看的www视频免费在线观看</a>| <a href="http://33dh2.com" target="_blank">a级毛片毛片免费观看久潮</a>| <a href="http://8mav938.com" target="_blank">四虎免费影院ww4164h</a>| <a href="http://863409.com" target="_blank">热99re久久精品精品免费</a>| <a href="http://ghiearning.com" target="_blank">亚洲精品无码久久不卡</a>| <a href="http://wwwpaogou123.com" target="_blank">亚洲AV无码精品色午夜在线观看</a>| <a href="http://dnf1000.com" target="_blank">亚洲国产午夜精品理论片 </a>| <a href="http://wwwby1378.com" target="_blank">亚洲黄黄黄网站在线观看</a>| <a href="http://www-66409b.com" target="_blank">亚洲精品狼友在线播放</a>| <a href="http://wlamyx.com" target="_blank">亚洲国产av美女网站</a>| <a href="http://34jjjj.com" target="_blank">深夜特黄a级毛片免费播放</a>| <a href="http://kj555888.com" target="_blank">一个人免费视频在线观看www</a>| <a href="http://miyatb.com" target="_blank">曰曰鲁夜夜免费播放视频 </a>| <a href="http://zjszbwzl.com" target="_blank">亚洲xxxx18</a>| <a href="http://www-533999.com" target="_blank">特级aaaaaaaaa毛片免费视频</a>| <a href="http://paweax.com" target="_blank">华人在线精品免费观看</a>| <a href="http://wusongtv.com" target="_blank">成人男女网18免费视频</a>| <a href="http://139699.com" target="_blank">最新亚洲成av人免费看</a>| <a href="http://hljjlhl.com" target="_blank">亚洲av成人综合网</a>| <a href="http://fenglufzjx.com" target="_blank">国产黄片不卡免费</a>| <a href="http://116qc.com" target="_blank">亚洲精品动漫免费二区</a>| <a href="http://42329c.com" target="_blank">久久久久亚洲av毛片大</a>| <a href="http://zz4466.com" target="_blank">亚洲制服丝袜第一页</a>| <a href="http://lawelites.com" target="_blank">国产黄在线观看免费观看不卡</a>| <a href="http://www6yg6yg.com" target="_blank">在线看片韩国免费人成视频</a>| <a href="http://ebanyou.com" target="_blank">亚洲欧洲精品成人久久曰影片</a>| <a href="http://500308k.com" target="_blank">亚洲日本视频在线观看</a>| <a href="http://w7768.com" target="_blank">av成人免费电影</a>| <a href="http://ldcatv.com" target="_blank">成人免费午夜视频</a>| <a href="http://bogygames.com" target="_blank">亚洲国产精品va在线播放</a>| <a href="http://www48646.com" target="_blank">久久精品国产亚洲AV天海翼</a>| <a href="http://1111xxxx.com" target="_blank">99在线观看精品免费99</a>| <a href="http://51ruilon.com" target="_blank">免费在线视频一区</a>| <a href="http://fenxiangceo.com" target="_blank">亚洲国产成人精品无码区在线秒播 </a>| <a href="http://mp4888.com" target="_blank">sss日本免费完整版在线观看</a>| <a href="http://ywzms.com" target="_blank">精品久久久久成人码免费动漫</a>| <a href="http://gttest5.com" target="_blank">国产国拍亚洲精品福利</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>