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

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

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

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    #

    一個(gè)解析文本中的信息并向?qū)ο筚x值過(guò)程的思考.

         摘要: 一個(gè)解析文本中的信息并向?qū)ο筚x值過(guò)程的思考,比較淺顯.  閱讀全文

    posted @ 2007-12-07 16:35 sitinspring 閱讀(491) | 評(píng)論 (0)編輯 收藏

    私有的成員能被子類繼承嗎?

         摘要: private的成員變量能被子類繼承嗎?回答是父類的所有成員變量包括私有成員變量都會(huì)被子類繼承,private只是把可見性限制在改類內(nèi)部的方法中而已,子類仍然可以通過(guò)父類的成員函數(shù)來(lái)訪問(wèn)不可見的從父類繼承下來(lái)的私有成員.

    這個(gè)機(jī)制對(duì)于復(fù)雜的類體系中保護(hù)父類不被濫用很有好處.  閱讀全文

    posted @ 2007-12-04 20:42 sitinspring 閱讀(9944) | 評(píng)論 (7)編輯 收藏

    遍歷并批量刪除容器中元素出現(xiàn)ConcurrentModificationException原因及處置

         摘要: 本文分析了java.util.ConcurrentModificationException出現(xiàn)的原因及處置辦法.  閱讀全文

    posted @ 2007-12-03 21:04 sitinspring 閱讀(1878) | 評(píng)論 (2)編輯 收藏

    使用XML作為持久存儲(chǔ)介質(zhì)的解決方案續(xù)

         摘要: 本文是"使XML作為持久存儲(chǔ)介質(zhì)的解決方案 "的續(xù)文. 上文中對(duì)成員的CRUD都采用同步進(jìn)行資源保護(hù),這種方案實(shí)際上是保護(hù)過(guò)度,帶來(lái)的消極影響是降低了程序的效率,在下面的例子中,我們應(yīng)該使用讀寫鎖對(duì)資源進(jìn)行保護(hù).關(guān)于讀寫鎖的分析請(qǐng)見"讀寫鎖的OO分析(http://www.tkk7.com/sitinspring/archive/2007/10/21/154652.html)". ...  閱讀全文

    posted @ 2007-11-15 10:22 sitinspring 閱讀(477) | 評(píng)論 (0)編輯 收藏

    在Weblogic8上注冊(cè)并啟動(dòng)RMI程序.

    1.做兩個(gè)類Ruler和RulerImpl.
    import java.rmi.Remote;

    public interface Ruler extends Remote {
        
    public String getLength(String str) throws java.rmi.RemoteException;
    }

    import java.rmi.RemoteException;
    import java.rmi.server.UnicastRemoteObject;

    import javax.naming.Context;
    import javax.naming.InitialContext;

    public class RulerImpl extends UnicastRemoteObject implements Ruler {
        
    public RulerImpl() throws RemoteException{
            
    super();
        }


        
    public String getLength(String str) throws java.rmi.RemoteException {
                     
    // 這里用Sb是因?yàn)閣eblogic的1.4的jdk不認(rèn)StringBuilder
            StringBuffer sb=new StringBuffer();
            sb.append(
    "String:");
            sb.append(str);
            sb.append(
    "'s length=");
            sb.append(str.length());
            
            
    return sb.toString();
        }

        
        
    public static void main(String[] args){
            
    try{
                RulerImpl rulerImpl
    =new RulerImpl();
                
                Context ctx
    =new InitialContext();
                ctx.bind(
    "StringRuler", rulerImpl);
            }

            
    catch(Exception ex){
                ex.printStackTrace();
            }

        }

    }

    2.用rmic編譯Ruler.class和RulerImpl.class 以生成樁類RulerImpl_Stub.class.
    c:>C:\jdk1.5.0_09\bin\rmic RulerImpl.

    3.將生成的RulerImpl_Stub.class以及原有的Ruler.class和RulerImpl.class拷貝到服務(wù)器的目標(biāo)域中,本人機(jī)器上的是C:\bea\user_projects\domains\mydomain

    4.通過(guò)http://localhost:7001/console 進(jìn)入Weblogic控制臺(tái),并按 yourdomain->Deployment->Startup&Shutdown->Configure a New Startup Class 注冊(cè)啟動(dòng)類.完畢后結(jié)果如下圖:


    5.重新啟動(dòng)Server(Start Server)

    6.通過(guò)客戶端測(cè)試一下:
    import java.util.Hashtable;

    import javax.naming.Context;
    import javax.naming.InitialContext;

    public class RulerClient{
        
    public static void main(String[] args) throws Exception{
            Hashtable env
    =new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY, 
    "weblogic.jndi.WLInitialContextFactory");
            env.put(Context.PROVIDER_URL,
    "t3://localhost:7001");
            
            InitialContext ctx
    =new InitialContext(env);
            
            Object o
    =ctx.lookup("StringRuler");
            Ruler ruler
    =(Ruler)o;
            System.out.println(ruler.getLength(
    "123"));
        }

    }

    測(cè)試結(jié)果為:
    String:123's length=3

    代碼下載(rmic 目錄中包括三個(gè)已生成類):
    http://www.tkk7.com/Files/sitinspring/RmiExample20071106220750.rar

    posted @ 2007-11-06 22:22 sitinspring 閱讀(299) | 評(píng)論 (0)編輯 收藏

    限時(shí)線程回調(diào)方式的實(shí)現(xiàn)

    線程回調(diào)方式我們已經(jīng)在"使用回調(diào)和線程處理一個(gè)耗時(shí)響應(yīng)過(guò)程"文中進(jìn)行了講述,但是有些情況下用戶希望在指定時(shí)間內(nèi)返回一個(gè)結(jié)果,免得無(wú)休止的等待下去.這時(shí)我們需要使用"限時(shí)線程回調(diào)方式",它在原有線程回調(diào)的基礎(chǔ)上加上了一個(gè)Timer以計(jì)算消耗的時(shí)間,如果時(shí)間期限到了任務(wù)還沒(méi)有執(zhí)行完的話即中斷線程,示例代碼如下:

    package com.sitinspring;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.Timer;

    /**
     * 定時(shí)回調(diào)線程類
     * 
     * 
    @author sitinspring(junglesong@gmail.com)
     * 
     * @date 2007-11-6
     
    */

    public class TimedCallBackThread implements Runnable {
        
    // 一秒的毫秒數(shù)常量
        private final static int ONE_SECOND = 1000;

        
    // 限制時(shí)間,以秒為單位
        private final int waitTime;

        
    // 已經(jīng)流逝的時(shí)間
        private int passedTime;

        
    private Timer timer;

        
    private Thread thread;

        
    private MvcTcModel model;

        
    private MvcTcView view;

        
    public TimedCallBackThread(MvcTcModel model, MvcTcView view, int waitTime) {
            
    this.model = model;
            
    this.view = view;
            
    this.waitTime = waitTime;
            
    this.passedTime = 0;

            
    // 創(chuàng)建并啟動(dòng)定時(shí)器
            timer = new Timer(ONE_SECOND, new ActionListener() {
                
    public void actionPerformed(ActionEvent evt) {
                    timeListener();
                }

            }
    );
            timer.start();

            
    // 創(chuàng)建并啟動(dòng)線程來(lái)完成任務(wù)
            thread = new Thread(this);
            thread.start();
        }


        
    private void timeListener() {
            passedTime
    ++;

            
    // 動(dòng)態(tài)顯示狀態(tài)
            int modSeed = passedTime % 3;
            
    if (modSeed == 0{
                view.getLabel2().setText(
    "響應(yīng)中");
            }
     else if (modSeed == 1{
                view.getLabel2().setText(
    "響應(yīng)中..");
            }
     else if (modSeed == 2{
                view.getLabel2().setText(
    "響應(yīng)中.");
            }


            
    // 如果流逝時(shí)間大于規(guī)定時(shí)間則中斷線程
            if (passedTime > waitTime) {
                passedTime 
    = waitTime;
                thread.interrupt();
            }

        }


        
    public void run() {
            
    while (passedTime < waitTime) {
                
    try {
                    Thread.sleep(
    10000);// 模擬一個(gè)耗時(shí)相應(yīng)過(guò)程
                    timer.stop();// 任務(wù)完成,停止Timer

                    view.getLabel2().setText(model.getText2());
                }
     catch (InterruptedException ex) {
                    timer.stop();
    // 線程中斷,停止Timer
                    view.getLabel2().setText("在指定時(shí)間內(nèi)未響應(yīng)");
                }
     catch (Exception ex) {
                    ex.printStackTrace();
                }


                
    return;
            }

        }

    }

    執(zhí)行效果如下:





    本文代碼下載(點(diǎn)擊第二個(gè)按鈕):
    http://www.tkk7.com/Files/sitinspring/TimedThreadCallBack20071106194506.rar

    posted @ 2007-11-06 12:05 sitinspring 閱讀(1142) | 評(píng)論 (0)編輯 收藏

    MVC1,MVC2簡(jiǎn)析

         摘要: 一般來(lái)說(shuō),可以把系統(tǒng)粗略的分為三個(gè)層次,視圖層,簡(jiǎn)稱為View,它負(fù)責(zé)數(shù)據(jù)的輸出和輸入;業(yè)務(wù)層,簡(jiǎn)稱為Model,它代表程序的實(shí)際業(yè)務(wù);控制層,簡(jiǎn)稱為Controller,處理界面的相應(yīng)并調(diào)用業(yè)務(wù)層進(jìn)行處理,有時(shí)把View和Controller兩層合稱為UI層。 在程序發(fā)展的歷史上,MVC模式進(jìn)過(guò)了多次演化,MVC1和MVC2是兩種比較典型的模式,它們的區(qū)別主要在于View和Model的聯(lián)系方式...  閱讀全文

    posted @ 2007-11-05 20:15 sitinspring 閱讀(3916) | 評(píng)論 (1)編輯 收藏

    讀寫鎖的OO分析

         摘要: 我們有時(shí)會(huì)遇到對(duì)同一個(gè)內(nèi)存區(qū)域如數(shù)組或者鏈表進(jìn)行多線程讀寫的情況,一般來(lái)說(shuō)有以下幾種處理方式:
    1.不加任何限制,多見于讀取寫入都很快的情況,但有時(shí)也會(huì)出現(xiàn)問(wèn)題.
    2.對(duì)讀寫函數(shù)都加以同步鎖,比如使用singleton模式,這下問(wèn)題是沒(méi)了,但效率也下去了,比如說(shuō)兩個(gè)讀取線程不是非要排隊(duì)進(jìn)入不可.
    3.讀寫鎖,安全和效率都得到了解決,特別合適讀線程多于寫線程的情況.也就是下面將要展現(xiàn)的模式.

    讀寫鎖的本意是分別對(duì)讀寫狀態(tài)進(jìn)行互斥區(qū)分,有互斥時(shí)才加鎖,否則放行.互斥的情況有:
    1.讀寫互斥.
    2.寫寫互斥.
    不互斥的情況是:讀讀,這種情況不該加以限制.

    我們只要讓鎖對(duì)象知道當(dāng)前讀寫狀態(tài)就可以了,再根據(jù)情況進(jìn)行鎖定和解鎖,然后再分情況進(jìn)行鎖定.請(qǐng)看代碼  閱讀全文

    posted @ 2007-10-21 11:42 sitinspring 閱讀(3277) | 評(píng)論 (2)編輯 收藏

    工人自動(dòng)獲取任務(wù)的OO分析

         摘要: 這篇文章是"調(diào)度員,工人及任務(wù)的OO分析過(guò)程"的續(xù)篇.

    上次的情況是由調(diào)度員主動(dòng)分配任務(wù),但有些情況下需要工人自動(dòng)取得任務(wù)而不是由調(diào)度員分配,這時(shí)需要對(duì)線程進(jìn)行通知,使用的主要方法就是對(duì)象的wait(),notify(),notifyAll()三個(gè)函數(shù),它們都必須從同步方法(synchronized method)中調(diào)用.  閱讀全文

    posted @ 2007-10-20 09:53 sitinspring 閱讀(871) | 評(píng)論 (0)編輯 收藏

    調(diào)度員,工人及任務(wù)的OO分析過(guò)程.

         摘要: 日常編碼中,我們常需要為各種業(yè)務(wù)進(jìn)行建模,為工廠中的任務(wù)調(diào)度建模就很有意思的,它的主要流程是基本是這樣:
    1.調(diào)度員將工件圖紙交付給工人,這是任務(wù)的下達(dá).
    2.工人工作,完成工件,這是任務(wù)的進(jìn)行過(guò)程.
    3.工件完成后,工人將圖紙和工件返還給調(diào)度員,或者到了確定的時(shí)間后由調(diào)度員去取.這是任務(wù)的完成.
    4.重復(fù)上述三個(gè)步驟.

    在這個(gè)流程中,還存在一些特征:
    1.工人可以有多項(xiàng)任務(wù),但他在一個(gè)時(shí)間只能做一個(gè)活,具體做那個(gè)由任務(wù)的優(yōu)先級(jí)確定.
    2.任務(wù)完成后要讓調(diào)度員知道,現(xiàn)實(shí)中是工人來(lái)找調(diào)度員或者調(diào)度員找工人來(lái)實(shí)現(xiàn)的.

    從上述情況分析,我們需要任務(wù),工人,調(diào)度員三個(gè)類來(lái)完成建模,另外為了方便任務(wù)的存儲(chǔ)和管理,還需要一個(gè)任務(wù)串類來(lái)輔助.
      閱讀全文

    posted @ 2007-10-05 12:52 sitinspring 閱讀(953) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共13頁(yè): First 上一頁(yè) 5 6 7 8 9 10 11 12 13 下一頁(yè) 
    sitinspring(http://www.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 无码人妻一区二区三区免费| 久久国产乱子免费精品| 久青草国产免费观看| 久久嫩草影院免费看夜色| 一个人免费视频观看在线www| 无码日韩精品一区二区三区免费 | 国产精品亚洲色图| a级毛片免费网站| 伊人久久免费视频| 好男人视频在线观看免费看片| 国产一级一片免费播放i| 亚洲国产精品专区在线观看| 久久久亚洲欧洲日产国码农村| 亚洲精品二三区伊人久久| 国产偷国产偷亚洲高清人| 大地资源在线资源免费观看 | 国产一区二区三区免费在线观看 | 亚洲电影在线免费观看| 精品久久久久久久久亚洲偷窥女厕| 一个人看的免费高清视频日本| 免费无码毛片一区二区APP| 天天拍拍天天爽免费视频| AV在线亚洲男人的天堂| 亚洲精品人成电影网| 美女被暴羞羞免费视频| 久久99青青精品免费观看| 大陆一级毛片免费视频观看| 亚洲乱码国产一区三区| 亚洲一区二区三区丝袜| 中文在线观看免费网站| 免费高清在线爱做视频| 亚洲AV无码专区国产乱码电影 | 免费夜色污私人影院网站电影| 99精品视频在线免费观看| 国产免费69成人精品视频| 亚洲av无码一区二区三区不卡| 亚洲成在人线在线播放无码| 午夜免费啪视频在线观看| 国产无遮挡又黄又爽免费视频| 亚洲综合一区二区国产精品| 老司机午夜免费视频|