锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品成a人在线观看夫,亚洲av一综合av一区,久久亚洲精品11phttp://www.tkk7.com/liuxiaosan/category/48194.html鎿嶈泲鐨勪漢鐢熷澶勫厖婊$編濡?/description>zh-cnTue, 13 Sep 2011 10:39:26 GMTTue, 13 Sep 2011 10:39:26 GMT60Java Annotation 娉ㄨВhttp://www.tkk7.com/liuxiaosan/articles/347691.htmlliucsliucsMon, 22 Aug 2011 10:33:00 GMThttp://www.tkk7.com/liuxiaosan/articles/347691.htmlhttp://www.tkk7.com/liuxiaosan/comments/347691.htmlhttp://www.tkk7.com/liuxiaosan/articles/347691.html#Feedback0http://www.tkk7.com/liuxiaosan/comments/commentRss/347691.htmlhttp://www.tkk7.com/liuxiaosan/services/trackbacks/347691.htmlAnnotation錛堟敞瑙o級鏄粈涔堬紵 闄勫姞鍦ㄤ唬鐮佷腑鐨勪竴浜涘厓淇℃伅錛岀敤浜庝竴浜涘伐鍏峰湪緙栬瘧銆佽繍琛屾椂榪涜瑙f瀽鍜屼嬌鐢紝璧峰埌璇存槑銆侀厤緗殑鍔熻兘銆?br />娉ㄨВ涓嶄細涔熶笉鑳藉獎鍝嶄唬鐮佺殑瀹為檯閫昏緫錛屼粎浠呰搗鍒拌緟鍔╂х殑浣滅敤銆傚寘鍚湪 java.lang.annotation 鍖呬腑銆?br />

1銆丄nnotation鐨勫畾涔?/h2> 棣栧厛鐪嬩竴涓嬪浣曞畾涔夋垜浠嚜宸辯殑娉ㄨВ錛屼笅闈㈡槸SpringMvc涓璕equestParam娉ㄨВ鐨勫畾涔夈?br />
@Retention(RetentionPolicy.RUNTIME) // 娉ㄨВ鐨勪繚鐣欑瓥鐣?/span>
@Target(ElementType.PARAMETER)  // 娉ㄨВ鐨勪綔鐢ㄧ洰鏍?/span>
@Documented
public @interface RequestParam {  // 浣跨敤@interface瀹氫箟娉ㄨВ
    String value() 
default "";  // 綾諱技鏂規硶鐨勫睘鎬?/span>
    
boolean required() default true;  // 浣跨敤default鎸囧畾灞炴х殑榛樿鍊?/span>
    String defaultValue() 
default ValueConstants.DEFAULT_NONE;
}

浣跨敤鏂瑰紡濡備笅錛?br />
void deleteUser(@RequestParam(value="id",required=false) Long id)  { }

2銆佸厓娉ㄨВ

鍏冩敞瑙f槸鎸囨敞瑙g殑娉ㄨВ銆傚寘鎷?nbsp; @Retention @Target @Document @Inherited鍥涚銆?br />

2.1銆丂Retention: 瀹氫箟娉ㄨВ鐨勪繚鐣欑瓥鐣?/h4>
@Retention(RetentionPolicy.SOURCE)   娉ㄨВ浠呭瓨鍦ㄤ簬婧愮爜涓紝鍦╟lass瀛楄妭鐮佹枃浠朵腑涓嶅寘鍚?/span>
@Retention(RetentionPolicy.CLASS)      榛樿鐨勪繚鐣欑瓥鐣ワ紝娉ㄨВ浼氬湪class瀛楄妭鐮佹枃浠朵腑瀛樺湪錛屼絾榪愯鏃舵棤娉曡幏寰楋紝
@Retention(RetentionPolicy.RUNTIME)   娉ㄨВ浼氬湪class瀛楄妭鐮佹枃浠朵腑瀛樺湪錛屽湪榪愯鏃跺彲浠ラ氳繃鍙嶅皠鑾峰彇鍒?/span>

2.2銆丂Target錛氬畾涔夋敞瑙g殑浣滅敤鐩爣

@Target(ElementType.TYPE)   鎺ュ彛銆佺被銆佹灇涓俱佹敞瑙?/span>
@Target(ElementType.FIELD)  瀛楁銆佹灇涓劇殑甯擱噺
@Target(ElementType.METHOD)  鏂規硶
@Target(ElementType.PARAMETER) 鏂規硶鍙傛暟
@Target(ElementType.CONSTRUCTOR)  鏋勯犲嚱鏁?/span>
@Target(ElementType.LOCAL_VARIABLE) 灞閮ㄥ彉閲?/span>
@Target(ElementType.ANNOTATION_TYPE) 娉ㄨВ
@Target(ElementType.PACKAGE)  鍖?/span>   

2.3銆丂Document錛氳鏄庤娉ㄨВ灝嗚鍖呭惈鍦╦avadoc涓?/h4>

2.4銆丂Inherited錛氳鏄庡瓙綾誨彲浠ョ戶鎵跨埗綾諱腑鐨勮娉ㄨВ

3銆侀氳繃鍙嶅皠璇誨彇娉ㄨВ


package java.lang.reflect;
import java.lang.annotation.Annotation;

public interface AnnotatedElement {
    
/**鍒ゆ柇璇ュ厓绱犱腑鏌愪釜娉ㄨВ綾誨瀷鏄惁瀛樺湪*/
     
boolean isAnnotationPresent(Class<? extends Annotation> annotationClass);

   
/**鑾峰緱璇ュ厓绱犱腑鏌愪釜娉ㄨВ綾誨瀷鐨勬敞瑙?/span>*/
    
<extends Annotation> T getAnnotation(Class<T> annotationClass);

    
/**鑾峰緱璇ュ厓绱犱腑鎵鏈夊彲瑙佺殑娉ㄨВ錛屽寘鍚戶鎵垮緱鍒扮殑娉ㄨВ*/
    Annotation[] getAnnotations();

    
/**鑾峰緱璇ュ厓绱犺嚜韜粈涔堢殑娉ㄨВ錛屼笉鍖呭惈緇ф壙寰楀埌鐨勬敞瑙?/span>*/
    Annotation[] getDeclaredAnnotations();
}

