亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? java編程 的動態性,第 2部分:引入反射.htm

?? javn的Java書籍JAVA集合框架.rar我看過了是很有幫助的
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
        return timing.m_value;
    } catch (Exception ex) {
        System.out.println("Error using reflection");
        throw ex;
    }
}
</CODE></PRE></TD></TR></TBODY></TABLE>
      <P>測試程序重復調用每種方法,使用一個大循環數,從而平均多次調用的時間衡量結果。平均值中不包括每種方法第一次調用的時間,因此初始化時間不是結果中的一個因素。在為本文進行的測試中, 
      每次調用時我使用1000萬的循環數,在1GHz PIIIm系統上運行。三個不同Linux 
      JVM的計時結果如圖1所示。所有測試使用每個JVM的缺省設置。</P>
      <P><A name=IDAT1MQD><B>圖 1:字段接入時間 </B></A><BR><IMG 
      alt="Field access times" height=238 
      src="Java編程 的動態性,第 2部分:引入反射.files/field-accesses.jpg" width=538></P>
      <P>上表的對數尺度可以顯示所有時間,但減少了差異看得見的影響。在前兩副圖中(Sun 
      JVM),使用反射的執行時間超過使用直接接入的1000倍以上。通過比較,IBM 
      JVM可能稍好一些,但反射方法仍舊需要比其它方法長700倍以上的時間。任何JVM上其它兩種方法之間時間方面無任何顯著差異,但IBM 
      JVM幾乎比Sun JVM快一倍。最有可能的是這種差異反映了Sun Hot Spot JVM的專業優化,它在簡單基準方面表現得很糟糕。</P>
      <P>除了字段接入時間測試之外,我還進行了相同的方法調用時間測試。在方法調用中,我試用了與字段接入相同的三種接入變量,并增加了使用無參數方法變量,而不是在方法調用中傳遞和返回一個值。清單8顯示了用于測試調用傳遞和返回值形式的三種方法的代碼。</P><A 
      name=IDAB2MQD><B>清單 8:方法接入性能測試代碼</B></A><BR>
      <TABLE bgColor=#cccccc border=1 cellPadding=5 cellSpacing=0 
        width="100%"><TBODY>
        <TR>
          <TD><PRE><CODE>
public int callDirectArgs(int loops) {
    int value = 0;
    for (int index = 0; index &lt; loops; index++) {
        value = step(value);
    }
    return value;
}

public int callReferenceArgs(int loops) {
    TimingClass timing = new TimingClass();
    int value = 0;
    for (int index = 0; index &lt; loops; index++) {
        value = timing.step(value);
    }
    return value;
}

