锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧好州第一的日产suv,亚洲成av人在线视,亚洲国产精品久久66http://www.tkk7.com/sevenduan/鏃犺鎬庢牱錛岃璁╂垜鍏堟劅璋竴涓嬪浗瀹躲?/description>zh-cnSat, 10 May 2025 10:29:56 GMTSat, 10 May 2025 10:29:56 GMT60鏈?5鍖歸┈錛屾瘡鍖歸┈閮戒互涓涓浐瀹氫笉鍙樼殑閫熷害濂旇窇錛屾瘡鍖歸┈鐨勯熷害閮戒笉涓鏍鳳紝濡傛灉璁╀綘鎵懼嚭璺戠殑鏈蹇殑5鍖歸┈錛屾渶灝戦渶瑕佺粍緇囧灝戝満姣旇禌錛熸敞錛氭瘡鍦烘瘮璧涙渶澶氬彧鑳?鍖歸┈鍙傝禌銆?/title><link>http://www.tkk7.com/sevenduan/archive/2012/03/07/371431.html</link><dc:creator>sevenduan</dc:creator><author>sevenduan</author><pubDate>Wed, 07 Mar 2012 13:17:00 GMT</pubDate><guid>http://www.tkk7.com/sevenduan/archive/2012/03/07/371431.html</guid><wfw:comment>http://www.tkk7.com/sevenduan/comments/371431.html</wfw:comment><comments>http://www.tkk7.com/sevenduan/archive/2012/03/07/371431.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/sevenduan/comments/commentRss/371431.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/sevenduan/services/trackbacks/371431.html</trackback:ping><description><![CDATA[<div>鏈?5鍖歸┈錛屾瘡鍖歸┈閮戒互涓涓浐瀹氫笉鍙樼殑閫熷害濂旇窇錛屾瘡鍖歸┈鐨勯熷害閮戒笉涓鏍鳳紝濡傛灉璁╀綘鎵懼嚭璺戠殑鏈蹇殑5鍖歸┈錛屾渶灝戦渶瑕佺粍緇囧灝戝満姣旇禌錛熸敞錛氭瘡鍦烘瘮璧涙渶澶氬彧鑳?鍖歸┈鍙傝禌銆?br />re:鎮茶10鍦猴紝涔愯7鍦恒?/div><img src ="http://www.tkk7.com/sevenduan/aggbug/371431.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/sevenduan/" target="_blank">sevenduan</a> 2012-03-07 21:17 <a href="http://www.tkk7.com/sevenduan/archive/2012/03/07/371431.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Really Useful Shortkeyhttp://www.tkk7.com/sevenduan/archive/2010/08/07/328218.htmlsevenduansevenduanSat, 07 Aug 2010 15:14:00 GMThttp://www.tkk7.com/sevenduan/archive/2010/08/07/328218.htmlhttp://www.tkk7.com/sevenduan/comments/328218.htmlhttp://www.tkk7.com/sevenduan/archive/2010/08/07/328218.html#Feedback0http://www.tkk7.com/sevenduan/comments/commentRss/328218.htmlhttp://www.tkk7.com/sevenduan/services/trackbacks/328218.html ctrl+o
ctrl+space
ctrl+t
ctrl+k
ctrl+f8/f9/f10

alt+shift+x , t/j
alt+shift+d , t/j

Command:
cd -
tab
ctrl+a/e
ctrl+u/k/w