java.lang.Package
java.lang.Class
java.lang.reflect.Construtor
java.lang.reflect.Field
java.lang.reflect.Method
鍧囧疄鐜頒簡璇ユ帴鍙o紝鎵浠ユ垜浠彲浠ラ氳繃鍙嶅皠鑾峰彇鍒?Class銆丆onstrutor銆丗ield銆丮ehtod絳夛紝鐒跺悗鍐嶉氳繃涓婅堪鎺ュ彛鏂規硶錛岃幏寰椾綔鐢ㄥ湪榪欎簺鍏冪礌涓婄殑娉ㄨВ銆?br />涓嬮潰鏄疪equestParam娉ㄨВ鐨勪嬌鐢紝涓轟究浜庢紨紺猴紝鐣ヤ綔淇敼錛岃org.springframework.web.bind.annotation.support.HandlerMethodInvoker婧愮爜

Method handlerMethod = *****;
Annotation[] paramAnns 
= handlerMethod.getParameterAnnotations();

String paramName 
= null;
boolean required = false;
String defaultValue 
= null;

for (Annotation paramAnn : paramAnns) {
    
if (RequestParam.class.isInstance(paramAnn)) {
        RequestParam requestParam 
= (RequestParam) paramAnn;
        paramName 
= requestParam.value();
        required 
= requestParam.required();
        defaultValue 
= parseDefaultValueAttribute(requestParam.defaultValue());
        annotationsFound
++;
    }
       
// *******鍏朵粬澶勭悊*******************             
}


4銆佸父瑙佹敞瑙g殑璇存槑鍙婁嬌鐢?/h2>@Override :@Target(ElementType.METHOD)   @Retention(RetentionPolicy.SOURCE)  璇存槑鏂規硶鏄鐖剁被鏂規硶鐨勮鐩栵紝鐢ㄤ簬緙栬瘧鍣ㄧ紪璇戞椂榪涜媯鏌?br />@Deprecated: @Documented  @Retention(RetentionPolicy.RUNTIME)   鐢ㄤ簬寤鴻涓嶈浣跨敤鏌愬厓绱?br />@SuppressWarnings錛欯Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) @Retention(RetentionPolicy.SOURCE) 
    璇存槑瀵硅鎵規敞鐨勪唬鐮佸厓 绱犲唴閮ㄧ殑鏌愪簺璀﹀憡淇濇寔闈欓粯



liucs 2011-08-22 18:33 鍙戣〃璇勮
]]>Volatile鍙橀噺http://www.tkk7.com/liuxiaosan/articles/347878.htmlliucsliucsFri, 08 Apr 2011 08:28:00 GMThttp://www.tkk7.com/liuxiaosan/articles/347878.htmlhttp://www.tkk7.com/liuxiaosan/comments/347878.htmlhttp://www.tkk7.com/liuxiaosan/articles/347878.html#Feedback0http://www.tkk7.com/liuxiaosan/comments/commentRss/347878.htmlhttp://www.tkk7.com/liuxiaosan/services/trackbacks/347878.htmlhttp://www.ibm.com/developerworks/cn/java/j-jtp06197.html  涓鏂囩瑪璁?br />
鍦╦ava涓紝涓轟簡鎻愰珮鎬ц兘錛岀嚎紼嬩竴鑸妸鍙橀噺浠庡唴瀛樹腑澶囦喚涓涓壇鏈埌瀵勫瓨鍣ㄣ倂olatile 鍏抽敭瀛楁剰鎬濇槸鏄撳け鎬э紝鏄庣‘琛ㄧず
涓涓彉閲忔槸浼氳澶氱嚎紼嬭闂殑錛屾瘡涓嚎紼嬪湪姣忔璇誨彇閮借浠庡唴瀛樿鍙栧師濮嬪壇鏈殑鍊鹼紝鑰屼笉鏄紦瀛樺湪瀵勫瓨鍣ㄤ腑鐨勫箋傛瘡嬈′慨鏀?br /> 閮芥槸鎶婂煎啓鍥炲埌鍐呭瓨涓?br />
Java璇█鍖呭惈涓ょ鍐呭湪鐨勫悓姝ユ満鍒訛細鍚屾鍧楋紙鎴栨柟娉曪級鍜?volatile 鍙橀噺銆?br />
synchronized閿佹彁渚涗簡涓ょ涓昏鐗規э細浜掓枼錛坢utual exclusion錛?/em> 鍜?em>鍙鎬э紙visibility錛?/em>銆備簰鏂ュ嵆涓嬈″彧鍏佽涓涓嚎紼嬫寔鏈夋煇涓壒瀹氱殑閿侊紝鍥犳鍙嬌鐢ㄨ鐗規у疄鐜板鍏變韓鏁版嵁鐨勫崗璋冭闂崗璁紝榪欐牱錛屼竴嬈″氨鍙湁涓涓嚎紼嬭兘澶熶嬌鐢ㄨ鍏變韓鏁版嵁銆傚彲瑙佹у繀欏葷‘淇濋噴鏀鵑攣涔嬪墠瀵瑰叡浜暟鎹仛鍑虹殑鏇存敼瀵逛簬闅忓悗鑾峰緱璇ラ攣鐨勫彟涓涓嚎紼嬫槸鍙鐨勩?鍚﹀垯錛岀嚎紼嬬湅鍒扮殑鍏變韓鍙橀噺鍙兘鏄慨鏀瑰墠鐨勫兼垨涓嶄竴鑷寸殑鍊鹼紝寮曞彂涓ラ噸闂銆?

volatile鑳藉瀹炵幇涓婅堪鍙鎬э紝鍥犱負綰跨▼姣忔閮芥槸璇誨彇鍘熷鐗堟湰鐨勫鹼紝鍓嶄竴涓嚎紼嬬殑淇敼瀵瑰悗緇嚎紼嬫潵璇存槸鍙鐨勩備絾volatile涓嶈兘紜繚浜掓枼銆?br />
volatile閫傜敤鐨勫師鍒欙細
  • 瀵瑰彉閲忕殑鍐欐搷浣滀笉渚濊禆浜庡綋鍓嶅箋?/li>
  • 璇ュ彉閲忔病鏈夊寘鍚湪鍏鋒湁鍏朵粬鍙橀噺鐨勪笉鍙樺紡涓?/li>