public int callReflectArgs(int loops) throws Exception {
    TimingClass timing = new TimingClass();
    try {
        Method method = TimingClass.class.getMethod
            ("step", new Class [] { int.class });
        Object[] args = new Object[1];
        Object value = new Integer(0);
        for (int index = 0; index &lt; loops; index++) {
            args[0] = value;
            value = method.invoke(timing, args);
        }
        return ((Integer)value).intValue();
    } catch (Exception ex) {
        System.out.println("Error using reflection");
        throw ex;
    }
}
</CODE></PRE></TD></TR></TBODY></TABLE>
      <P>圖 2顯示了我從方法調用中獲得的計時結果。反射遠慢于直接接入。差異不象字段接入那么大,但是,在不使用參數的情況下,范圍從Sun 1.3.1 
      JVM的數百倍到IBM 
      JVM的不到30倍。在所有JVM上,使用參數的反射方法調用的測試性能慢于不使用參數的調用。由于傳遞和返回<CODE>int</CODE>值需要的<CODE>java.lang.Integer</CODE>封裝,這可能是局部的。由于<CODE>Integer</CODE>s是不可變的,每種方法返回提出了一種新的需求,它將增加大量的開銷。</P>
      <P><A name=IDA02MQD><B>圖 2:方法調用時間</B></A><BR><IMG alt="Method call times" 
      height=372 src="Java編程 的動態性,第 2部分:引入反射.files/method-calls.jpg" 
      width=561></P>
      <P>反射性能是Sun開發1.4 JVM時關注的一個方面,它在反射方法調用結果中顯示。在這類操作的性能方面,Sun 1.4.1 
      JVM顯示了比1.3.1版本很大的改進,在我的測試中運行速度大約是1.3.1版本的開部。在這類簡單的測試中,IBM 1.4.0 
      JVM再次獲得了更好的成績,但是只比Sun 1.4.1 JVM快兩到三倍。</P>
      <P>我還為創建使用反射的對象編寫了類似的計時測試程序,但這種情況下的差異不象字段和方法調用情況下那么顯著。使用<CODE>newInstance()</CODE>調用創建一個簡單的<CODE>java.lang.Object</CODE>實例耗用的時間大約是在Sun 
      1.3.1 JVM上使用<CODE>new Object()</CODE>的12倍,是在IBM 1.4.0 JVM的四倍,只是Sun 1.4.1 
      JVM上的兩部。使用<CODE>Array.newInstance(type, 
      size)</CODE>創建一個數組耗用的時間是任何測試的JVM上使用<CODE>new 
      type[size]</CODE>的兩倍,隨著數組大小的增加,差異逐步縮小。</P>
      <P><A name=IDA33MQD><SPAN 
      class=atitle2>結束語</SPAN></A><BR>Java語言反射提供一種動態鏈接程序組件的多功能方法。它允許程序創建和控制任何類的對象(根據安全性限制),無需提前硬編碼目標類。這些特性使得反射特別適用于創建以非常普通的方式與對象協作的庫。例如,反射經常在持續存儲對象為數據庫、XML或其它外部格式的框架中使用。</P>
      <P>反射有兩個缺點。第一個是性能問題。當用于字段和方法接入時反射要遠慢于直接代碼。性能問題的程度取決于程序中是如何使用反射的。如果它作為程序運行中相對很少涉及的部分,緩慢的性能將不會是一個問題。即使測試中最壞情況下的計時圖顯示的反射操作只耗用幾微秒。僅反射在性能關鍵的應用的核心邏輯中使用時性能問題才變得至關重要。</P>
      <P>許多應用更嚴重的一個缺點是使用反射會模糊程序內部實際要發生的事情。程序人員希望在源代碼中看到程序的邏輯,反射等繞過了源代碼的技術會帶來維護問題。反射代碼比相應的直接代碼更復雜,正如性能比較的代碼實例中看到的一樣。解決這些問題的最佳方案是保守地使用反射-- 
      僅在它可以真正增加靈活性的地方 -- 記錄其在目標類中的使用。</P>
      <P>在下一部分,我將提供如何使用反射的更詳細實例。這種實例提供一個處理Java應用命令行參數的API,一種您可能發現適用于自己應用的工具。它還基于反射的優勢來創建,同時避免其弱點。反射是否能簡化您的命令行處理?您可以在<I>Java編程的動態性</I>第3部分找到答案。</P><!-- RESOURCES-->
      <P><A name=resources><SPAN class=atitle2>參考資料</SPAN></A> 
      <UL><!-- Comment out list item below if there is no forum for this article-->
        <LI>下載本文中使用的<A 
        href="ftp://www6.software.ibm.com/software/developer/library/j-dyn0603.zip">performance 
        benchmarks programs</A>。<BR><BR>
        <LI>閱讀“<A 
        href="http://www-106.ibm.com/developerworks/java/library/j-reflection.html">Reflection: 
        A new way to discover information about Java classes</A>” 
        (<I>developerWorks</I>, 1998年5月),了解過去關于Java反射的增長功能的看法。<BR><BR>
        <LI>反射在與JavaBeans組件協作中扮演了一個極其重要的角色。閱讀“<A 
        href="http://www-106.ibm.com/developerworks/java/library/j-introspect/">Reflecting, 
        introspecting, and customizing JavaBeans</A>”(<I>developerWorks</I>, 
        2000年2月)了解所有相關信息。<BR><BR>
        <LI>反射的大范圍使用會影響框架的性能。關于圖形實例及一些相關討論,請參閱作者的XML數據捆綁文章“<A 
        href="http://www-900.ibm.com/developerWorks/cn/xml/x-databdopt/part2/index.shtml">\數據幫定, 
        第二部分: 性能</A>”(<I>developerWorks</I>,2003年1月)和“<A 
        href="http://www-900.ibm.com/developerWorks/cn/xml/x-databd3/index.shtml">數據綁定,第 
        3 部分:JiBX 體系結構</A>”(<I>developerWorks</I>,2003年4月)。<BR><BR>
        <LI>關于使用反射的高級教程,請閱讀Sun提供的Java教程中的<A 
        href="http://java.sun.com/docs/books/tutorial/reflect/index.html">The 
        Reflection API</A>。<BR><BR>
        <LI>在<A 
        href="http://www-900.ibm.com/developerWorks/cn/java/index.shtml"><I>developerWorks</I> 
        Java技術專區</A>中可以找到數百篇關于Java技術的文章。<BR><BR></LI></UL>
      <P></P><!-- AUTHOR BIOS--><!-- Make author heading singular or plural as needed-->
      <TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
        <TBODY>
        <TR>
          <TD><A name=author1><SPAN class=atitle2>關于作者</SPAN></A> <BR><IMG 
            align=left alt="Photo of Dennis Sosnoski" border=0 height=80 
            src="Java編程 的動態性,第 2部分:引入反射.files/p-sosnoski.jpg" width=64>Dennis 
            Sosnoski 是西雅圖地區 Java 咨詢公司 <A href="http://www.sosnoski.com/" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sosnoski 
            Software Solutions, Inc.</A> 的創始人和首席顧問,他是 J2EE、XML 和 Web 
            服務支持方面的專家。他已經有 30 多年專業軟件開發經驗,最近幾年他集中研究服務器端的 Java 技術。Dennis 
            經常在全國性的會議上就 XML 和 Java 技術發表演講,他還是 <A 
            href="http://www.sosnoski.com/jxml" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Seattle 
            Java-XML SIG</A> 的主席。可以通過 <A href="mailto:dms@sosnoski.com" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">dms@sosnoski.com</A> 
            與 Dennis 聯系。 </TD></TR></TBODY></TABLE></TD>
    <TD width=10><IMG alt="" border=0 height=1 
      src="Java編程 的動態性,第 2部分:引入反射.files/c.gif" width=10></TD></TR></TBODY></TABLE><!-- END PAPER BODY--><BR clear=all><IMG 
