<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-57  評論-129  文章-0  trackbacks-0
      2008年3月11日
    改寫了一下Java基類,添加了一個計數器。
    用tomcat測試了一下連續若干次請求時創建的對象個數。

    第【148259】個對象
    天哪,服務器啟動開始就是14萬個對象。

    第【148668】個對象
    第【149091】個對象
    第【149211】個對象
    第【149291】個對象
    第【149418】個對象
    第【149541】個對象
    第【149867】個對象
    第【149947】個對象

    回想一下以前人們為丑陋的struts1的單例Action的設計的辯護,真是可笑之極,哈哈哈哈
    posted @ 2008-03-11 11:35 金大為 閱讀(931) | 評論 (4)編輯 收藏
      2007年12月1日

    無意間看到的一片趣文:

    希望有一天能看到文言文版的國外圖書翻譯,真的比較有趣,還有,不懂的時候,也可以順帶看看英文原文,也好順便學學英語,呵呵。

    引:

    Thus spake the master programmer:

    "When you have learned to snatch the error code from the trap frame, it will be time for you to leave."

    師曰:『惑中取錯之日,可出山矣。』

    …..

    全文見:

    http://livecn.huasing.org/tao_of_programming.htm
    posted @ 2007-12-01 15:27 金大為 閱讀(259) | 評論 (0)編輯 收藏
      2007年11月29日
    我一直都想搞一個XML的模板引擎,大凡非xml的模板風格,第一感覺就是那么的不爽。
    可是CommonTemplate例外。

    CommonTemplate處處為程序員考慮周到的漂亮的語法風格,確實非常誘人。
    具體的語法我就不一一列舉了,大家可以到他的官方網站去翻閱。

    挑幾個亮點介紹一下:
    1. for循環的空處理,相信曾經麻煩了不少程序員吧。

      現在好了,CT支持如下語法:
         $for{}
         <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
         </tr>
         $forelse
         <tr>
            <td colspan="3">沒有數據</td>
         </tr>
         $end

    2. 大膽的關鍵字利用。


      <html>
          
      <body>
              $if{users != null && users.size > 0}
              
      <table border="1">
                  $for{user : users}
                  
      <tr>
                      
      <td>${for.index + 1}</td>
                      
      <td>${user.name}</td>
                      
      <td>${user.coins}</td>
                  
      </tr>
                  $end
              
      </table>
              $end
          
      </body>
      </html>


      大家看這段代碼。一般來說,for這種常用關鍵字是不好用作id的,但是這里作為默認的循環狀態對象的id。既解決了塊對象存放的問題,又不會引起其他命名的沖突。一個字,妙!!!!

    3. 其他漂亮的特征:


      注釋版語法外套,方便于測試數據填充及可視化編輯。
      單一的語法規則,方便解析與擴展。

      等等。。。。


    好了,贊嘆之余還是給出一點點遺憾:

    boolean 運算有點丑陋。
    我個人更期望 js的boolean運算風格,沒有必要一碰到boolean 運算就返回true ? false
    我們完全可以返回一個更有意義的值,比如,我更期望這個語句能如我所愿的執行。
     
    ${ variable|| "默認值"}

    當能,如上支持,CT是有的,它的寫法是
     
    ${ variable | "默認值"}

    但是,我感覺,這個語法就有點復雜了,也不那么直觀。
    一般來說| 是按位取或,是位運算符,這里這個用法,跳躍的確實有點大,較難接受的。
    posted @ 2007-11-29 21:28 金大為 閱讀(1429) | 評論 (5)編輯 收藏
      2007年11月10日
    剛剛經歷的一點小技巧,共享一下。

    1。給代理函數加上空判斷

    一個組合模式的運用。代碼如下:
    class Composite impliments IF1,IF2,IF3{
       
    private IF1 if1;
       
    private IF2 if2;
       
    private IF2 if2;
       
    public Composite (if1,if2,if3){
       }
    }

    eclipse 生成指代方法>>>>

    class Composite impliments IF1,IF2,IF3{
       
    private IF1 if1;
       
    private IF2 if2;
       
    private IF2 if2;
       
    public Composite (if1,if2,if3){
       }
       
    public void method1(){
          if1.method1();
       }
       .
    }

    //正則表達式
    // (\w+method\d)(\..*) if($1!=null){$0}
    //>>>
    class Composite impliments IF1,IF2,IF3{
       
    private IF1 if1;
       
    private IF2 if2;
       
    private IF2 if2;
       
    public Composite (if1,if2,if3){
       }
       
    public void method1(){
          
    if(if1= null){
             if1.method1();
          }
       }
       .
    }

    //還有一個構造函數里的屬性賦值:
    // (\w+)       this.$1=$1

    結果,略

    觸類旁通,更多新的用法待你去發掘^_^
    posted @ 2007-11-10 18:17 金大為 閱讀(958) | 評論 (3)編輯 收藏
      2007年10月18日
    被一個貌似hsqldb bug的問題折磨了好幾個小時。
    把經過帖出來,大家幫我看看。

    習慣把hql都寫成預定義的形式,同時又為了避免過多的hql定義,我的慣用伎倆:通過如下方式定義hql。

     from Message
      
    where packageKey=:packageKey
       
    and ( null =  :fileKey or fileKey = :fileKey)
       
    and ( null = :objectKey or objectKey= :objectKey)
       
    and ( null = :memberKeys or memberKey in ( :memberKeys)) 


    但是。今天在hqldb上測試時發現,在任何情況下 (null = ?)  都為真!!!
    非常奇怪,害我調試了老半天,后來把數據庫換成了mysql,ok!!

    非常奇怪啊。
    不過,上面的寫法(null =  :fileKey)也有點怪怪的。
    posted @ 2007-10-18 22:31 金大為 閱讀(794) | 評論 (2)編輯 收藏
      2007年10月14日
         摘要: 剛剛學習了一下網頁動畫中上的緩動效果,分享一下學習心得。 緩動曲線的概念: 緩動曲線是一個0為起點的連續函數曲線,x軸表示時間變化,y軸表示位移變化。曲線的斜率反映出運動的數度。 緩動效果在Flash動畫中比較常見,用于模擬一些現實中常見的運動軌跡,或者制造一些超絢的效果。 而且新版本的Flash中,內置了一些常用的緩動曲線函數。 可惜,Flash的這些曲線函數不是開源的...  閱讀全文
    posted @ 2007-10-14 21:14 金大為 閱讀(1227) | 評論 (0)編輯 收藏
      2007年9月29日
    目前為止,JSA依然是最強大的腳本壓縮工具。
    As i know,JSA is the most powerfull compressor for javascript.

    for jquery1.2.1 (80,469 byte;)

     Compressor  beforegzip  aftergzip
      source:  80,469;  24,975;
     jquery default:  46,437;  14,641;
     yuicomressor  46,210;  14,452;
      JSA(without eval)  40,704;  13,604;
      JSA(with eval):
     26,157;   
     13,549;
     

    JSA(webstart): http://www.xidea.org/webstart/JSA.jnlp
    posted @ 2007-09-29 14:04 金大為 閱讀(824) | 評論 (2)編輯 收藏
      2007年8月22日

    JSA這個壓縮工具,是java編寫的,需要安裝java運行環境。
    這多少給一些非jav程序員帶來點不便。

    現在我們發布servlet在線壓縮版本。無需安裝,在線壓縮,給非Java用戶一個更加便捷的使用方式。

    項目主頁:http://www.xidea.org/project/jsa/
    現在的在線壓縮服務器由Seaprince提供。
    歡迎更多有空閑服務器資源的朋友安裝JSA在線服務,我將在jsa項目主頁提供鏈接,方便大家使用。

    仍外,為了避免服務器資源被惡意濫用,我們默認啟用了圖片驗證,服務頻率限制等保護設置。
    給用戶帶來些不便,敬請諒解。


    posted @ 2007-08-22 16:28 金大為 閱讀(1015) | 評論 (5)編輯 收藏
      2007年8月12日

    今天無意間打開了一個CSDN上的個人blog,發現窗口無法拖動,Firefox的標簽頁也無法切換。

    查看代碼:

    <script type="text/javascript">Include("Csdn.Blog.UserOnline");</script>  
    <script type="text/javascript">Include("Csdn.Blog.ShowmeDataDeal");</script>

     

    看到Include函數,馬上可以想到,它很可能使用了動態包含腳本的設計。
    //http://blog.csdn.net/scripts/jsframework.js  
    window.Include=function(namespace, path)  
    {  
       ..  
    };  
    S.load
    =function(namespace, path)  
    {  
         
    }  

    仔細閱讀這兩個函數代碼,發現它是通過XMLHttpRequest對象同步裝載腳本資源的(對IE,它采用userdata緩存優化)。而這必將導致一種完全阻塞問題(這種問題我在仍外一篇blog上描述過:http://jindw.javaeye.com/blog/66702)。

    說到阻塞問題,我想大家可能會以為只是一種下載延遲,其實不然。
    下載延遲不是完全阻塞,瀏覽器依然可以響應用戶事件。而同步XHR請求阻塞是一種完全的阻塞。
    瀏覽器在腳本運行與事件響應共用同一個線程(我的猜測)。任何腳本尚在運行時(包括被同步XHR請求阻塞的時間),瀏覽器將無法響應任何用戶事件(無法拖放窗口、切換標簽、重畫頁面等等,就像程序死了一樣)。與普通的下載延遲造成的阻塞,感覺明顯不同。

    我對這個問題可以說深有體會,起初,在構建JSI1的項目站點時。因為網站放在sourceforge上,訪問數度不是一般的慢,幾個簡單的例子,瀏覽器就要完全阻塞好幾妙鐘。正是厭惡這種完全阻塞的現象,我才開發了JSI2。

    事實上,現在的一堆堆js框架中,采用XHR同步裝載資源的有不少,JSVM、dojo、a9engine、hax的pies;其中JSVM, dojo都提供打包工具,將可能裝載的腳本打包到啟動文件中,所以也可以避免XHR同步請求。不過這樣也就失去了部分動態裝載的意義了。

    總之,我非常討厭這種完全阻塞現象,認為這個嚴重影響用戶體驗。
    可能也有些主觀因素把,希望聽聽大家的看法。


    posted @ 2007-08-12 22:22 金大為 閱讀(781) | 評論 (0)編輯 收藏
      2007年7月30日
    最近看見一個JavaEye上關于Java基本類型編譯優化的帖子。
    貌似高深莫測,其實疑點重重。吧內容轉貼過來,希望在這里找到更合理的解釋。
    引用網上看得一些文章

     int a = 3;
     int b = 3;

      編譯器先處理int a = 3;首先它會在棧中創建一個變量為a的引用,然后查找有沒有字面值為3的地址,沒找到,就開辟一個存放3這個字面值的地址,然后將a指向3的地址。接著處 理int b = 3;在創建完b的引用變量后,由于在棧中已經有3這個字面值,便將b直接指向3的地址。這樣,就出現了a與b同時均指向3的情況。

    再令a=4;那么,b不會等于4,還是等于3。在編譯器內部,遇到a=4;時,它就會重新搜索棧中是否有4的字面值,如果沒有,重新開辟地址存放4的值;如果已經有了,則直接將a指向這個地址。因此a值的改變不會影響到b的值

    不知道真正的原理是不是那樣的?

    如果是的話能證明嗎?

    這些描述我也看過,很是不解。

    如果說這種基本類型也需要用這種指針的風格,還要共享數據,那么后續的操作處理起來不是更麻煩嗎?
    每次寫操作都要查找已有常量。甚至開辟新的空間存儲新值。
    再說這個指針怎么的也要個32位吧。為什么就不能直接吧值放進去,硬是要通過指針跳來跳去的,有意義嗎?
    這優化了嗎?

    反正在我看來,這是不可能的。

    希望有高手出來澄清一下,給個合理的解釋。

    如果是對的,那也應該給出有點說服力的證據。
    如果是錯的,那么建議大家吧這篇文章的源頭揪出來,這個確實誤人不淺。

    不過java對 String 這類不可變對象的處理,編譯器確實有類似優化,不過也只是編譯期。
    這種系統類庫受到點編譯器的特別關注倒是很合理的。



    posted @ 2007-07-30 08:29 金大為 閱讀(1169) | 評論 (12)編輯 收藏
    僅列出標題  下一頁
    主站蜘蛛池模板: 国产亚洲精品高清在线| 亚洲精品天天影视综合网| 毛片基地看看成人免费| 亚洲AV日韩精品久久久久久久| **一级一级毛片免费观看| 亚洲大码熟女在线观看| 国产专区一va亚洲v天堂| 亚洲欧洲自拍拍偷午夜色无码| 久久免费动漫品精老司机 | 亚洲成人在线免费观看| 国产成人在线观看免费网站| 亚洲一区免费视频| 亚洲啪啪免费视频| 亚洲国产精品张柏芝在线观看| 精品国产一区二区三区免费看| 青青操免费在线观看| 亚洲av之男人的天堂网站| 啦啦啦www免费视频| 18禁在线无遮挡免费观看网站| 中文字幕在线日亚洲9| 亚洲Av综合色区无码专区桃色| 午夜私人影院免费体验区| 免费A级毛片无码A∨| 免费人成视频在线观看免费| 亚洲成年人电影网站| 亚洲日韩精品无码一区二区三区| 成人免费淫片在线费观看| 深夜a级毛片免费无码| 亚洲精品福利你懂| 国产亚洲综合久久系列| 免费萌白酱国产一区二区| 亚洲一区二区免费视频| 中文字幕手机在线免费看电影| 亚洲AV日韩AV无码污污网站| 日韩一卡2卡3卡4卡新区亚洲| 成人免费看黄20分钟| h视频在线免费看| 久久99精品国产免费观看| 亚洲成人激情小说| 亚洲色图黄色小说| 亚洲国产综合专区在线电影|