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

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

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

    俊星的BLOG

    #

    我的JAVA工具之網絡傳輸對象

    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.net.ServerSocket;
    import java.net.Socket;

    public class Tet {
        
    public static void main(String[] args) {
            
    new Server().start();
            
    new Client().start();
        }

    }


    class TestVO implements Serializable {
        
    private String name;
        
    private int id;

        
    public TestVO(int id, String name) {
            
    super();
            
    this.id = id;
            
    this.name = name;
        }


        
    public String toString() {
            
    return "id:" + id + " name:" + name;
        }

    }


    class Client extends Thread {
        
    public void run() {
            
    try {
                Socket client 
    = new Socket("localhost"8888);
                ObjectInputStream ois 
    = new ObjectInputStream(client.getInputStream());
                TestVO vo 
    = (TestVO) ois.readObject();
                System.out.println(
    "client read:" + vo);
                ois.close();
                client.close();
            }
     catch (Exception e) {
                
    // TODO: handle exception
                e.printStackTrace();
            }

        }

    }


    class Server extends Thread {
        
    public void run() {
            
    try {
                ServerSocket ss 
    = new ServerSocket(8888);
                Socket server 
    = ss.accept();
                ObjectOutputStream oos 
    = new ObjectOutputStream(server.getOutputStream());
                TestVO vo 
    = new TestVO(1"good job");
                oos.writeObject(vo);
                System.out.println(
    "server write:" + vo);
                oos.close();
                server.close();
                ss.close();
            }
     catch (Exception e) {
                
    // TODO: handle exception
            }

        }

    }

    輸出:
    server write:id:1 name:good job
    client read:id:
    1 name:good job

    posted @ 2009-05-19 21:40 俊星 閱讀(571) | 評論 (0)編輯 收藏

    趣味JAVA之九九乘法口訣表

        public static void main(String[] args) {
            
    // i:行數 j:列數
            
    // 方式一:嵌套循環
            for (int i = 1; i <= 9; i++{
                
    for (int j = 1; j <= i; j++{
                    System.out.print(i 
    + "X" + j + "=" + i * j + " ");
                }

                System.out.println();
            }


            System.out.println();
            
    // 方式二:單循環
            for (int i = 1, j = 1; i <= 9; j++{
                System.out.print(i 
    + "X" + j + "=" + i * j + " ");
                
    if (i == j) {
                    System.out.println();
                    i
    ++;
                    j 
    = 0;
                }

            }

        }

    輸出如下:
    1X1=1 
    2X1
    =2 2X2=4 
    3X1
    =3 3X2=6 3X3=9 
    4X1
    =4 4X2=8 4X3=12 4X4=16 
    5X1
    =5 5X2=10 5X3=15 5X4=20 5X5=25 
    6X1
    =6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36 
    7X1
    =7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49 
    8X1
    =8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64 
    9X1
    =9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81 

    1X1
    =1 
    2X1
    =2 2X2=4 
    3X1
    =3 3X2=6 3X3=9 
    4X1
    =4 4X2=8 4X3=12 4X4=16 
    5X1
    =5 5X2=10 5X3=15 5X4=20 5X5=25 
    6X1
    =6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36 
    7X1
    =7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49 
    8X1
    =8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64 
    9X1
    =9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81 

    posted @ 2009-05-19 21:14 俊星 閱讀(688) | 評論 (0)編輯 收藏

    我的JAVA工具之目錄結構輸出

    1、代碼:
    package test;

    import java.io.File;

    public class DMain {
        
    static int level = 0;

        
    /** 文件目錄迭代輸出 */
        
    static void pathPrint1(String root) {
            File path 
    = new File(root);
            
    if (path.isDirectory()) {
                System.out.println(getMultiStr(
    " ", level) + (path.isDirectory() ? "<dir>" : ""+ path.getName());
                level
    ++;
                File[] files 
    = path.listFiles();
                
    for (File f : files) {
                    
    if (f.isDirectory()) {
                        pathPrint1(f.getAbsolutePath());
                    } 
    else {
                        System.out.println(getMultiStr(
    " ", level) + f.getName());
                    }
                }
                level
    --;
            }
        }

        
    static String getMultiStr(String str, int num) {
            String s 
    = "";
            
    for (int i = 0; i < num; i++) {
                s 
    += str;
            }
            
    return s;
        }

        
    /** 以樹形結構輸出目錄 */
        
    static void printTree(String root, String init) {
            File path 
    = new File(root);
            
    if (path.isDirectory()) {
                File[] files 
    = path.listFiles();
                
    for (int i = 0, length = files.length; i < length; i++) {
                    File f 
    = files[i];
                    System.out.println(init 
    + "|" + getMultiStr("-"4+ f.getName());
                    
    if (f.isDirectory()) {
                        printTree(f.getAbsolutePath(), init 
    + (i == length - 1 ? " " : "|"+ getMultiStr(" "4));
                    }
                }
            }
        }

        
    public static void main(String[] args) {
            String s 
    = "D:\\My Documents\\discuz!\\Discuz_7[1].0.0_SC_GBK\\upload\\forumdata";
            pathPrint1(s);
            System.out.println(
    "------------------------");
            System.out.println(
    "ROOT");
            printTree(s,
    "");

        }

    }

    2、得到的輸出:
    <dir>forumdata
     <dir>cache
      index.htm
     index.htm
     <dir>logs
      index.htm
     <dir>templates
      index.htm
     <dir>threadcaches
      index.htm
    ------------------------
    ROOT
    |----cache
    |    |----index.htm
    |----index.htm
    |----logs
    |    |----index.htm
    |----templates
    |    |----index.htm
    |----threadcaches
         |----index.htm


    posted @ 2009-05-18 20:18 俊星 閱讀(198) | 評論 (0)編輯 收藏

    Web4J之試用

         摘要: Web4J是一個比較新潮的Web框架,具體信息可以參考官網的相關說明:http://www.web4j.com/,下面是我的簡單試用 1、數據庫準備(MySQL): 創建一個數據庫和一個單表: create database test4j; use test4j; create table tbl_log(   ...  閱讀全文

    posted @ 2009-05-16 18:57 俊星 閱讀(920) | 評論 (0)編輯 收藏

    ORACLE Autonomous Transactions(自治事務)試用

    ORACLE自治事務是一個不錯的功能,關鍵字是AUTONOMOUS_TRANSACTION,下面是我試用:
    1、測試:
    創建一個測試表:
    CREATE TABLE TBL_TEST(
      TEST_ID 
    NUMBER NOT NULL,
      TEST_DESC 
    VARCHAR2(100NOT NULL
    );

    新增兩條記錄(注意沒有進行提交):
    INSERT INTO TBL_TEST VALUES(1,'DESC 1');
    INSERT INTO TBL_TEST VALUES(2,'DESC 2');

    通過自治事務添加6兩條記錄:
    DECLARE PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
     
    FOR i IN 3..8 LOOP
      
    INSERT INTO TBL_TEST VALUES(i,'DESC '||i);
     
    END LOOP;
     
    COMMIT;
    END;
    /

    查看執行結果如下:
    SQL> SELECT * FROM TBL_TEST;
     
       TEST_ID TEST_DESC
    ---------- --------------------------------------------------------------------------------
             
    1 DESC 1
             
    2 DESC 2
             
    3 DESC 3
             
    4 DESC 4
             
    5 DESC 5
             
    6 DESC 6
             
    7 DESC 7
             
    8 DESC 8
     
    8 rows selected

    回滾后再次查看結果(通過結果可以看到采用自治事務的新增沒有被回滾掉):
    SQL> ROLLBACK;
     
    Rollback complete
    SQL> SELECT * FROM TBL_TEST
    ;
     
       TEST_ID TEST_DESC
    ---------- --------------------------------------------------------------------------------
             
    3 DESC 3
             
    4 DESC 4
             
    5 DESC 5
             
    6 DESC 6
             
    7 DESC 7
             
    8 DESC 8
     
    6 rows selected

    2、應用自治事務實現日志記錄:
    創建一個日志表:
    CREATE TABLE TBL_LOG(
      LOG_ID 
    NUMBER(10PRIMARY KEY,
      LOG_MSG 
    VARCHAR2(4000NOT NULL,
      LOG_TIME DATE 
    NOT NULL
    );

    創建一個序列:
    CREATE SEQUENCE SEQ_TBL_LOG;

    創建一個記錄日志的存儲過程:
    CREATE OR REPLACE PROCEDURE DO_LOG(P_MSG IN VARCHAR2AS 
     PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
      
    INSERT INTO TBL_LOG VALUES(SEQ_TBL_LOG.NEXTVAL,P_MSG,SYSDATE);
      
    COMMIT;
    END;
    /

    測試上面的存儲過程:
    BEGIN
      
    INSERT INTO TBL_TEST VALUES (100,'DESC 100');
      
    -- test the do_log
      INSERT INTO TBL_TEST VALUES (101,NULL);
    EXCEPTION
      
    WHEN OTHERS THEN
        DO_LOG(P_MSG 
    =>SQLERRM);
        
    ROLLBACK;
    END;
    /

    查看運行結果:
    SQL> SELECT * FROM TBL_TEST WHERE TEST_ID>=100;
     
       TEST_ID TEST_DESC
    ---------- --------------------------------------------------------------------------------
    SQL> SELECT * FROM TBL_LOG
    ;
     
         LOG_ID LOG_MSG                                                                          LOG_TIME
    ----------- -------------------------------------------------------------------------------- -----------
              
    1 ORA-01400: 無法將 NULL 插入 ("FWMS4ZH_TEST"."TBL_TEST"."TEST_DESC")              2009-5-15 2

    posted @ 2009-05-15 20:19 俊星 閱讀(246) | 評論 (0)編輯 收藏

    僅列出標題
    共10頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 
    主站蜘蛛池模板: 久久久久亚洲AV成人片| 亚洲一区免费在线观看| 久操视频免费观看| 亚洲卡一卡2卡三卡4卡无卡三| 在线免费中文字幕| 久久久久亚洲精品无码网址色欲| 亚洲欧洲精品成人久久奇米网 | 亚洲黄色在线观看| 国产在线播放免费| 欧洲人免费视频网站在线| 亚洲精品无码专区在线| 精品亚洲一区二区| 麻豆精品国产免费观看| 免费国产成人α片| 无码天堂va亚洲va在线va| 亚洲91av视频| 啊灬啊灬别停啊灬用力啊免费看| 热re99久久6国产精品免费| 爱情岛论坛亚洲品质自拍视频网站| 亚洲AV无码一区二区二三区入口 | 免费观看的毛片手机视频| a毛片视频免费观看影院| 亚洲人AV在线无码影院观看| 久久精品国产精品亚洲艾草网| 日本不卡在线观看免费v| 日本免费人成视频在线观看| 免费中文字幕视频| 亚洲色欲啪啪久久WWW综合网| 亚洲AV无码久久精品狠狠爱浪潮| 国产男女猛烈无遮挡免费视频| 久久99国产乱子伦精品免费| caoporm超免费公开视频| 亚洲欧美日韩中文二区| 亚洲最大的成网4438| 亚洲一级特黄大片无码毛片 | 真人做人试看60分钟免费视频| fc2成年免费共享视频网站| 国产精品亚洲精品| 亚洲精品高清久久| 亚洲日韩乱码中文无码蜜桃臀网站| 午夜免费福利在线观看|