鎵浠olatile涓嶈兘鐢ㄤ綔璁℃暟鍣紝鍥犱負璁℃暟鍣ㄧ殑鑷鏄竴涓-澧?鍐欑殑榪囩▼錛屼笉鏄師瀛愭搷浣滐紝鍦╲olatile涓嶇‘淇濅簰鏂ョ殑鎯呭喌涓嬶紝緇撴灉涓嶅噯紜?br /> 涓嶅彉寮忕殑鎰忔濇槸涓涓渶瑕佷笉鍙樼殑瑙勫緥錛屽璧峰瑕佸皬浜庣瓑浜庣粨鏉熴備笂榪?鐐圭畝鍗曟潵璇達細鍗沖彉閲忕湡姝g嫭绔嬩簬鍏朵粬鍙橀噺鍜岃嚜宸變互鍓嶇殑鍊?錛?鍦ㄨ繖浜?br /> 鎯呭喌涓嬪彲浠ヤ嬌鐢?volatile 浠f浛 synchronized 鏉ョ畝鍖栦唬鐮併?br />
volatile鐢變簬涓嶉樆濉炵嚎紼嬶紝鍦ㄦц兘涓鑸瘮synchronized琛ㄧ幇鏇村ソ銆?br />
閫傜敤volatile鐨勫嚑涓満鏅細
1銆佺姸鎬佹爣蹇?nbsp; 姣斿鏍囩ず鏈嶅姟鍚姩鎴栧仠姝€?br /> 2銆佺嫭绔嬭瀵?nbsp; 瀹氭湡 “鍙戝竷” 瑙傚療緇撴灉渚涚▼搴忓唴閮ㄤ嬌鐢紝
3銆?a name="listing6">緇撳悎浣跨敤 volatile 鍜?synchronized 瀹炵幇 “寮閿杈冧綆鐨勮錛嶅啓閿?#8221;
@ThreadSafe
public class CheesyCounter {
private volatile int value;
// 浣跨敤volatile瀹炵幇鍙鎬э紝寮閿浣?br /> public int getValue() { return value; }
// 浣跨敤synchronized瀹炵幇浜掓枼
public synchronized int increment() {
return value++;
}
}