alt="" border=0 height=10 src="Java編程 的動態性,第 2部分:引入反射.files/c.gif" 
width=100><BR>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
  <TBODY>
  <TR>
    <TD align=right width="100%"><A 
      href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0603/#top">到頁首</A></TD>
    <TD width=5><IMG alt="" border=0 height=1 
      src="Java編程 的動態性,第 2部分:引入反射.files/c.gif" width=5></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#000000 colSpan=2><IMG alt="" border=0 height=1 
      src="Java編程 的動態性,第 2部分:引入反射.files/c.gif" width=100></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#ffffff colSpan=2><IMG alt="" border=0 height=8 
      src="Java編程 的動態性,第 2部分:引入反射.files/c.gif" width=100></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=10 cellSpacing=0 width="100%">
  <TBODY>
  <TR vAlign=top>
    <TD>
      <FORM action=/developerWorks/cn/cnratings.nsf/RateArticle?CreateDocument 
      method=post name=getURL><INPUT name=ArticleTitle type=hidden 
      value="Java編程 的動態性,第 2部分:引入反射"> <INPUT name=url type=hidden>
      <SCRIPT language=javascript>getURL();</SCRIPT>
       <INPUT name=Zone type=hidden value=Java> <INPUT name=RedirectURL 
      type=hidden value=/developerWorks/cn/thankyou/feedback-java.html> <A 
      name=rating><B>您對這篇文章的看法如何?</B></A> 
      <TABLE border=0 cellPadding=0 cellSpacing=0 width=600>
        <TBODY>
        <TR>
          <TD colSpan=5><IMG alt="" border=0 height=8 
            src="Java編程 的動態性,第 2部分:引入反射.files/c.gif" width=100></TD></TR>
        <TR vAlign=top>
          <TD width="16%"><INPUT name=Rating type=radio value=5>真棒!(5)</TD>
          <TD width="20%"><INPUT name=Rating type=radio value=4>好材料 (4)</TD>
          <TD width="24%"><INPUT name=Rating type=radio value=3>一般;尚可 (3)</TD>
          <TD width="22%"><INPUT name=Rating type=radio value=2>需提高 (2)</TD>
          <TD width="18%"><INPUT name=Rating type=radio value=1>太差! 
        (1)</TD></TR></TBODY></TABLE><BR><B>建議?</B><BR><TEXTAREA cols=60 name=Comments rows=5 wrap=virtual></TEXTAREA><BR><BR><INPUT type=submit value=提交反饋意見></FORM></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#ffffff><IMG alt="" border=0 height=8 
      src="Java編程 的動態性,第 2部分:引入反射.files/c.gif" width=100></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
  <TBODY>
  <TR>
    <TD align=right>(c) Copyright IBM Corp. 2001, (c) Copyright IBM China 
      2001, All Right Reserved</TD></TR>
  <TR vAlign=top>
    <TD class=bbg height=21>&nbsp;&nbsp;<A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/index.shtml&amp;origin=dwhead">關于 
      IBM</A><SPAN class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A 
      class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/privacy/index.shtml&amp;origin=dwhead">隱私條約</A><SPAN 
      class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/legal/index.shtml&amp;origin=dwhead">使用條款</A><SPAN 
      class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/contact/index.shtml&amp;origin=dwhead">聯系 
      IBM</A></TD></TR></TBODY></TABLE>