Vim
shift+g
m+'mark'
`+'mark'
. (repeat)





sevenduan 2010-08-07 23:14 鍙戣〃璇勮
]]>
Java logging frameworkhttp://www.tkk7.com/sevenduan/archive/2010/07/18/326473.htmlsevenduansevenduanSun, 18 Jul 2010 14:15:00 GMThttp://www.tkk7.com/sevenduan/archive/2010/07/18/326473.htmlhttp://www.tkk7.com/sevenduan/comments/326473.htmlhttp://www.tkk7.com/sevenduan/archive/2010/07/18/326473.html#Feedback0http://www.tkk7.com/sevenduan/comments/commentRss/326473.htmlhttp://www.tkk7.com/sevenduan/services/trackbacks/326473.html Framework Supported log levels Standard appenders Popularity Cost / licence Log4J FATAL ERROR WARN INFO DEBUG TRACE AsyncAppender, JDBCAppender, JMSAppender, LF5Appender, NTEventLogAppender, NullAppender, SMTPAppender, SocketAppender, SocketHubAppender, SyslogAppender, TelnetAppender, WriterAppender Widely used in many project and platforms Apache License, Version 2.0 Java Logging API SEVERE WARNING INFO CONFIG FINE FINER FINEST Depends on the underlying framework; Sun's default Java Virtual Machine (JVM) has the following: ConsoleHandler, FileHandler, SocketHandler, MemoryHandler Not widely used[citation needed] Comes with the JRE Apache Commons Logging FATAL ERROR WARN INFO DEBUG TRACE Depends on the underlying framework Widely used, in conjunction with log4j Apache License, Version 2.0 SLF4J ERROR WARN INFO DEBUG TRACE Depends on the underlying framework, which is pluggable Probably small but growing MIT License

sevenduan 2010-07-18 22:15 鍙戣〃璇勮
]]>
java transaction summaryhttp://www.tkk7.com/sevenduan/archive/2010/04/25/319319.htmlsevenduansevenduanSun, 25 Apr 2010 08:44:00 GMThttp://www.tkk7.com/sevenduan/archive/2010/04/25/319319.htmlhttp://www.tkk7.com/sevenduan/comments/319319.htmlhttp://www.tkk7.com/sevenduan/archive/2010/04/25/319319.html#Feedback0http://www.tkk7.com/sevenduan/comments/commentRss/319319.htmlhttp://www.tkk7.com/sevenduan/services/trackbacks/319319.html1 definition:

“A transaction is a complete unit of work. It may comprise many computational tasks,which may include user interface, data retrieval, and communications. A typicaltransaction modifies shared resources.”

2 transaction features:
ACID (atomicity, consistency, isolation, durability)

3 java spec
JTA, JTS
 1interface javax.transaction.TransactionManager
 2{
 3public abstract void begin();
 4public abstract void commit();
 5public abstract int getStatus();
 6public abstract Transaction getTransaction();
 7public void resume(Transaction tobj);
 8public abstract void rollback();
 9public abstract void setRollbackOnly();
10public abstract void setTransactionTimeout(intseconds);
11public abstract Transaction suspend() ;
12}

4 Common XAResource
JDBC 2.0:
A JDBC driver that supports distributed transactions implements the javax.transaction.xa.XAResource interface, the javax.sql.XAConnectioninterface, and the  javax.sql.XADataSource interface.

JMS 1.0:

a JMS provider javax.transaction.xa.XAResource interface, the implements the javax.jms.XAConnection and the javax.jms.XASession interface.

5 Common TransactionManager

5.1 EJB Transaction Options:
NotSupported
    If the method is called within a transaction, this transaction is suspended during the time of the method execution.
Required
    If the method is called within a transaction, the method is executed in the scope of this transaction; otherwise, a new transaction is started for the execution of the method and committed before the method result is sent to the caller.
RequiresNew
    The method will always be executed within the scope of a new transaction. The new transaction is started for the execution of the method, and committed before the method result is sent to the caller. If the method is called within a transaction, this transaction is suspended before the new one is started and resumed when the new transaction has completed.
Mandatory
    The method should always be called within the scope of a transaction, else the container will throw the TransactionRequired exception.
Supports
    The method is invoked within the caller transaction scope; if the caller does not have an associated transaction, the method is invoked without a transaction scope.
Never
    The client is required to call the bean without any transaction context; if it is not the case, a java.rmi.RemoteException is thrown by the container.

5.2 Spring transaction:
      Transaction isolation: The degree of isolation this transaction has from the work of other transactions. For example, can this transaction see uncommitted writes from other transactions? avaliable options:
ISOLATION_DEFAULT
ISOLATION_READ_UNCOMMITTED
ISOLATION_READ_COMMITTED
ISOLATION_REPEATABLE_READ
ISOLATION_SERIALIZABLE

      Transaction propagation: Normally all code executed within a transaction scope will run in that transaction. However, there are several options specifying behavior if a transactional method is executed when a transaction context already exists: For example, simply running in the existing transaction (the most common case); or suspending the existing transaction and creating a new transaction. Spring offers the transaction propagation options familiar from EJB CMT. avaliable options:
PROPAGATION_MANDATORY
PROPAGATION_NESTED
PROPAGATION_NEVER
PROPAGATION_NOT_SUPPORTED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRES_NEW
PROPAGATION_SUPPORTS

      Transaction timeout: How long this transaction may run before timing out (automatically being rolled back by the underlying transaction infrastructure).
      Read-only status: A read-only transaction does not modify any data. Read-only transactions can be a useful optimization in some cases (such as when using Hibernate).


6 transaction for web service
Protocol specifications:
WS-Transaction
OASIS Business Transaction Protocol (BTP)
Java API
JAXTX (JSR-156)

 



sevenduan 2010-04-25 16:44 鍙戣〃璇勮
]]>
java nest class and java inner classhttp://www.tkk7.com/sevenduan/archive/2010/04/17/318623.htmlsevenduansevenduanSat, 17 Apr 2010 15:07:00 GMThttp://www.tkk7.com/sevenduan/archive/2010/04/17/318623.htmlhttp://www.tkk7.com/sevenduan/comments/318623.htmlhttp://www.tkk7.com/sevenduan/archive/2010/04/17/318623.html#Feedback5http://www.tkk7.com/sevenduan/comments/commentRss/318623.htmlhttp://www.tkk7.com/sevenduan/services/trackbacks/318623.html 姣斿璇達紝鎴戞兂鍒涘緩10涓嚱鏁幫紝姣忎釜鍑芥暟渚濇榪斿洖0-9.
 1 //wrong: all function refer to global variable i=10 
 2 var fn_list=[];
 3 for(var i=0;i<10;i++){
 4  var _tempFn =function(){
 5         return i;
 6  }
 7  fn_list.push(_tempFn);    
 8 }
 9 //right: every function refer to its closure scope variable a
10 var fn_list=[];
11 for(var i=0;i<10;i++){
12  var _tempFn =function(a){
13         return function(){
14          return a;
15         };
16  }
17  fn_list.push(_tempFn(i));    
18 }
19 

Java閲屼篃鏈変袱涓鍒濆鑰呭鏄撴販娣嗙殑姒傚康錛歯est class and inner class銆?br /> nest class灝辨槸static inner class,
鑰宨nner class灝辨槸no-static inner class銆傛病鏈変負浠涔堬紝sun灝辨槸榪欎箞瀹氫箟鐨勩?br /> 榪樻槸涓婇潰寰椾緥瀛愶紝鍒涘緩10涓璞★紝姣忎釜瀵硅薄鐨刧etValue鎺ュ彛渚濇榪斿洖0-9.
 1 public class Test {
 2     private int noStaticValue;
 3     private static int staticValue;
 4 
 5     public Test(int noSV, int sv) {
 6         this.noStaticValue = noSV;
 7         this.staticValue = sv;
 8     }
 9 
10     public Test(int noSV) {
11         this.noStaticValue = noSV;
12     }
13 
14     interface valueHolder {
15         int getValue();
16     }
17 
18     class innerClass implements valueHolder {
19         public int getValue() {
20             return noStaticValue;
21         }
22     }
23 
24     static class nestClass implements valueHolder {
25         public nestClass(int i) {
26             staticValue = i;
27         }
28 
29         public int getValue() {
30             return staticValue;
31         }
32     }
33 
34     public static void main(String[] args) {
35         Test context1 = new Test(00);
36         valueHolder[] list = new valueHolder[10];
37         for (int i = 0; i < 10; i++) {
38             list[i] = new Test.nestClass(i);
39         }
40         for (valueHolder obj : list) {
41             System.out.println(obj.getValue());// always print 9
42         }
43         for (int i = 0; i < 10; i++) {
44             list[i] = new Test(i).new innerClass();
45         }
46         for (valueHolder obj : list) {
47             System.out.println(obj.getValue());// print 0-9
48         }
49     }
50 }
鍙鐢╥nner class鍙互妯℃嫙closure鐨勭壒鎬э紝灝辨槸榪愯鏃跺畾涔塩lass鐨勬煇浜涚姸鎬併?br /> inner class鍜宯est class涔嬮棿鐨勫尯鍒氨鏄悗鑰呮槸闈欐佺被銆傚墠鑰呭繀欏婚氳繃wrap class鐨勫疄渚嬫潵璋冪敤new,e.g. new Test().new innerClass銆?br /> 鍥犱負nest class鏄潤鎬佺被錛屾墍浠ュ彲浠ユ坊鍔爏tatic member 鎴栬卻tatic method,鑰宨nner class 涓嶈銆?br /> 鍖垮悕鍐呴儴綾繪槸inner class鐨勪竴縐嶇壒孌婂艦寮忥紝鎵浠ヤ篃涓嶈兘娣誨姞static member 鎴栬卻tatic method銆?br />




sevenduan 2010-04-17 23:07 鍙戣〃璇勮
]]>
String涓巄yte杞寲瑕佸皬蹇冨け鐪?/title><link>http://www.tkk7.com/sevenduan/archive/2010/04/14/318378.html</link><dc:creator>sevenduan</dc:creator><author>sevenduan</author><pubDate>Wed, 14 Apr 2010 15:14:00 GMT</pubDate><guid>http://www.tkk7.com/sevenduan/archive/2010/04/14/318378.html</guid><wfw:comment>http://www.tkk7.com/sevenduan/comments/318378.html</wfw:comment><comments>http://www.tkk7.com/sevenduan/archive/2010/04/14/318378.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/sevenduan/comments/commentRss/318378.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/sevenduan/services/trackbacks/318378.html</trackback:ping><description><![CDATA[鍏堢湅涓孌典唬鐮侊細<br /> <div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);">byte</span><span style="color: rgb(0, 0, 0);"> [] b </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">byte</span><span style="color: rgb(0, 0, 0);">[]{</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">};<br />         System.out.println(Arrays.toString(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> String(b).getBytes()));</span></div> <br /> 杈撳嚭錛?br /> [1, -17, -65, -67, 2, -17, -65, -67]<br /> 瑙i噴錛?br /> byte decode to String,String encode to byte 榛樿鐢║TF-8 charset.<br /> decode閬囧埌涓嶆敮鎸佺殑瀛楃 杈撳嚭 char 錕?, encode 錕?灝辨槸 -17, -65, -67.<br /> 瀹炵幇緇嗚妭鍙ByteToCharUTF8.java<br /> <br /> 瑙e喅鍔炴硶錛?浣跨敤 ISO8859_1 charset銆?br /> <br /> 鏁欒錛?娉ㄦ剰charset鐨勮寖鍥淬?br /> <br /> <br /> <br /> <img src ="http://www.tkk7.com/sevenduan/aggbug/318378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/sevenduan/" target="_blank">sevenduan</a> 2010-04-14 23:14 <a href="http://www.tkk7.com/sevenduan/archive/2010/04/14/318378.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java 浣嶈繍綆?/title><link>http://www.tkk7.com/sevenduan/archive/2010/04/13/318160.html</link><dc:creator>sevenduan</dc:creator><author>sevenduan</author><pubDate>Tue, 13 Apr 2010 06:39:00 GMT</pubDate><guid>http://www.tkk7.com/sevenduan/archive/2010/04/13/318160.html</guid><wfw:comment>http://www.tkk7.com/sevenduan/comments/318160.html</wfw:comment><comments>http://www.tkk7.com/sevenduan/archive/2010/04/13/318160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/sevenduan/comments/commentRss/318160.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/sevenduan/services/trackbacks/318160.html</trackback:ping><description><![CDATA[java bitwise operator:<br /> ~ The unary bitwise complement operator "<code>~</code>" inverts a bit pattern.<br /> <<The signed left shift<br /> >>The signed right shift<br /> >>>the unsigned right shift<br /> <p> & The bitwise <code>&</code> operator performs a bitwise AND operation. </p> <p> ^ The bitwise <code>^</code> operator performs a bitwise exclusive OR operation. </p> <p> | The bitwise <code>|</code> operator performs a bitwise inclusive OR operation. </p> <br /> <br /> Usage:<br /> 1, <br /> <ul> <li><code>^</code> can swap two variables without using an intermediate, temporary variable which is useful if you are short on available RAM or want that sliver of extra speed. <p>Usually, when <strong>not using</strong> <code>^</code>, you will do:</p> <pre>temp = a;<br /> <br /> a = b;<br /> <br /> b = temp;</pre> <p><strong>Using</strong> <code>^</code>, no "temp" is needed:</p> <pre>a ^= b;<br /> <br /> b ^= a;<br /> <br /> a ^= b;</pre> <p>This will swap "a" and "b" integers. <span id="sega8yk" class="hlt">Both must be integers.</span> </p> </li> </ul> 2,<br /> an example of using an integer to maintain state flags (common usage): <pre class="prettyprint"><code><span id="q8m4scu" class="com">// These are my masks</span><span id="iiguksu" class="pln"><br /> <br /> </span><span id="woq8ccu" class="kwd">private</span><span id="44kcyy4" class="pln"> </span><span id="i4c4g44" class="kwd">static</span><span id="sqmkqoi" class="pln"> </span><span id="4ciyksy" class="kwd">final</span><span id="844sqoe" class="pln"> </span><span id="4y4wk44" class="kwd">int</span><span id="ukokew8" class="pln"> MASK_DID_HOMEWORK  </span><span id="iycwiq8" class="pun">=</span><span id="8k8e44c" class="pln"> </span><span id="6c4uua4" class="lit">0x0001</span><span id="4gmosqk" class="pun">;</span><span id="q4ioqqo" class="pln"><br /> <br /> </span><span id="oa8mqe4" class="kwd">private</span><span id="6ywscs8" class="pln"> </span><span id="oemyqq8" class="kwd">static</span><span id="megae44" class="pln"> </span><span id="ywqk8m4" class="kwd">final</span><span id="8u4u4ku" class="pln"> </span><span id="oeicq4w" class="kwd">int</span><span id="qgu8yo4" class="pln"> MASK_ATE_DINNER    </span><span id="s44ak4s" class="pun">=</span><span id="yik844k" class="pln"> </span><span id="gy4kwmy" class="lit">0x0002</span><span id="c848sas" class="pun">;</span><span id="ecy8kai" class="pln"><br /> <br /> </span><span id="wwq4ksy" class="kwd">private</span><span id="i46yki4" class="pln"> </span><span id="m8coiig" class="kwd">static</span><span id="u44soum" class="pln"> </span><span id="coa4ssi" class="kwd">final</span><span id="ke4yc4w" class="pln"> </span><span id="aiusmuk" class="kwd">int</span><span id="8y4eqy4" class="pln"> MASK_SLEPT_WELL    </span><span id="ogagiqe" class="pun">=</span><span id="44ya4si" class="pln"> </span><span id="y4gs4qo" class="lit">0x0004</span><span id="8o4g84m" class="pun">;</span><span id="iokmqem" class="pln"> <br /> <br /> <br /> <br /> </span><span id="ios8o4a" class="com">// This is my current state</span><span id="mu88oqo" class="pln"><br /> <br /> </span><span id="q8yc4si" class="kwd">private</span><span id="i8k444y" class="pln"> </span><span id="u6gaeui" class="kwd">int</span><span id="c4e4sqo" class="pln"> m_nCurState</span><span id="4yo44e4" class="pun">;</span><span id="y68qkyg" class="pln"><br /> <br /> </span></code></pre> <p>To <strong><em>set</em></strong> my state, I use the bitwise OR operator:</p> <pre class="prettyprint"><code><span id="k8e8muc" class="com">// Set state for'ate dinner' and 'slept well' to 'on'</span><span id="sc84oc4" class="pln"><br /> <br /> m_nCurState </span><span id="am44qou" class="pun">=</span><span id="yomswck" class="pln"> m_nCurState </span><span id="oo4e4w4" class="pun">|</span><span id="u84a44w" class="pln"> </span><span id="iy4qu4y" class="pun">(</span><span id="84ieg4k" class="pln">MASK_ATE_DINNER </span><span id="8i644mk" class="pun">|</span><span id="as4gagy" class="pln"> MASK_SLEPT_WELL</span><span id="4kik44g" class="pun">);</span><span id="mmkoigo" class="pln"><br /> <br /> </span></code></pre> <p>Notice how I 'or' my current state in with the states that I want to turn 'on'. Who knows what my current state is and I don't want to blow it away. </p> <p>To <strong><em>unset</em></strong> my state, I use the bitwise AND operator with the complement operator:</p> <pre class="prettyprint"><code><span id="8m648si" class="com">// Turn off the 'ate dinner' flag</span><span id="us44k4g" class="pln"><br /> <br /> m_nCurState </span><span id="a844em4" class="pun">=</span><span id="uekm4u4" class="pln"> </span><span id="mu4oq4k" class="pun">(</span><span id="8agaeus" class="pln">m_nCurState </span><span id="e4i4e44" class="pun">&</span><span id="mmcwaoo" class="pln"> </span><span id="w8qkum8" class="pun">~</span><span id="48ugaag" class="pln">MASK_ATE_DINNER</span><span id="qg4a4ow" class="pun">);</span><span id="48ugs44" class="pln"><br /> <br /> </span></code></pre> <p>To <strong><em>check</em></strong> my current state, I use the AND operator:</p> <pre class="prettyprint"><code><span id="ko6k4q4" class="com">// Check if I did my homework</span><span id="8qo4m4g" class="pln"><br /> <br /> </span><span id="444imk4" class="kwd">if</span><span id="ck4auka" class="pln"> </span><span id="w8u4gom" class="pun">(</span><span id="w8s4ouk" class="lit">0</span><span id="8uya44w" class="pln"> </span><span id="gec48iy" class="pun">!=</span><span id="844icsa" class="pln"> </span><span id="6g4aeu4" class="pun">(</span><span id="o4koiwu" class="pln">m_nCurState </span><span id="ioimg44" class="pun">&</span><span id="aa4mgem" class="pln"> MASK_DID_HOMEWORK</span><span id="ek44ec4" class="pun">))</span><span id="qqe44we" class="pln"> </span><span id="8yuqay8" class="pun">{</span><span id="om684k4" class="pln"><br /> <br />     </span><span id="ygaegwu" class="com">// yep</span><span id="weqk8ua" class="pln"><br /> <br /> </span><span id="m8uy44s" class="pun">}</span><span id="k4i4mm4" class="pln"> </span><span id="ooac448" class="kwd">else</span><span id="4o44iq4" class="pln"> </span><span id="m8iu444" class="pun">{</span><span id="qi8mo4s" class="pln"> <br /> <br />     </span><span id="48844y4" class="com">// nope...</span><span id="umoiw4i" class="pln"><br /> <br /> </span><span id="eu8gk4u" class="pun">}</span><span id="um8oa44" class="pln"><br /> <br /> </span></code></pre> <p>Why do I think this is interesting? Say I'm designing an interface that sets my state. I could write a method that accepts three booleans:</p> <pre class="prettyprint"><code><span id="w4uy4e4" class="kwd">void</span><span id="8wqcqs8" class="pln"> setState</span><span id="gwk8y44" class="pun">(</span><span id="e84smmw" class="pln"> </span><span id="a844aig" class="kwd">boolean</span><span id="c4ysu4w" class="pln"> bDidHomework</span><span id="484imcs" class="pun">,</span><span id="8e44ki4" class="pln"> </span><span id="m484qgo" class="kwd">boolean</span><span id="wcgam4o" class="pln"> bAteDinner</span><span id="4444444" class="pun">,</span><span id="84e4msa" class="pln"> </span><span id="e6o8ksy" class="kwd">boolean</span><span id="ay4icc4" class="pln"> bSleptWell</span><span id="8uwi44k" class="pun">);</span><span id="csw88w4" class="pln"><br /> <br /> </span></code></pre> <p>Or, I could use a single number to represent all three states and pass a single value:</p> <pre class="prettyprint"><code><span id="auya4oe" class="kwd">void</span><span id="ucwagom" class="pln"> setState</span><span id="guqk4iy" class="pun">(</span><span id="44e4yo4" class="pln"> </span><span id="o8awuia" class="kwd">int</span><span id="om4au44" class="pln"> nStateBits</span><span id="i84ysi4" class="pun">);</span><span id="a448i8c" class="pln"><br /> <br /> </span></code></pre> <p>If you choose the second pattern you'll be very happy when decide to add another state - you won't have to break existing impls of your interface.</p> <br /> <img src ="http://www.tkk7.com/sevenduan/aggbug/318160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/sevenduan/" target="_blank">sevenduan</a> 2010-04-13 14:39 <a href="http://www.tkk7.com/sevenduan/archive/2010/04/13/318160.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浠涔堟墠鏄縺鍔變綘宸ヤ綔鐨勫姩鍔涳紵http://www.tkk7.com/sevenduan/archive/2010/04/05/317515.htmlsevenduansevenduanMon, 05 Apr 2010 15:43:00 GMThttp://www.tkk7.com/sevenduan/archive/2010/04/05/317515.htmlhttp://www.tkk7.com/sevenduan/comments/317515.htmlhttp://www.tkk7.com/sevenduan/archive/2010/04/05/317515.html#Feedback0http://www.tkk7.com/sevenduan/comments/commentRss/317515.htmlhttp://www.tkk7.com/sevenduan/services/trackbacks/317515.html 榪欎釜闂闂嚜宸辯殑寰寰寰堝皯銆傜粡甯告濊冭繖浜涢棶棰樼殑寰寰鏄鐞嗚呫傚綋綆$悊鑰呮兂榪涜涓浜涚鐞嗗伐浣滅殑鏃跺欙紝綆$悊鏈韓灝辨垚浜嗘渶澶х殑闂銆傛墍浠ワ紝涓涓」鐩殑鎴愯觸寰寰鍦ㄥ緢澶х▼搴︿笂鍙栧喅浜庡彈鍒扮鐞嗗眰鐨勮礋闈㈠獎鍝嶇殑澶у皬銆?br /> 澶у鏁頒漢鍜屽ぇ澶氭暟綆$悊鑰呮湁鐫鍏卞悓鐨勮璇嗭紝閽辨墠鏄縺鍔辨垜浠伐浣滅殑鍔ㄥ姏銆傜悊鐢卞緢鍏呭垎錛岀泩鍒╂槸浼佷笟鐨勫敮涓鐩爣錛岃璧鋒潵灝卞ソ鍍忎漢媧葷潃灝辨槸涓轟簡鍚冮キ涓鏍楓傛墍浠ワ紝鍚勭緇╂晥鑰冩牳涓庤柂閰寕閽╀簡錛屽悇縐嶉」鐩銆佸搴﹀銆佸勾緇堝璇炵敓浜嗐備負浜嗗搷搴斾笂綰ф斂絳栵紝鎴戜滑寮濮嬪姞鐝姞鐐逛簡錛屽紑濮嬭刀榪涘害璧朵笟緇╀簡銆傝瘯鎯籌紝鍦ㄨ繖縐嶉┍鍔ㄤ笅錛屽鏋滄墜澶寸殑浜嬫儏娌℃湁鍜屽閲戞寕閽╋紝浣犺繕鏈夊姩鍔涚戶緇箞錛?br /> 緇撴灉鍞竴瀵煎悜瀵逛簬閲嶅鎬х殑浣撳姏鍔沖姩鏉ヨ鏄湁鏁堢殑銆備絾鏄浜庤剳鍔涘姵鍔ㄨ呮潵璇達紝鑷彂銆佷笓綺懼拰鐩爣鎬ф墠鏄唴鍦ㄧ殑鑳藉鎸佺畫嬋鍔辨垜浠伐浣滅殑鍔ㄥ姏鎵鍦ㄣ?br /> 鑷彂錛?br /> 瀵逛簬鑴戝姏鍔沖姩錛屽懡浠ゅ紡鐨勫垎閰嶄換鍔″緢闅懼鏁堬紝寰堟樉鐒訛紝浣犱笉鑳藉己榪埆浜虹殑鎯蟲硶銆傚氨鍍忓己榪鐢熷涔犱竴鏍楓傚彧鏈夎嚜鍙戠殑宸ヤ綔錛屾墠鑳藉煿鍏誨叴瓚f縺鍙戝伐浣滅儹鎯呫傛濡傛晱鎹峰疄璺甸噷寮鴻皟浠誨姟搴旇鐢變釜浜鴻嚜鍙戦夋嫨棰嗗彇涓鏍楓?br /> 涓撶簿錛?br /> 鍦ㄨ嚜鍙戠殑鍓嶆彁涓嬶紝鏃犺鎴戜滑鍋氫粈涔堜簨鎯咃紝鎴戜滑鎬繪槸甯屾湜鑷繁鍙互鍋氬緱鏇村ソ銆傝繖灝辨槸涓撶簿銆傚涓撶簿鐨勫悜寰琛ㄧ幇涓哄宸ヤ綔鐨勭棿榪楓傝鎯蟲洿涓轟笓綺撅紝蹇呴』涓嶆柇鐨勭粌涔犲疄璺靛拰鍒嗘瀽鎬濊冦?br /> 鐩爣鎬э細
鑷彂鍜屼笓綺句篃璁歌兘鍦ㄤ腑鐭湡緇存寔鍔ㄥ姏錛屼絾鏄暱鏈熶笅鍘伙紝褰撴垜浠笉鐭ラ亾鑷繁涓轟粈涔堝伐浣滅殑鏃跺欙紝鍔ㄥ姏涔熶細琛扮銆傜洰鏍囨ц姹傜洰鏍囦笉鑳藉お浣庤屾病鏈夋垚灝辨劅錛屾垨鑰呭お楂樿屽緢闅捐揪鍒般傛渶濂界殑鐩爣鏄瘮浣犵幇鍦ㄧ殑鎴愬氨鏇撮珮錛屼笖闇瑕佷竴瀹氱殑鍔姏鎵嶈兘杈懼埌銆?br /> Drive: The Surprising Truth About What Motivates Us




sevenduan 2010-04-05 23:43 鍙戣〃璇勮
]]>
鐢℅mail tasks鏉ュ仛涓漢SCRUM綆$悊http://www.tkk7.com/sevenduan/archive/2010/04/01/317109.htmlsevenduansevenduanWed, 31 Mar 2010 16:54:00 GMThttp://www.tkk7.com/sevenduan/archive/2010/04/01/317109.htmlhttp://www.tkk7.com/sevenduan/comments/317109.htmlhttp://www.tkk7.com/sevenduan/archive/2010/04/01/317109.html#Feedback0http://www.tkk7.com/sevenduan/comments/commentRss/317109.htmlhttp://www.tkk7.com/sevenduan/services/trackbacks/317109.html 1錛屼竴鍛ㄤ竴涓猧teration錛屼竴涓猧teration鍏辮30涓猰an hours錛?br /> 鍙鍙互灝忚凱浠f繪槸鏇村ソ銆?br /> story point浼樺娍鍦ㄤ簬娑堥櫎涓綋宸紓錛屼釜浜洪」鐩甿an hour鏇村噯紜洿鎺ャ?br /> 2, 姣忓懆鏃ュ仛iteration plan,璁″垝涓嬪懆浠誨姟錛岀敤gmail tasks鏉ュ仛story wall銆?br /> 3錛屾瘡鍛ㄤ簲鏅氬仛retrospective錛屾葷粨涓鍛ㄥ伐浣滐紝鐩存帴鐢╣mail鏉ヤ繚瀛樺洖欏炬葷粨銆?br />


sevenduan 2010-04-01 00:54 鍙戣〃璇勮
]]>
JBossCache in JBoss Clusterhttp://www.tkk7.com/sevenduan/archive/2010/03/28/clustercache.htmlsevenduansevenduanSun, 28 Mar 2010 15:10:00 GMThttp://www.tkk7.com/sevenduan/archive/2010/03/28/clustercache.htmlhttp://www.tkk7.com/sevenduan/comments/316774.htmlhttp://www.tkk7.com/sevenduan/archive/2010/03/28/clustercache.html#Feedback0http://www.tkk7.com/sevenduan/comments/commentRss/316774.htmlhttp://www.tkk7.com/sevenduan/services/trackbacks/316774.html
Cache鐨勭洰鐨勬槸涓轟簡浠ョ┖闂存崲鏃墮棿錛屼竴嬈¤綆楃粨鏋滀負澶氭閲嶇敤銆?br /> 絀洪棿鍙互鏄疄鏃跺唴瀛樼┖闂淬佹寔涔呭寲鐨勭‖鐩樼┖闂淬傛椂闂村彲浠ユ槸榪愮畻鏃墮棿銆佽繛鎺ユ椂闂淬佷紶杈撴椂闂寸瓑銆?br />
Cache鍙互鍒嗕負LocalCache鍜孌istributedCache銆?br /> 鏈綆鍗曠殑LocalCache鍙互閫氳繃緇存姢涓涓狢oncurrentHashMap瀹炵幇銆?br /> 緙虹偣鏄細
1錛屽唴瀛樻湁闄愶紝瀹規槗out of memory 錛堝畾鏈熸竻闄わ紵鎸佷箙鍖栵紵錛?br /> 2, 闇瑕佸鍏╩ap鍋歝oncurrency緇存姢錛岀矖綺掑害鐨勯攣瀹氫簤鐢ㄤ細褰卞搷鎬ц兘錛堟爲緇撴瀯緇存姢錛燂級

鍦ㄤ竴涓笓涓氱殑浼佷笟綰у簲鐢ㄤ腑錛宑ache闄や簡楂樻ц兘鍜岀嚎紼嬪畨鍏ㄧ殑瑕佹眰錛岃繕瑕佹敮鎸佷簨鍔°侀珮鍙敤鎬с佹寔涔呭寲銆佸閿欍侀泦緹ゅ悓姝ョ瓑銆?br /> JBossCache鏄竴涓吀鍨嬬殑浼佷笟綰ache瀹炵幇錛屼粬閲囩敤鏍戠粨鏋勪笖鏀寔闆嗙兢鍜屼簨鍔$壒鎬с?br /> 铏界劧JBossCache榪欐妸鐗涘垁涔熷彲浠ュ湪standalone鐨凧S2E搴旂敤涓敤鏉ユ潃楦★紝浣嗘垜浠簲璇ユ洿鍏沖績鐢ㄤ粬鍦ㄩ泦緹ょ幆澧冧腑鎬庝箞鏉鐗涖?br /> JBossCache鍒嗕負闈為泦緹ゆā寮?Local)鍜岄泦緹ゆā寮忋?br /> 闆嗙兢妯″紡鏍規嵁瀹炵幇絳栫暐鍙堝垎涓簉eplication鍜宨nvalidation銆?br /> 1 replication錛氶氳繃鎷瘋礉鏀瑰彉鐨刢ache瀵硅薄鏉ヤ繚璇佷笌闆嗙兢涓叾浠朿ache鍚屾銆俽eplication鍙堝彲緇嗗垎涓哄悓姝eplication鍜屽紓姝epliation涓ょ錛屽紓姝eplication杈冨揩,put浠ュ悗椹笂榪斿洖錛屼絾鏄痳eplication鍑洪敊浜嗭紝浜嬪姟榪樻槸綆楀畬鎴愪簡涓嶅洖鍥炴粴銆傚悓姝eplication瑕佽姳鏃墮棿絳夊緟鍏朵粬鐨刢ache瀹屾垚replication鐨勯氱煡鎵嶈兘緇撴潫銆?br />
2 invalidation: 濡傛灉cache鐘舵佹敼鍙橈紝浠呬粎鏄粰鍏朵粬cache鍙戜釜閫氱煡錛屾敹鍒伴氱煡鐨刢ache鎶婅剰鏁版嵁娓呴櫎鎺夈俰nvalidation涔熷彲鍒嗕負鍚屾鍜屽紓姝ヤ袱縐嶏紝鍖哄埆鏄彂閫侀氱煡鐨勫箍鎾柟寮忎竴涓槸鍚屾涓涓槸寮傛銆?br />
鍦╦boss cluster涓紝鎴戜滑鏈濂介氳繃MBean鏉ラ儴緗瞛boss cache銆傝繖鏍峰張鍑犱釜濂藉錛?br /> 1錛孞Boss NS鏀寔Cluster
鎴戜滑灝卞彲浠ラ氳繃JBoss NamingService鏉ヨ闂甤ache銆傚鏋滃湪local NS涓煡涓嶅埌cache錛宩bss NS榪樹細鍘繪煡cluster涓叾浠栫殑cache銆?br /> 2錛屽埄鐢∕Bean鐨勭壒鎬?br /> 閫氳繃CacheMBean, 鎴戜滑鍙互鏂逛究鐨勭鐞咰ache Service錛屽疄鏃剁殑鍚姩銆佸仠姝㈡垨鑰呮敼鍙樹竴浜涢厤緗紝榪樺彲浠ョ洃鎺у埌涓浜沜ache緇熻鏁版嵁銆?br /> 3錛屽埄鐢?a id="d0e1230">microcontainer鐨勭壒鎬?br /> 鎴戜滑鍙互閫氳繃閰嶇疆XML鏂囦歡鏉ュ畬鎴恈ache鐩稿叧鐨勬墍鏈夊璞″0鏄庛?/code>綆鑰岃█涔嬶紝灝辨槸鍒╃敤java reflection鍜孉OP鐨勬妧鏈氨涓嶇敤鍐欏0鏄巆ache鐨勪唬鐮佷簡銆?br />

<?xml version="1.0" encoding="UTF-8"?>



<deployment xmlns="urn:jboss:bean-deployer:2.0">



   
<!-- First we create a Configuration object for the cache -->

   
<bean name="ExampleCacheConfig"

         class
="org.jboss.cache.config.Configuration">

      

       build up the Configuration

      

   
</bean>

   

   
<!-- Factory to build the Cache. -->

   
<bean name="DefaultCacheFactory" class="org.jboss.cache.DefaultCacheFactory">      

      
<constructor factoryClass="org.jboss.cache.DefaultCacheFactory"

                   factoryMethod
="getInstance" />

   
</bean>

   

   
<!-- The cache itself -->

   
<bean name="ExampleCache" class="org.jboss.cache.CacheImpl">

      

      
<constructor factoryMethod="createnewInstance">

          
<factory bean="DefaultCacheFactory"/>

          
<parameter><inject bean="ExampleCacheConfig"/></parameter>

          
<parameter>false</parameter>

      
</constructor>

          

   
</bean>

   

   
<!-- JMX Management -->

   
<bean name="ExampleCacheJmxWrapper" class="org.jboss.cache.jmx.CacheJmxWrapper">

      

      
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.cache:service=ExampleTreeCache", 

                         exposedInterface=org.jboss.cache.jmx.CacheJmxWrapperMBean.class, 

                         registerDirectly=true)
</annotation>

      

      
<constructor>

          
<parameter><inject bean="ExampleCache"/></parameter>

      
</constructor>

          

   
</bean>



</deployment> 

鍚庤錛?br /> 1錛宩boss cache鐨刵aga鐗堜腑錛岄噰鐢?a >Multi-versioned concurrency control鏉ュ疄鐜板茍鍙戙備笅嬈″啀浠庝腑鎬葷粨涓涓嬪綰跨▼鐨勫涔犮?br /> 2錛宩boss cache閫氳繃緇撳悎visitor pattern鍜宑ommand pattern錛屾妸瀵筩ache node鐨勬搷浣滀笌璁塊棶浠庝腑闅旂鍑烘潵錛屼笉鐢ㄦ敼鍙樻垨鑰呮墿灞昻ode瀵硅薄灝卞彲浠ユ坊鍔犳柊鐨刵ode琛屼負銆備篃灝辨槸寮闂師鍒欍備笅嬈″啀浠庝腑鎬葷粨涓涓嬪嚑縐嶈璁℃ā寮忕殑緇忓吀搴旂敤銆?br />




sevenduan 2010-03-28 23:10 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 一级成人a毛片免费播放| 国产成人高清精品免费观看| 精品无码国产污污污免费网站| 国产性爱在线观看亚洲黄色一级片| 特黄aa级毛片免费视频播放| 国产男女猛烈无遮挡免费视频| 亚洲爆乳无码专区www| 国产成人精品男人免费| 美女羞羞视频免费网站| 波多野结衣视频在线免费观看 | 亚洲第一区精品观看| 无码人妻一区二区三区免费视频 | 成年女人男人免费视频播放| 亚洲一线产区二线产区区| 猫咪社区免费资源在线观看| 最新国产精品亚洲| 免费无码又爽又刺激毛片| 无码一区二区三区亚洲人妻| 国产精品亚洲高清一区二区| 精品久久久久久无码免费| 亚洲精品无码久久一线| 日韩免费无码一区二区三区| 亚洲制服在线观看| 免费高清资源黄网站在线观看| 国产精品自拍亚洲| 久久久久亚洲AV成人网人人网站 | 日韩精品视频在线观看免费| 国产成人综合亚洲AV第一页| 中文字幕久无码免费久久| 水蜜桃亚洲一二三四在线| 无码日韩精品一区二区免费| 在线观看亚洲视频| 亚洲va久久久噜噜噜久久| 成年网站免费视频A在线双飞| 亚洲AV日韩AV一区二区三曲| 中国亚洲女人69内射少妇| 91福利免费视频| 免费VA在线观看无码| 亚洲国产精品乱码一区二区| 中国在线观看免费国语版| 免费一区二区三区在线视频|