liucs 2011-04-08 16:28 鍙戣〃璇勮
]]>
java鍔ㄦ佷唬鐞?/title><link>http://www.tkk7.com/liuxiaosan/articles/347552.html</link><dc:creator>liucs</dc:creator><author>liucs</author><pubDate>Wed, 06 Apr 2011 02:58:00 GMT</pubDate><guid>http://www.tkk7.com/liuxiaosan/articles/347552.html</guid><wfw:comment>http://www.tkk7.com/liuxiaosan/comments/347552.html</wfw:comment><comments>http://www.tkk7.com/liuxiaosan/articles/347552.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/liuxiaosan/comments/commentRss/347552.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/liuxiaosan/services/trackbacks/347552.html</trackback:ping><description><![CDATA[java dynamic proxy<br /> <br /> 鏍稿績java.lang.reflect.Proxy綾?br /> <br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; 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: #008000;">//</span><span style="color: #008000;"> 鏍規嵁緇欏畾鎺ュ彛鍜孋lassLoader鑾峰彇Class瀵硅薄</span><span style="color: #008000;"><br /> // 浣跨敤Class.forName鍔ㄦ佸姞杞紺lass<br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> Class</span><span style="color: #000000;"><?></span><span style="color: #000000;"> getProxyClass(ClassLoader loader, Class</span><span style="color: #000000;"><?></span><span style="color: #000000;"><img src="http://www.tkk7.com/Images/dot.gif" alt="" /> interfaces)錛?br /> </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鍒涘緩浠g悊瀵硅薄</span><span style="color: #008000;"><br /> // 閫氳繃鍙嶅皠鐨凜onstructor鍒涘緩浠g悊瀵硅薄<br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> Object newProxyInstance(ClassLoader loader, Class</span><span style="color: #000000;"><?></span><span style="color: #000000;">[] interfaces, InvocationHandler h)錛?br /> </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鍒ゆ柇鏄惁鏄唬鐞咰lass</span><span style="color: #008000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">boolean</span><span style="color: #000000;"> isProxyClass(Class</span><span style="color: #000000;"><?></span><span style="color: #000000;"> cl)錛?br /> </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鑾峰緱浠g悊瀵硅薄鐨処nvocationHandler</span><span style="color: #008000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> InvocationHandler getInvocationHandler(Object proxy)</span></div> <br /> java.lang.reflect.InvocationHandler鎺ュ彛<br /> <br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; 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: #008000;">//</span><span style="color: #008000;"> 鍙嶅皠璋冪敤浠g悊綾繪柟娉?/span><span style="color: #008000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> Object invoke(Object proxy, Method method, Object[] args)<br />     </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Throwable;</span></div> <br /> org.springframework.aop.framework.JdkDynamicAopProxy<br /> springframeworkAOP鐗規у疄鐜扮殑鍩虹涔嬩竴錛岄氳繃鍔ㄦ佷唬鐞嗗疄鐜?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; 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: #008080;">  1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> org.springframework.aop.framework;<br /> </span><span style="color: #008080;">  2</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">  3</span> <span style="color: #0000ff;">final</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> JdkDynamicAopProxy </span><span style="color: #0000ff;">implements</span><span style="color: #000000;"> AopProxy, InvocationHandler, Serializable {<br /> </span><span style="color: #008080;">  4</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">  5</span> <span style="color: #000000;">    </span><span style="color: #008000;">/**</span><span style="color: #008000;"> 浠g悊鐨勯厤緗俊鎭?nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #008080;">  6</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">final</span><span style="color: #000000;"> AdvisedSupport advised;<br /> </span><span style="color: #008080;">  7</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">  8</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> JdkDynamicAopProxy(AdvisedSupport config) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> AopConfigException {<br /> </span><span style="color: #008080;">  9</span> <span style="color: #000000;">        Assert.notNull(config, </span><span style="color: #000000;">"</span><span style="color: #000000;">AdvisedSupport must not be null</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /> </span><span style="color: #008080;"> 10</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (config.getAdvisors().length </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #000000;">&&</span><span style="color: #000000;"> config.getTargetSource() </span><span style="color: #000000;">==</span><span style="color: #000000;"> AdvisedSupport.EMPTY_TARGET_SOURCE) {<br /> </span><span style="color: #008080;"> 11</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">throw</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> AopConfigException(</span><span style="color: #000000;">"</span><span style="color: #000000;">No advisors and no TargetSource specified</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /> </span><span style="color: #008080;"> 12</span> <span style="color: #000000;">        }<br /> </span><span style="color: #008080;"> 13</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.advised </span><span style="color: #000000;">=</span><span style="color: #000000;"> config;<br /> </span><span style="color: #008080;"> 14</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;"> 15</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 16</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 17</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> Object getProxy() {<br /> </span><span style="color: #008080;"> 18</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> getProxy(ClassUtils.getDefaultClassLoader());<br /> </span><span style="color: #008080;"> 19</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;"> 20</span> <span style="color: #000000;">    <br /> </span><span style="color: #008080;"> 21</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鑾峰彇浠g悊瀵硅薄</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 22</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> Object getProxy(ClassLoader classLoader) {<br /> </span><span style="color: #008080;"> 23</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (logger.isDebugEnabled()) {<br /> </span><span style="color: #008080;"> 24</span> <span style="color: #000000;">            logger.debug(</span><span style="color: #000000;">"</span><span style="color: #000000;">Creating JDK dynamic proxy: target source is </span><span style="color: #000000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.advised.getTargetSource());<br /> </span><span style="color: #008080;"> 25</span> <span style="color: #000000;">        }<br /> </span><span style="color: #008080;"> 26</span> <span style="color: #000000;">        Class[] proxiedInterfaces </span><span style="color: #000000;">=</span><span style="color: #000000;"> AopProxyUtils.completeProxiedInterfaces(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.advised);<br /> </span><span style="color: #008080;"> 27</span> <span style="color: #000000;">        findDefinedEqualsAndHashCodeMethods(proxiedInterfaces);<br /> </span><span style="color: #008080;"> 28</span> <span style="color: #000000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;"> 浣跨敤浜哖roxy鍔ㄦ佷唬鐞嗗垱寤轟唬鐞嗗璞?/span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 29</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> Proxy.newProxyInstance(classLoader, proxiedInterfaces, </span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br /> </span><span style="color: #008080;"> 30</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;"> 31</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 32</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 33</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鍥炶皟浠g悊瀵硅薄</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 34</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> Object invoke(Object proxy, Method method, Object[] args) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Throwable {<br /> </span><span style="color: #008080;"> 35</span> <span style="color: #000000;">        MethodInvocation invocation;<br /> </span><span style="color: #008080;"> 36</span> <span style="color: #000000;">        Object oldProxy </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 37</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">boolean</span><span style="color: #000000;"> setProxyContext </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 38</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 39</span> <span style="color: #000000;">        TargetSource targetSource </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.advised.targetSource;<br /> </span><span style="color: #008080;"> 40</span> <span style="color: #000000;">        Class targetClass </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 41</span> <span style="color: #000000;">        Object target </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 42</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 43</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {<br /> </span><span style="color: #008080;"> 44</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (</span><span style="color: #000000;">!</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.equalsDefined </span><span style="color: #000000;">&&</span><span style="color: #000000;"> AopUtils.isEqualsMethod(method)) {<br /> </span><span style="color: #008080;"> 45</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> The target does not implement the equals(Object) method itself.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 46</span> <span style="color: #000000;">                </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> equals(args[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br /> </span><span style="color: #008080;"> 47</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;"> 48</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (</span><span style="color: #000000;">!</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.hashCodeDefined </span><span style="color: #000000;">&&</span><span style="color: #000000;"> AopUtils.isHashCodeMethod(method)) {<br /> </span><span style="color: #008080;"> 49</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> The target does not implement the hashCode() method itself.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 50</span> <span style="color: #000000;">                </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> hashCode();<br /> </span><span style="color: #008080;"> 51</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;"> 52</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (</span><span style="color: #000000;">!</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.advised.opaque </span><span style="color: #000000;">&&</span><span style="color: #000000;"> method.getDeclaringClass().isInterface() </span><span style="color: #000000;">&&</span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 53</span> <span style="color: #000000;">                    method.getDeclaringClass().isAssignableFrom(Advised.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">)) {<br /> </span><span style="color: #008080;"> 54</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> Service invocations on ProxyConfig with the proxy config<img src="http://www.tkk7.com/Images/dot.gif" alt="" /></span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 55</span> <span style="color: #000000;">                </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> AopUtils.invokeJoinpointUsingReflection(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.advised, method, args);<br /> </span><span style="color: #008080;"> 56</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;"> 57</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 58</span> <span style="color: #000000;">            Object retVal;<br /> </span><span style="color: #008080;"> 59</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 60</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.advised.exposeProxy) {<br /> </span><span style="color: #008080;"> 61</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> Make invocation available if necessary.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 62</span> <span style="color: #000000;">                oldProxy </span><span style="color: #000000;">=</span><span style="color: #000000;"> AopContext.setCurrentProxy(proxy);<br /> </span><span style="color: #008080;"> 63</span> <span style="color: #000000;">                setProxyContext </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 64</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;"> 65</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 66</span> <span style="color: #000000;">            </span><span style="color: #008000;">//</span><span style="color: #008000;"> May be null. Get as late as possible to minimize the time we "own" the target,<br /> </span><span style="color: #008080;"> 67</span> <span style="color: #008000;">            </span><span style="color: #008000;">//</span><span style="color: #008000;"> in case it comes from a pool.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 68</span> <span style="color: #000000;">            target </span><span style="color: #000000;">=</span><span style="color: #000000;"> targetSource.getTarget();<br /> </span><span style="color: #008080;"> 69</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (target </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">) {<br /> </span><span style="color: #008080;"> 70</span> <span style="color: #000000;">                targetClass </span><span style="color: #000000;">=</span><span style="color: #000000;"> target.getClass();<br /> </span><span style="color: #008080;"> 71</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;"> 72</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 73</span> <span style="color: #000000;">            </span><span style="color: #008000;">//</span><span style="color: #008000;"> Get the interception chain for this method.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 74</span> <span style="color: #000000;">            List</span><span style="color: #000000;"><</span><span style="color: #000000;">Object</span><span style="color: #000000;">></span><span style="color: #000000;"> chain </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.advised.getInterceptorsAndDynamicInterceptionAdvice(method, targetClass);<br /> </span><span style="color: #008080;"> 75</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 76</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (chain.isEmpty()) {<br /> </span><span style="color: #008080;"> 77</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> 濡傛灉鎷︽埅閾炬槸絀虹殑錛岀洿鎺ラ氳繃鍙嶅皠璋冪敤target瀵硅薄鐨勬柟娉?br /> </span><span style="color: #008080;"> 78</span> <span style="color: #008000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> method.invoke(target, args);</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 79</span> <span style="color: #000000;">                retVal </span><span style="color: #000000;">=</span><span style="color: #000000;"> AopUtils.invokeJoinpointUsingReflection(target, method, args);<br /> </span><span style="color: #008080;"> 80</span> <span style="color: #000000;">            }</span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {<br /> </span><span style="color: #008080;"> 81</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> 濡傛灉鎷︽埅閾句笉涓虹┖錛屽寘瑁呬竴涓弽灝勬柟娉曡皟鐢?br /> </span><span style="color: #008080;"> 82</span> <span style="color: #008000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鍏堣皟鐢ㄧ粐鍏ョ殑鎷︽埅鍣紝鏈鍚庝粛鐒舵槸鍙嶅皠璋冪敤target瀵硅薄鐨勬柟娉?/span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 83</span> <span style="color: #000000;">                invocation </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> ReflectiveMethodInvocation(proxy, target, method, args, targetClass, chain);<br /> </span><span style="color: #008080;"> 84</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> Proceed to the joinpoint through the interceptor chain.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 85</span> <span style="color: #000000;">                retVal </span><span style="color: #000000;">=</span><span style="color: #000000;"> invocation.proceed();<br /> </span><span style="color: #008080;"> 86</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;"> 87</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 88</span> <span style="color: #000000;">            </span><span style="color: #008000;">//</span><span style="color: #008000;"> Massage return value if necessary.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 89</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (retVal </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;"> </span><span style="color: #000000;">&&</span><span style="color: #000000;"> retVal </span><span style="color: #000000;">==</span><span style="color: #000000;"> target </span><span style="color: #000000;">&&</span><span style="color: #000000;"> method.getReturnType().isInstance(proxy) </span><span style="color: #000000;">&&</span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 90</span> <span style="color: #000000;">                    </span><span style="color: #000000;">!</span><span style="color: #000000;">RawTargetAccess.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">.isAssignableFrom(method.getDeclaringClass())) {<br /> </span><span style="color: #008080;"> 91</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> Special case: it returned "this" and the return type of the method<br /> </span><span style="color: #008080;"> 92</span> <span style="color: #008000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> is type-compatible. Note that we can't help if the target sets<br /> </span><span style="color: #008080;"> 93</span> <span style="color: #008000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> a reference to itself in another returned object.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 94</span> <span style="color: #000000;">                retVal </span><span style="color: #000000;">=</span><span style="color: #000000;"> proxy;<br /> </span><span style="color: #008080;"> 95</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;"> 96</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> retVal;<br /> </span><span style="color: #008080;"> 97</span> <span style="color: #000000;">        }<br /> </span><span style="color: #008080;"> 98</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">finally</span><span style="color: #000000;"> {<br /> </span><span style="color: #008080;"> 99</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (target </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;"> </span><span style="color: #000000;">&&</span><span style="color: #000000;"> </span><span style="color: #000000;">!</span><span style="color: #000000;">targetSource.isStatic()) {<br /> </span><span style="color: #008080;">100</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> Must have come from TargetSource.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;">101</span> <span style="color: #000000;">                targetSource.releaseTarget(target);<br /> </span><span style="color: #008080;">102</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;">103</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (setProxyContext) {<br /> </span><span style="color: #008080;">104</span> <span style="color: #000000;">                </span><span style="color: #008000;">//</span><span style="color: #008000;"> Restore old proxy.</span><span style="color: #008000;"><br /> </span><span style="color: #008080;">105</span> <span style="color: #000000;">                AopContext.setCurrentProxy(oldProxy);<br /> </span><span style="color: #008080;">106</span> <span style="color: #000000;">            }<br /> </span><span style="color: #008080;">107</span> <span style="color: #000000;">        }<br /> </span><span style="color: #008080;">108</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">109</span> <span style="color: #000000;">}<br /> </span><span style="color: #008080;">110</span> </div> <br /> <br /> <br /> <img src ="http://www.tkk7.com/liuxiaosan/aggbug/347552.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/liuxiaosan/" target="_blank">liucs</a> 2011-04-06 10:58 <a href="http://www.tkk7.com/liuxiaosan/articles/347552.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java 鍙嶅皠http://www.tkk7.com/liuxiaosan/articles/347387.htmlliucsliucsThu, 31 Mar 2011 06:06:00 GMThttp://www.tkk7.com/liuxiaosan/articles/347387.htmlhttp://www.tkk7.com/liuxiaosan/comments/347387.htmlhttp://www.tkk7.com/liuxiaosan/articles/347387.html#Feedback0http://www.tkk7.com/liuxiaosan/comments/commentRss/347387.htmlhttp://www.tkk7.com/liuxiaosan/services/trackbacks/347387.html鍐呯渷鏈哄埗錛屽府鍔╃▼搴忓湪榪愯鏃?/strong>瀵硅嚜韜強杞歡鐜榪涜媯鏌ワ紝騫舵牴鎹鏌ュ緱鍒扮殑紼嬪簭緇撴瀯錛屾敼鍙樿嚜韜殑閮ㄥ垎琛屼負銆?