<SCRIPT language=JavaScript1.2 src="Java編程 的動態性,第 2部分:引入反射.files/stats.js" 
type=text/javascript></SCRIPT>
<NOSCRIPT><IMG alt="" border=0 height=1 
src="D:\prePrj\ref\Java編程 的動態性,第 2部分:引入反射.files\c(1).gif" width=1></NOSCRIPT> 
</A></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆国产精品一区二区三区| 亚洲老妇xxxxxx| 日韩欧美一二三四区| 欧美精品1区2区3区| 99久久久国产精品免费蜜臀| 国产美女视频一区| 成人理论电影网| 91免费版在线| 在线观看国产日韩| 欧美色成人综合| 日韩一级黄色片| 成人黄色软件下载| 国产69精品久久久久毛片| 国产成+人+日韩+欧美+亚洲| 国产欧美视频一区二区三区| 色呦呦一区二区三区| 欧美中文字幕不卡| 欧美mv日韩mv国产网站| 亚洲精品一区二区三区蜜桃下载| 久久亚洲欧美国产精品乐播 | 波多野结衣在线一区| 国产精品一区二区久激情瑜伽| 99久久99久久久精品齐齐| 欧美一区二区三区婷婷月色| 久久精品一区蜜桃臀影院| 国产精品久久久久久久久图文区 | 国产精品18久久久久久vr| 日本乱码高清不卡字幕| 欧美一区二区精品久久911| 国产色产综合产在线视频 | 99久久免费视频.com| 91网站黄www| 国产午夜精品久久| 热久久国产精品| 一本色道久久综合亚洲aⅴ蜜桃| 制服丝袜中文字幕一区| 欧美国产成人精品| 日本三级亚洲精品| 欧美专区在线观看一区| 国产欧美精品国产国产专区| 蜜桃一区二区三区四区| 国产精品66部| 欧美成人伊人久久综合网| 一区二区三区精品视频| 日本道精品一区二区三区 | 丝袜美腿亚洲综合| 不卡一区二区三区四区| 欧美va日韩va| 免费高清在线一区| 欧美变态口味重另类| 日日夜夜免费精品| 精品国产亚洲在线| 日本中文字幕一区二区视频| 欧美日韩在线直播| 亚洲高清久久久| 日韩欧美一区二区不卡| 美腿丝袜亚洲三区| 久久久久久久久久久99999| 午夜一区二区三区在线观看| 国产九色精品成人porny | 亚洲国产电影在线观看| 成人毛片在线观看| 激情综合网最新| 国产成人8x视频一区二区| 欧美日韩电影在线| 2023国产精品视频| 国产aⅴ综合色| 亚洲国产成人av| 久久久五月婷婷| 91看片淫黄大片一级在线观看| 亚洲夂夂婷婷色拍ww47| 精品久久久久一区二区国产| 成人久久18免费网站麻豆 | 亚洲精品在线免费观看视频| 国产精品一二三在| 婷婷久久综合九色国产成人| 久久婷婷综合激情| 欧美日韩专区在线| 99久久久久免费精品国产| 经典三级视频一区| 蜜桃av一区二区在线观看| 一区二区三区日韩在线观看| 欧美激情一区在线观看| 精品国产乱码久久| 精品日韩一区二区| 欧美一区二区视频在线观看2020 | 欧美精品一区二区三| 欧美日韩三级视频| 色婷婷狠狠综合| 色欧美片视频在线观看| 91免费版在线看| 欧美日韩免费观看一区三区| 97精品国产97久久久久久久久久久久| 奇米色一区二区三区四区| 亚洲与欧洲av电影| 男人的j进女人的j一区| 麻豆视频一区二区| 国产精品主播直播| 大美女一区二区三区| 不卡免费追剧大全电视剧网站| 国产精品自产自拍| 一本久道中文字幕精品亚洲嫩| 91久久奴性调教| 日韩一区二区三区在线| 欧美精品一区二区蜜臀亚洲| 久久久久综合网| 一区二区三区在线影院| 亚洲成人tv网| 国产99一区视频免费| 日本黄色一区二区| 久久色在线观看| 亚洲免费三区一区二区| 精品一区二区久久| 在线观看免费亚洲| 亚洲国产精品ⅴa在线观看| 亚洲国产精品麻豆| 99久久国产综合色|国产精品| 欧美日韩国产高清一区二区三区 | 精品国内片67194| 中文字幕一区二| 国产乱子伦一区二区三区国色天香 | 美洲天堂一区二卡三卡四卡视频 | 久久久久久久久久久久久久久99 | 欧美探花视频资源| 中文字幕不卡在线播放| 免费在线成人网| 欧美色倩网站大全免费| 国产精品乱码一区二区三区软件| 日韩国产成人精品| 欧美精品一二三区| 一区二区久久久久久| eeuss国产一区二区三区| 国产免费成人在线视频| 美女性感视频久久| 2023国产精品| 久久99精品久久久久久动态图| 欧美日韩一区二区三区四区五区| 亚洲综合免费观看高清完整版在线| 成人影视亚洲图片在线| 中文字幕免费不卡在线| 成人a级免费电影| 亚洲欧洲日产国码二区| 91猫先生在线| 日韩国产精品91| 日本一区二区三区在线观看| 91一区二区在线| 午夜电影网一区| 国产亚洲精久久久久久| 99免费精品视频| 亚洲电影一区二区三区| 51久久夜色精品国产麻豆| 极品少妇xxxx精品少妇偷拍| 中文字幕精品三区| 欧美色视频在线观看| 美洲天堂一区二卡三卡四卡视频| 久久综合久久综合亚洲| 91亚洲精品一区二区乱码| 日韩在线卡一卡二| 国产精品视频看| 欧美一区二区日韩| 色婷婷av一区二区三区软件| 欧美aaaaaa午夜精品| 亚洲女女做受ⅹxx高潮| 久久久久国产精品麻豆| 777亚洲妇女| 欧美三级韩国三级日本一级| 国产一区二区三区香蕉| 五月天中文字幕一区二区| 中文字幕中文字幕在线一区| 亚洲精品在线电影| 欧美日韩五月天| 欧洲一区在线观看| proumb性欧美在线观看| 国产一区在线视频| 国产一区二区三区免费| 亚洲不卡av一区二区三区| 91网站黄www| 国产麻豆成人传媒免费观看| 久久不见久久见免费视频1| 亚洲一区二区在线视频| 亚洲综合色视频| 一区二区国产视频| 亚洲福利一区二区三区| 亚洲韩国一区二区三区| 亚洲一区在线看| 性欧美大战久久久久久久久| 亚洲国产毛片aaaaa无费看| 一区二区三区产品免费精品久久75| 亚洲国产成人午夜在线一区| 中文字幕av一区二区三区免费看| 久久男人中文字幕资源站| 精品少妇一区二区三区视频免付费| 欧美日韩高清一区二区不卡| 欧美日韩激情一区二区| 欧美一卡二卡三卡| 久久精品亚洲一区二区三区浴池| 中文字幕久久午夜不卡| 亚洲午夜国产一区99re久久| 香蕉乱码成人久久天堂爱免费| 久久精品国产亚洲一区二区三区 |