鏍稿績綾諱負 java.lang.Class 綾伙紝鎶借薄浜嗙▼搴忕殑鍏冩暟鎹紝姣忎竴涓被鐨勫厓鏁版嵁灝辨槸涓涓狢lass瀵硅薄瀹炰緥銆傝繖涓狢lass瀹炰緥鏄竴涓潤鎬佸疄渚嬶紝瀵瑰簲綾葷殑姣忎竴涓疄渚嬮兘浼氬叧鑱旇繖涓潤鎬佸疄渚嬨傞氳繃Class綾誨彲浠ユ煡璇㈣綾葷殑鏂規硶銆佸瓧孌點佹帴鍙c佹瀯閫犲櫒絳変竴緋誨垪淇℃伅銆傝瑙佷笅闈€?

瀵硅薄鍥炲幓鑷韓瀵瑰簲鐨凜lass瀹炰緥鏄氳繃緇ф壙鑷狾bject綾葷殑getClass()鏂規硶錛?
瀵逛簬鍩烘湰綾誨瀷錛屾瘡涓縐嶄篃鏈変竴涓悕涓篶lass鐨勯潤鎬佸疄渚嬶紝濡俰nt.class double.class boolean.class錛?
瀵逛簬鏁扮粍綾誨瀷錛屼篃鏈塐bject[].class, 娉ㄦ剰 int[][].class==int[].class


鍒ゆ柇瀵硅薄綾誨瀷鐨勬帴鍙o細
String getName() 鑾峰緱綾誨叏鍚?
Class getComponentType() 濡傛灉瀵硅薄鏄暟緇勶紝榪斿洖鏁版嵁涓厓绱犵殑綾葷被鍨?
boolean isArray()
boolean isInterface()
boolean isPrimitive()
boolean isAnnotation()

###########################################################################################################
鎺ュ彛
java.lang.Class涓畾涔夌殑媯鏌ユ帴鍙g殑鎺ュ彛錛?
Class[] getInterfaces()
Class getSuperClass() 鐩寸郴鐖剁被 錛屽浜嶰bject銆佹帴鍙c乿oid鍏抽敭瀛椼佸熀鏈被鍨嬶紝榪斿洖null
boolean isAssignableFrom(Class cls) 璇ョ被鏄弬鏁扮殑綾誨瀷鎴栧弬鏁扮殑鐖剁被鍨?
boolean isInstance(Object obj) 璇ョ被鏄弬鏁扮殑瀹炰緥鎴栬呭弬鏁扮殑瀛愮被瀹炰緥

Class綾誨拰Object綾誨瓨鍦ㄦ瘮杈冪籂緇撶殑鍏崇郴
Class.class.isIntance(Class.class) == true Class綾葷殑class瀹炰緥鏄疌lass鏈韓鐨勫疄渚?
Class.class.isInstance(Object.class) == true
Object.class.isAssignableFrom(Class.class) == true
Object.class.isIntance(Class.class) == true

###########################################################################################################
java.lang.reflect閮ㄥ垎綾誨浘


###########################################################################################################

java.lang.reflect.Constructor
java.lang.Class涓浉鍏蟲柟娉?

Constructor getConstructor(Class[] parameterTypes)
Constructor getDeclaredConstructor錛圕lass[]parameterTypes)
Constructor[] getConstructors()
Constructor[] getDeclaredConstructors()

java.lang.reflect.Constructor
Class getDeclaredClass()
Class[] getExceptionTypes()
int getModifiers()
String getName()
Class[] getParameterTypes()
Object newInstance(Object[] initArgs) 鍒涘緩瀹炰緥

瀵逛簬鏁扮粍錛屼嬌鐢?java.lang.reflect.Array.newInstance(String.class,5)褰㈠紡鍒涘緩瀹炰緥

###########################################################################################################

java.lang.reflect.Method

java.lang.Class綾諱腑瀹氫箟浜嗗涓嬫帴鍙f煡璇竴涓被鎵鍏鋒湁鐨勬柟娉曘?
Method getMethod(String name,Class[]parameterTypes)
Method[] getMethods()
涓婅堪2涓帴鍙f煡璇㈢戶鎵胯幏寰楀拰鑷韓澹版槑鐨勬柟娉?
Method getDeclaredMethod(String name,Class[]parameterTypes)
Method[] getDeclaredMethods()
涓婅堪2涓帴鍙f煡璇㈣嚜韜0鏄庣殑鏂規硶

java.lang.reflect.Method綾誨畾涔夌殑鏂規硶
Class getDeclaringClass() 澹版槑璇ユ柟娉曠殑綾誨疄渚?
Class[] getExceptionTypes() 鏂規硶鐨勫紓甯哥被鍨?
int getModifiers() 鏂規硶鐨勫彲瑙佹?
String getName() 鏂規硶鍚?
Class[] getParameterTypes() 鏂規硶鍙傛暟綾誨瀷
Class getReturnType() 鏂規硶榪斿洖綾誨瀷
Object invoke(Object obj,Object[]args) 鍙嶅皠璋冪敤涓涓璞′笂闈㈢殑璇ユ柟娉?

###########################################################################################################

java.lang.reflect.Field

java.lang.Class綾諱腑鍏充簬Field鐨勭浉鍏蟲柟娉曪細
Field getField(String name)
Field[] getFields()
Field getDeclaredField(String name)
Field[] getDeclaredFields()

java.lang.relect.Field涓富瑕佹柟娉?
Class getType() 榪斿洖瀛楁鐨凜lass
Class getDeclaringClass() 榪斿洖浠涔堣瀛楁鐨凜lass
String getName()
int getModifiers()
Object get(Object obj) 榪斿洖obj璇ュ瓧孌電殑鍊?
boolean getBoolean(Object obj)
void set(Object obj,Object value) 璁劇疆obj璇ュ瓧孌電殑鍊?
void setBoolean(Object obj,boolean value)

###########################################################################################################

java.lang.reflect.Modifier 瀛楁鎴栬呮柟娉曠殑璁塊棶鎬?
static boolean isPublic(int mod)
static boolean isPrivate(int mod)

鍏卞寘鎷互涓嬶細
public static native volatile protected transient
abstract synchronized strictfp private final


###########################################################################################################
鍔ㄦ佸姞杞?br />
Class cls = Class.forName(String className);
Object obj 
= cls.newInstance();

鍔ㄦ佸姞杞芥満鍒朵嬌寰楀彲浠ラ伩寮緙栬瘧鍣ㄧ被鑼冨洿鐨勯檺鍒訛紝甯歌鍦烘櫙鏄痡dbc椹卞姩銆傚姩鎬佸姞杞芥満鍒朵篃鏄氳繃ClassLoader瀹炵幇銆?br /> 閫氳繃鍔ㄦ佸姞杞芥満鍒剁殑綾誨悕騫朵笉鏄竴鑸剰涔夌殑綾誨悕錛岃屾槸錛?br /> 1銆佸熀鏈被鍨嬶紝棣栧瓧姣嶅ぇ鍐欙紝濡?int -> I
2銆佸紩鐢ㄧ被鍨嬶紝L+鍏ㄧ被鍚嶏紝濡?Ljava.lang.String
3銆佹暟緇勭被鍨嬶紝[+***錛?濡俒I,   [Ljava.lang.String  ,  [[I,  [[Ljava.lang.String

娉ㄦ剰錛氬熀鏈被鍨嬶紝涓嶈兘閫氳繃Class.forName錛堬級鍔犺澆,浼氭姏鍑哄紓甯?br />

liucs 2011-03-31 14:06 鍙戣〃璇勮
]]>
Java 鍙傛暟浼犻?/title><link>http://www.tkk7.com/liuxiaosan/articles/347384.html</link><dc:creator>liucs</dc:creator><author>liucs</author><pubDate>Thu, 31 Mar 2011 06:05:00 GMT</pubDate><guid>http://www.tkk7.com/liuxiaosan/articles/347384.html</guid><wfw:comment>http://www.tkk7.com/liuxiaosan/comments/347384.html</wfw:comment><comments>http://www.tkk7.com/liuxiaosan/articles/347384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/liuxiaosan/comments/commentRss/347384.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/liuxiaosan/services/trackbacks/347384.html</trackback:ping><description><![CDATA[Java鍦ㄦ柟娉曞弬鏁頒紶閫掓椂錛?br /> <br /> 1銆佸浜庡熀鏈被鍨嬶紝浼犻掑?br /> 2銆佸浜庡璞$被鍨嬶紝浼犻掑璞″紩鐢?br /> 闇瑕佹敞鎰忕殑鏄細瀵逛簬涓婅堪涓ょ浼犻掔被鍨嬶紝鍦ㄤ紶閫掓椂閮芥槸鎷瘋礉浼犻掞紝鍗沖間紶閫掓椂鎷瘋礉鍑轟竴涓柊鍊鹼紝寮曠敤<br /> 浼犻掓椂鎷瘋礉鍑轟竴涓柊鐨勬嫹璐濄?br /> <br /> 鏈夋椂鍊欎篃璇碕ava鍙湁鍊間紶閫掞紝鎰忔濇槸瀵逛簬寮曠敤綾誨瀷錛屼紶閫掑紩鐢ㄧ殑鍊箋備竴涓蹇碉紝涓嶇敤綰犵紶銆?br /> <br /> 鍦ㄥ唴瀛樹腑瀵硅薄綾誨瀷鍙互鐪嬪仛涓ゅ潡錛屼竴鍧楁槸瀵硅薄鐨勫紩鐢紝涓鍧楁槸鏁版嵁鍖恒傚紩鐢ㄥ潡閲岄潰淇濆瓨浜嗘暟鎹尯鐨勫湴鍧銆?br /> 鐪嬪涓嬬ず渚嬩唬鐮侊細<br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; 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: #008080;"> 1</span> <span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Test {<br /> </span><span style="color: #008080;"> 2</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;"> 3</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {<br /> </span><span style="color: #008080;"> 4</span> <span style="color: #000000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鍊間紶閫?/span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 5</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;"> 6</span> <span style="color: #000000;">        addInt1(i);<br /> </span><span style="color: #008080;"> 7</span> <span style="color: #000000;">        System.out.println(i);</span><span style="color: #008000;">//</span><span style="color: #008000;"> 杈撳嚭1</span><span style="color: #008000;"><br /> </span><span style="color: #008080;"> 8</span> <span style="color: #000000;">        addInt2(i);<br /> </span><span style="color: #008080;"> 9</span> <span style="color: #000000;">        System.out.println(i);</span><span style="color: #008000;">//</span><span style="color: #008000;"> 杈撳嚭1<br /> </span><span style="color: #008080;">10</span> <span style="color: #008000;"><br /> </span><span style="color: #008080;">11</span> <span style="color: #008000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;"> 寮曠敤浼犻掑疄渚?</span><span style="color: #008000;"><br /> </span><span style="color: #008080;">12</span> <span style="color: #000000;">        String str </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">123</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;">13</span> <span style="color: #000000;">        modifyStr1(str);<br /> </span><span style="color: #008080;">14</span> <span style="color: #000000;">        System.out.println(str);</span><span style="color: #008000;">//</span><span style="color: #008000;"> 杈撳嚭123<br /> </span><span style="color: #008080;">15</span> <span style="color: #008000;"><br /> </span><span style="color: #008080;">16</span> <span style="color: #008000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;"> 寮曠敤浼犻掑疄渚?</span><span style="color: #008000;"><br /> </span><span style="color: #008080;">17</span> <span style="color: #000000;">        StringBuilder stringBuilder </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> StringBuilder(</span><span style="color: #000000;">"</span><span style="color: #000000;">123</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /> </span><span style="color: #008080;">18</span> <span style="color: #000000;">        modifyStringBuilder(stringBuilder);<br /> </span><span style="color: #008080;">19</span> <span style="color: #000000;">        System.out.println(stringBuilder.toString());</span><span style="color: #008000;">//</span><span style="color: #008000;"> 杈撳嚭123456</span><span style="color: #008000;"><br /> </span><span style="color: #008080;">20</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">21</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">22</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鎷瘋礉浜嗘柊鐨勫鹼紝鍘熷間笉鍙?/span><span style="color: #008000;"><br /> </span><span style="color: #008080;">23</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> addInt1(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i) {<br /> </span><span style="color: #008080;">24</span> <span style="color: #000000;">        i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;">25</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">26</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">27</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鎷瘋礉浜嗘柊鐨勫鹼紝鍘熷間笉鍙?/span><span style="color: #008000;"><br /> </span><span style="color: #008080;">28</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> addInt2(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i) {<br /> </span><span style="color: #008080;">29</span> <span style="color: #000000;">        i</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;">30</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">31</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">32</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鏂扮殑鎷瘋礉寮曠敤鎸囧悜浜嗕竴鍧楁柊鏁版嵁鍖猴紝鍘熸嫹璐濅粛鐒舵寚鍚戝師鏁版嵁鍖?/span><span style="color: #008000;"><br /> </span><span style="color: #008080;">33</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> modifyStr1(String str) {<br /> </span><span style="color: #008080;">34</span> <span style="color: #000000;">        str </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">456</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /> </span><span style="color: #008080;">35</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">36</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">37</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 鏂扮殑鎷瘋礉寮曠敤浠嶇劧鎸囧悜鍘熸暟鎹尯錛屼絾淇敼浜嗗師鏁版嵁鍖虹殑鍐呭</span><span style="color: #008000;"><br /> </span><span style="color: #008080;">38</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> modifyStringBuilder(StringBuilder str) {<br /> </span><span style="color: #008080;">39</span> <span style="color: #000000;">        str.append(</span><span style="color: #000000;">"</span><span style="color: #000000;">456</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /> </span><span style="color: #008080;">40</span> <span style="color: #000000;">    }<br /> </span><span style="color: #008080;">41</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">42</span> <span style="color: #000000;">}</span></div> <br /> <img src ="http://www.tkk7.com/liuxiaosan/aggbug/347384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/liuxiaosan/" target="_blank">liucs</a> 2011-03-31 14:05 <a href="http://www.tkk7.com/liuxiaosan/articles/347384.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://lcqkp.com" target="_blank">国产午夜亚洲精品国产</a>| <a href="http://baizhengsh.com" target="_blank">久久久久亚洲精品美女</a>| <a href="http://saohu533.com" target="_blank">国产成人精品日本亚洲18图</a>| <a href="http://dnf1000.com" target="_blank">国产成人亚洲综合</a>| <a href="http://yese889.com" target="_blank">亚洲天堂一区二区三区</a>| <a href="http://yu388.com" target="_blank">人与禽交免费网站视频</a>| <a href="http://www769393.com" target="_blank">亚洲AV无码之日韩精品</a>| <a href="http://777mecom.com" target="_blank">国产亚洲精品成人久久网站 </a>| <a href="http://17soco.com" target="_blank">18禁亚洲深夜福利人口</a>| <a href="http://jinmenonline.com" target="_blank">日美韩电影免费看</a>| <a href="http://pjwys.com" target="_blank">国产精品亚洲色婷婷99久久精品</a>| <a href="http://wwwy6x22.com" target="_blank">高清在线亚洲精品国产二区</a>| <a href="http://wwwjjz.com" target="_blank">国产伦精品一区二区免费</a>| <a href="http://jipiao020.com" target="_blank">成人性生交大片免费看无遮挡</a>| <a href="http://1877808.com" target="_blank">亚洲videos</a>| <a href="http://hezuoedu.com" target="_blank">国产又黄又爽又猛的免费视频播放</a>| <a href="http://hnmeiankj.com" target="_blank">亚洲va在线va天堂va四虎 </a>| <a href="http://wwwy66y6.com" target="_blank">日韩免费一区二区三区在线 </a>| <a href="http://44168888.com" target="_blank">久久国产亚洲精品无码</a>| <a href="http://wwwav800.com" target="_blank">久久九九兔免费精品6</a>| <a href="http://paweax.com" target="_blank">久久精品国产亚洲av麻豆图片 </a>| <a href="http://mabaolu.com" target="_blank">久久久亚洲精品无码</a>| <a href="http://mabaolu.com" target="_blank">67pao强力打造高清免费</a>| <a href="http://mabaolu.com" target="_blank">亚洲热妇无码AV在线播放</a>| <a href="http://3atv3523.com" target="_blank">国产亚洲精品美女久久久久 </a>| <a href="http://cnkaiertong.com" target="_blank">日韩视频免费一区二区三区</a>| <a href="http://kyqp0033.com" target="_blank">看全免费的一级毛片</a>| <a href="http://by23336.com" target="_blank">亚洲国产精品福利片在线观看</a>| <a href="http://pyjxyey.com" target="_blank">一级成人a毛片免费播放</a>| <a href="http://1877808.com" target="_blank">亚洲看片无码在线视频</a>| <a href="http://276194.com" target="_blank">亚洲精品网站在线观看不卡无广告</a>| <a href="http://1877808.com" target="_blank">亚洲精品无码aⅴ中文字幕蜜桃</a>| <a href="http://3bmmatv.com" target="_blank">青青青国产在线观看免费网站</a>| <a href="http://wcnmgb.com" target="_blank">亚洲Av永久无码精品一区二区</a>| <a href="http://bjymt.com" target="_blank">国产亚洲精品a在线观看</a>| <a href="http://18jko.com" target="_blank">84pao国产成视频免费播放</a>| <a href="http://857434.com" target="_blank">亚洲成a人无码亚洲成av无码</a>| <a href="http://600c81.com" target="_blank">一级毛片视频免费</a>| <a href="http://www-533999.com" target="_blank">亚洲欧洲日产专区</a>| <a href="http://horticartf.com" target="_blank">国产成人高清精品免费软件</a>| <a href="http://by3142.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>