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

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

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

    當(dāng)柳上原的風(fēng)吹向天際的時候...

    真正的快樂來源于創(chuàng)造

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

    #

    package com.heyang;

    /**
     * 雙色球搖獎
     * 
    @author: 何楊(heyang78@gmail.com)
     * @date: 2009-2-20-下午10:52:55
     
    */

    public class DoubleColorBall{
        
    public static void main(String[] args){
            
    int[] ballNumbers=getSevenNumbers();
            
            
    for(int i:ballNumbers){
                System.out.print(i
    +",");
            }

        }

        
        
    /**
         * 得到七個隨機(jī)數(shù)數(shù)組
         * 
    @return
         
    */

        
    public static int[] getSevenNumbers(){
            
    final int arrLength=7;
            
    int[] arr=new int[arrLength];
            
            
    // 前六個從1-33中選取,如有重復(fù)再取一次
            do{
                
    for(int i=0;i<=arrLength-2;i++){
                    arr[i]
    =getIntgerBetween(33,1);
                }

            }
    while(hasDuplicatedItem(arr));
            
            
    // 最后一個從1-15中選取
            arr[6]=getIntgerBetween(15,1);
            
            
    return arr;
        }

        
        
    /**
         * 位圖法判斷整形數(shù)組是否存在重復(fù)
         * 
    @param arr
         * 
    @return
         
    */

        
    public static boolean hasDuplicatedItem(int[] arr){
            
    // 找出數(shù)組中最大值
            int max=arr[0];
            
    int min=max;
            
    for(int i:arr){
                
    if(max<i){
                    max
    =i;
                }

                
    if(min>i){
                    min
    =i;
                }

            }

            
            
    int[] newArr=new int[max-min+1];
            
    for(int i:arr){
                
    int index=i-min;
                
                
    if(newArr[index]==0){
                    
    // 以前未在此位置存值
                    newArr[index]=1;
                }

                
    else{
                    
    // 以前已經(jīng)在此位置存值
                    return true;
                }

            }
        
            
            
    return false;
        }


        
        
    /**
         * 取得max與min之間的一個隨機(jī)整數(shù),包括min和max兩值
         * 
    @param max
         * 
    @param min
         * 
    @return
         
    */

        
    public static int getIntgerBetween(int max,int min){
            
    int interval=max-min;        
            
            
    return (int)Math.round((Math.random()*interval))+min;
        }

    }
    posted @ 2009-02-21 07:23 何楊 閱讀(296) | 評論 (0)編輯 收藏

     

    package com.heyang;

    /**
     * 概率法求PI
     * 
    @author: 何楊(heyang78@gmail.com)
     * @date: 2009-2-19-下午07:08:57
     
    */

    public class FindPie{
        
    public static void main(String[] args){
            
    int count=100;
            
    double simuPie;
            
            
    do{
                simuPie
    =getPie(count);
                count
    +=10;
            }
    while(isEquslPie(simuPie)==false);
              
            System.out.println(
    "當(dāng)數(shù)量為"+count+"時按概率法得到的Pi="+simuPie+"接近圓周率"+Math.PI);
        }
        
        
        
    public static double getPie(int count){
            
    int countIntheCorcle=0;
            
            
    for(int i=0;i<count;i++){
                
    double x=Math.random()-0.5;
                
    double y=Math.random()-0.5;
                
                
    if(Math.sqrt(x*x+y*y)<0.5){
                    countIntheCorcle
    ++;
                }

            }

                   
            
    return (double)(4.0d*countIntheCorcle/count);
        }

        
        
    public static boolean isEquslPie(double simuPie){
            
    return isEqual(simuPie,Math.PI);
        }

        
        
    private static boolean isEqual(double a,double b){
            
    final double epsilon=0.000001;
            
            
    return Math.abs(a-b)<epsilon;
        }

    }

    結(jié)果:
    當(dāng)數(shù)量為98150時按概率法得到的Pi=3.141593641736295接近圓周率3.141592653589793
    posted @ 2009-02-19 17:32 何楊 閱讀(275) | 評論 (0)編輯 收藏

    HttpUnit網(wǎng)址:http://httpunit.sourceforge.net

    要在工程中使用HttpUnit,需要下載httpunit1.7.0.zip包,并把其中l(wèi)ib及jars目錄中的包加載到工程中。

    連接網(wǎng)頁并取得網(wǎng)頁文本示例:
    // 打開一個Web會話,WebConversation的實(shí)例模擬一個Web瀏覽器,用來請求一個Web資源
            WebConversation wc=new WebConversation();
            
            
    // 向網(wǎng)址http://www.baidu.com發(fā)出請求
            WebRequest req=new GetMethodWebRequest("http://www.baidu.com");
            
            
    try {
                
    // 獲得http://www.baidu.com的響應(yīng)
                WebResponse resp=wc.getResponse(req);
                
                
    // 打印表示整個Web頁面的字符串
                System.out.println(resp.getText());
                
                
    // resp.getDOM()方法返回一個表示整個Web頁面的XML文檔
                
    // resp.getForms()方法返回Web頁面的中的表單數(shù)組
                
    // resp.getTables()方法返回Web頁面的中的表格數(shù)組
                
    // resp.getLinks()方法返回Web頁面的中的鏈接數(shù)組
                
    // resp.getImages()方法返回Web頁面的中的圖片數(shù)組
            }
     catch (IOException e) {
                e.printStackTrace();
            }
     catch (SAXException e) {
                e.printStackTrace();
            }

    模擬在百度輸入“金融危機(jī)”并取得查詢結(jié)果的例子:
    WebConversation wc=new WebConversation();
            
            WebRequest request
    =new GetMethodWebRequest("http://www.baidu.com");
            
    try {
                WebResponse response
    =wc.getResponse(request);
                
                
    // 取得Web頁面中第一個Form
                WebForm form=response.getForms()[0];
                request
    =form.getRequest();
                
                
    // 設(shè)置查詢主題為"金融危機(jī)“,wd是查詢文本框的name
                request.setParameter("wd""金融危機(jī)");
                
                
    // 取得并在控制臺打印響應(yīng)
                response=wc.getResponse(request);
                System.out.println(response.getText());
            }
     catch (IOException e) {
                e.printStackTrace();
            }
     catch (SAXException e) {
                e.printStackTrace();
            }


    posted @ 2009-02-17 15:08 何楊 閱讀(402) | 評論 (0)編輯 收藏

    在數(shù)據(jù)庫操作中,一項(xiàng)事務(wù)是由一條或者多條表達(dá)式所組成的一個不可分割的工作單元。
    事務(wù)必須遵循ACID原則,即:
    原子性(Atomicity):事務(wù)必須完全執(zhí)行或者完全不執(zhí)行,任何任務(wù)失敗都將導(dǎo)致整個事務(wù)回滾。
    一致性(Consistency):指原始數(shù)據(jù)庫的完整性,事務(wù)系統(tǒng)通過確保事務(wù)是原子性,隔離性和持續(xù)性來實(shí)現(xiàn)一致性。
    隔離性(Isolation):事物的執(zhí)行必須不受其它進(jìn)程或者事務(wù)的干擾。
    持續(xù)性(Durabilty):意味著所有事務(wù)過程中的數(shù)據(jù)更改在事務(wù)成功之前必須寫入某些物理介質(zhì),確保系統(tǒng)崩潰時數(shù)據(jù)更改不會丟失。

    JDBC事務(wù)管理

    JDBC中引入一批語句對事務(wù)進(jìn)行支持,它們是:
    Connection.setAutoCommit(True or fasle);設(shè)置事務(wù)是否自動提交,它的參數(shù)缺省是true.要進(jìn)行事務(wù)處理的話,參數(shù)應(yīng)該設(shè)置為false.
    Connection.commit():從setAutoCommit語句開始,到commit語句之間算作一個數(shù)據(jù)庫事務(wù),其中的數(shù)據(jù)庫操作要么全成功要么全失敗.所有在調(diào)用commit方法之前的SQL語句都可以被回滾,然而,一旦commit()方法被調(diào)用,執(zhí)行過的SQL語句就不能再回滾.
    Rollback():事務(wù)回滾,如果事務(wù)中有一個步驟出現(xiàn)錯誤,那么調(diào)用這個方法將使數(shù)據(jù)庫恢復(fù)到執(zhí)行事務(wù)之前的狀態(tài),這樣,事務(wù)的原子性就得到了保證.

    下面是使用事務(wù)處理的例程:

    Connection conn=null;
    Statement statement
    =null;

    try{
      Class.forName(
    "org.gjt.mm.mysql.Driver");
      conn
    =DriverManager.getConnection("jdbc:mysql://127.0.0.1/test""root""hy");
      statement
    =conn.createStatement();
      
      conn.setAutoCommit(
    false);            
      
    int changeCount1=statement.executeUpdate(" update employee set salary=salary-10000 where NAME='郭德綱' ");
      
    int changeCount2=statement.executeUpdate(" update employee set salary=salary+10000 where NAME='于謙'  ");
            
      
    if(changeCount1==1 && changeCount2==1){
        conn.commit();
      }

      
    else{
        conn.rollback();
      }

    }

    catch(SQLException se){
      
    try{
        conn.rollback();
      }

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

    }


    JDBC事務(wù)管理的問題

    以上事務(wù)處理代碼是以數(shù)據(jù)庫的記錄為核心來考慮的,即使用Java代碼通過JDBC和SQL語句直接操作數(shù)據(jù)庫中的記錄,這種傳統(tǒng)方式在現(xiàn)代程序中已經(jīng)不多見,現(xiàn)代程序多把記錄歸納成領(lǐng)域?qū)ο螅缓笫褂妙I(lǐng)域?qū)ο髮?yīng)的DAO來完成領(lǐng)域?qū)ο笈c數(shù)據(jù)庫之間的交互。除了DAO層外,其它層次不與數(shù)據(jù)庫發(fā)生聯(lián)系。因此,上面的直接使用JDBC進(jìn)行事務(wù)處理就不適用了,試想AccountService中有一個方法執(zhí)行兩個帳戶之間的轉(zhuǎn)賬,這個方法要具備事務(wù)功能必須繞過DAO層書寫底層的JDBC代碼,這是層次明晰紀(jì)律嚴(yán)明的系統(tǒng)所不能接受的,好在我們有Spring的事務(wù)處理可以幫我們擺脫兩難境地。

    使用Spring進(jìn)行事務(wù)處理

    Spring對程序控制事務(wù)管理的支持和EJB有很大不同,EJB的事務(wù)管理和JTA密不可分,而Spring使用了一種回調(diào)機(jī)制,把真實(shí)的食物實(shí)現(xiàn)從事務(wù)代碼中抽象出來。實(shí)際上Spring的事務(wù)管理甚至不需要JTA,它也可以使用持久化機(jī)制本身多提供的事務(wù)管理支持。下面就是使用JDBC作為應(yīng)用的持久化機(jī)制的事務(wù)管理示例代碼:

    首先,在上下文定義文件中寫入JDBC事務(wù)管理器的bean定義。

    <bean id="transactionManager"
     class
    ="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     
    <property name="dataSource">
      
    <ref bean="dataSource" />
     
    </property>
    </bean>


    它需要一個數(shù)據(jù)源的支持,數(shù)據(jù)源定義示例如下:

    <bean id="dataSource"
     class
    ="org.springframework.jdbc.datasource.DriverManagerDataSource">
     
    <property name="driverClassName"
      value
    ="org.gjt.mm.mysql.Driver">
     
    </property>
     
    <property name="url" value="jdbc:mysql://127.0.0.1/test">
     
    </property>
     
    <property name="username" value="root"></property>
     
    <property name="password" value="hy"></property>
    </bean>

     

    JDBC事務(wù)管理器會作為事務(wù)管理模板的一個屬性注入進(jìn)入。

    <bean id="transactionTemplate"
     class
    ="org.springframework.transaction.support.TransactionTemplate">
     
    <property name="transactionManager">
      
    <ref bean="transactionManager" />
     
    </property>
    </bean>

     

    而事務(wù)管理模板又作為一個屬性注入到AccountService中。

    <bean id="accountService"
     class
    ="com.heyang.service.AccountService">
     
    <property name="dao" ref="accountDao"/> 
     
    <property name="table" value="SpringTransaction_Account"/>
     
    <property name="transactionTemplate">
      
    <ref bean="transactionTemplate" />
     
    </property>
    </bean>

     

    到這里,在transactionTemplate的幫助下,AccountService就具備了事務(wù)處理功能,下面轉(zhuǎn)賬函數(shù)的具體代碼:

    public void transfer(final Account from,final Account to,final int count){
     transactionTemplate.execute(
      
    new TransactionCallback(){
       
    public Object doInTransaction(TransactionStatus ts){
        
    try{
         
    if(count>from.getCount()){
          
    throw new Exception("轉(zhuǎn)出的帳戶"+from+"余額不足");
         }

         
         
    if(count>5000){
          
    throw new Exception("轉(zhuǎn)出的金額超過了中紀(jì)委限定的額度5000");
         }

         
         
    // 轉(zhuǎn)出帳戶減去轉(zhuǎn)賬金額
         from.setCount(from.getCount()-count);
         update(from);
         
         
    // 轉(zhuǎn)入帳戶加上轉(zhuǎn)賬金額
         to.setCount(to.getCount()+count);
         update(to);
        }

        
    catch(Exception ex){
         ex.printStackTrace();
         
    // 出現(xiàn)任何異常即回滾
         ts.setRollbackOnly();
        }

        
        
    // 如果成功,事務(wù)被提交
        return null;
       }

      }

     );
    }


    以上代碼中,執(zhí)行轉(zhuǎn)賬的業(yè)務(wù)代碼放在try塊中,如果全部代碼執(zhí)行成功,事務(wù)將會被提交;如果如下任何異常,事務(wù)會被回滾,出現(xiàn)異常前的任何修改點(diǎn)將被恢復(fù)到初始狀態(tài)。

    下面是模擬轉(zhuǎn)賬的具體代碼:

    ApplicationContext context=new ClassPathXmlApplicationContext("appCtx.xml");

    AccountService service
    =(AccountService)context.getBean("accountService"); 

    // 準(zhǔn)備測試數(shù)據(jù)
    /* 建表語句如下
     * create table SpringTransaction_Account(
         id INTEGER(10) primary key not null , 
         name VARCHAR(255), 
         count INTEGER(255) 
      ) 
    */

    //Account andy=new Account("andy",3000);
    //service.create(andy);  
    //Account bill=new Account("bill",5000);
    //service.create(bill); 

    // 從數(shù)據(jù)庫取得帳戶Andy,11是其ID
    Account andy=service.getAccount("11");
    Account bill
    =service.getAccount("12");

    // 從Andy帳戶轉(zhuǎn)出4000給Bill,如果Andy帳戶余額低于4000將不會通過事務(wù)處理
    service.transfer(andy, bill, 4000);

    // 從Andy帳戶轉(zhuǎn)出1000給Bill,如果Andy帳戶余額低于1000將不會通過事務(wù)處理
    service.transfer(andy, bill, 1000);

    // 從Bill帳戶轉(zhuǎn)出5500給Andy,因?yàn)檗D(zhuǎn)賬額度大于中紀(jì)委規(guī)定的5000因此不會通過事務(wù)處理
    service.transfer(bill, andy, 5500);


    以上就是使用Spring進(jìn)行事務(wù)管理的主要流程,根據(jù)應(yīng)用的持久化機(jī)制的不同,Spring還提供了HibernateTransactionManger,JdoTransactionManger,OjbTransactionManger,JtaTransactionManger等事務(wù)管理器供用戶選擇,修改一下上面的transactionManager配置部分即可。

    本例中使用到的代碼下載:
    http://www.tkk7.com/Files/heyang/SpringTransaction.rar

    如果使用Hibernate作為程序持久介質(zhì)請下載:
    http://www.tkk7.com/Files/heyang/SpringHibernateTransaction.rar

    posted @ 2009-02-13 10:54 何楊 閱讀(1099) | 評論 (0)編輯 收藏

         摘要: 我們知道,在Struts1.x中,大致的內(nèi)部處理流程是這樣的:ActionServlet作為中央處理器,它配置在Web.xml中,接受所有*.do的請求,然后解析URI,得到*.do中的*部分,即path,然后根據(jù)path在struts-config.xml中找到具體處理業(yè)務(wù)的Action以及與之配套的ActionForm和ActionForward,再根據(jù)Action的type用Java反射機(jī)制生成Action的實(shí)例進(jìn)行具體業(yè)務(wù)處理,如果Action有ActionForm也會用反射機(jī)制生成form傳遞到函數(shù)execute中,該函數(shù)返回一個ActionForward對象給ActionServlet,如果它不是空,ActionServlet會從中取出URl進(jìn)行頁面跳轉(zhuǎn),否則不采取行動。

    實(shí)際上,要拋開Struts框架,自己實(shí)現(xiàn)這樣一套流程并不很困難,利用Servlet,正則表達(dá)式,XML解析,反射和BeanUtils的相關(guān)知識就能實(shí)現(xiàn)一個。這樣不但能鞏固相關(guān)知識點(diǎn)的掌握,也能對Struts框架有進(jìn)一步的理解。下面就是我按自己的理解完成的Struts內(nèi)部流程的具體實(shí)現(xiàn),事  閱讀全文
    posted @ 2009-02-12 15:12 何楊 閱讀(3975) | 評論 (1)編輯 收藏

         摘要: 如果數(shù)組中重復(fù)元素少,比較符合正態(tài)分布,那么這種方法還是比較高效的。  閱讀全文
    posted @ 2009-02-11 08:56 何楊 閱讀(1563) | 評論 (0)編輯 收藏

    package com.heyang;

    /**
     * 諸葛亮要派出五虎上將中的三員執(zhí)行任務(wù),請列出所有可能的組合
     * 
    @author 何楊(heyang78@gmail.com)
     *
     * 
    @since 2009-2-11 上午08:29:25
     * 
    @version 1.00
     
    */

    public class Combiner {
        
    static char[] arr={'關(guān)','','','',''};

        
    public static void main(String[] args) {
            
    int[] arr = new int[3];
            combine(
    53, arr);
        }


        
    public static void combine(int total, int chooseCount, int selectedArr[]) {
            
    for (int i = total; i >= chooseCount; i--){
                selectedArr[chooseCount 
    - 1= i - 1;
                
                
    if (chooseCount > 1){
                    combine(i 
    - 1, chooseCount - 1, selectedArr);
                }

                
    else 
                
    {
                    
    for (int j = selectedArr.length - 1; j >= 0; j--{
                        System.out.print(arr[selectedArr[j]] 
    + ",");
                    }

                    System.out.println();
                }

            }

        }

    }


    結(jié)果:
     1黃,馬,趙,
     2黃,馬,張,
     3黃,馬,關(guān),
     4黃,趙,張,
     5黃,趙,關(guān),
     6黃,張,關(guān),
     7馬,趙,張,
     8馬,趙,關(guān),
     9馬,張,關(guān),
    10趙,張,關(guān),

    排列代碼:
    package com.heyang;

    /**
     * 全排列代碼
     * 趙錢孫李四人排隊(duì),求所有排隊(duì)方案
     * 
     * 
    @author 何楊(heyang78@gmail.com)
     *
     * 
    @since 2009-2-11 下午01:26:45
     * 
    @version 1.00
     
    */

    public class Permutation{
        
    public static void main(String[] args){
            Character[] arr
    ={'','','',''};
            permutation(arr,
    0,arr.length);
        }

        
        
    public static void permutation(Object[] arr,int start,int end){
            
    if(start<end+1){
                permutation(arr,start
    +1,end);
                
                
    for(int i=start+1;i<end;i++){
                    Object temp;
                    
                    temp
    =arr[start];
                    arr[start]
    =arr[i];
                    arr[i]
    =temp;
                    
                    permutation(arr,start
    +1,end);
                    
                    temp
    =arr[i];
                    arr[i]
    =arr[start];
                    arr[start]
    =temp;
                }

            }

            
    else{
                
    for(int i=0;i<end;i++){
                    System.out.print(arr[i]);
                }

                System.out.print(
    "\n");
            }

        }

    }


    排列結(jié)果:
     1趙錢孫李
     2趙錢李孫
     3趙孫錢李
     4趙孫李錢
     5趙李孫錢
     6趙李錢孫
     7錢趙孫李
     8錢趙李孫
     9錢孫趙李
    10錢孫李趙
    11錢李孫趙
    12錢李趙孫
    13孫錢趙李
    14孫錢李趙
    15孫趙錢李
    16孫趙李錢
    17孫李趙錢
    18孫李錢趙
    19李錢孫趙
    20李錢趙孫
    21李孫錢趙
    22李孫趙錢
    23李趙孫錢
    24李趙錢孫
    posted @ 2009-02-11 08:32 何楊 閱讀(270) | 評論 (0)編輯 收藏

    “文無第一,武無第二”,技術(shù)人員如果相遇和后者相似,不是你壓過他,就是他壓過你,哪怕是一星半點(diǎn)。即使是客套也會招來對方的輕蔑,就像在擂臺上,沒說的,直接開打吧。
     

    你在為誰而“玩”?

    一)成長的寓言:做一棵永遠(yuǎn)成長的蘋果樹

      一棵蘋果樹,終于結(jié)果了。

      第一年,它結(jié)了10個蘋果,9個被拿走,自己得到1個。對此,蘋果樹憤憤不平,于是自斷經(jīng)脈,拒絕成長。第二年,它結(jié)了5個蘋果,4個被拿走,自己得到1個。“哈哈,去年我得到了10%,今年得到20%!翻了一番。”這棵蘋果樹心理平衡了。

      但是,它還可以這樣:繼續(xù)成長。譬如,第二年,它結(jié)了100個果子,被拿走90個,自己得到10個。

      很可能,它被拿走99個,自己得到1個。但沒關(guān)系,它還可以繼續(xù)成長,第三年結(jié)1000個果子……

      其實(shí),得到多少果子不是最重要的。最重要的是,蘋果樹在成長!等蘋果樹長成參天大樹的時候,那些曾阻礙它成長的力量都會微弱到可以忽略。真的,不要太在乎果子,成長是最重要的。

      【心理點(diǎn)評】你是不是一個已自斷經(jīng)脈的打工族?

      剛開始工作的時候,你才華橫溢,意氣風(fēng)發(fā),相信“天生我才必有用”。但現(xiàn)實(shí)很快敲了你幾個悶棍,或許,你為單位做了大貢獻(xiàn)沒人重視;或許,只得到口頭重視但卻得不到實(shí)惠;或許……總之,你覺得就像那棵蘋果樹,結(jié)出的果子自己只享受到了很小一部分,與你的期望相差甚遠(yuǎn)。

      于是,你憤怒、你懊惱、你牢騷滿腹……最終,你決定不再那么努力,讓自己的所做去匹配自己的所得。幾年過去后,你一反省,發(fā)現(xiàn)現(xiàn)在的你,已經(jīng)沒有剛工作時的激情和才華了。

      “老了,成熟了。”我們習(xí)慣這樣自嘲。但實(shí)質(zhì)是,你已停止成長了。

      這樣的故事,在我們身邊比比皆是。

      之所以犯這種錯誤,是因?yàn)槲覀兺浬且粋€歷程,是一個整體,我們覺得自己已經(jīng)成長過了,現(xiàn)在是到該結(jié)果子的時候了。我們太過于在乎一時的得失,而忘記了成長才是最重要的。

      好在,這不是金庸小說里的自斷經(jīng)脈。我們隨時可以放棄這樣做,繼續(xù)走向成長之路。

      切記:如果你是一個打工族,遇到了不懂管理、野蠻管理或錯誤管理的上司或企業(yè)文化,那么,提醒自己一下,千萬不要因?yàn)榧嵑蜐M腹牢騷而自斷經(jīng)脈。不論遇到什么事情,都要做一棵永遠(yuǎn)成長的蘋果樹,因?yàn)?span style="color: rgb(255, 0, 0);">你的成長永遠(yuǎn)比每個月拿多少錢重要。

      (二)動機(jī)的寓言:孩子在為誰而玩

      一群孩子在一位老人家門前嬉鬧,叫聲連天。幾天過去,老人難以忍受。

      于是,他出來給了每個孩子25美分,對他們說:“你們讓這兒變得很熱鬧,我覺得自己年輕了不少,這點(diǎn)錢表示謝意。”

      孩子們很高興,第二天仍然來了,一如既往地嬉鬧。老人再出來,給了每個孩子15美分。他解釋說,自己沒有收入,只能少給一些。15美分也還可以吧,孩子仍然興高采烈地走了。

      第三天,老人只給了每個孩子5美分。

      孩子們勃然大怒,“一天才5美分,知不知道我們多辛苦!”他們向老人發(fā)誓,他們再也不會為他玩了!

      【心理點(diǎn)評】你在為誰而“玩”

      這個寓言是蘋果樹寓言的更深一層的答案:蘋果樹為什么會自斷經(jīng)脈,因?yàn)樗皇菫樽约憾?#8220;玩”。

      人的動機(jī)分兩種:內(nèi)部動機(jī)和外部動機(jī)。如果按照內(nèi)部動機(jī)去行動,我們就是自己的主人。如果驅(qū)使我們的是外部動機(jī),我們就會被外部因素所左右,成為它的奴隸。  

            在這個寓言中,老人的算計很簡單,他將孩子們的內(nèi)部動機(jī)“為自己快樂而玩”變成了外部動機(jī)“為得到美分而玩”,而他操縱著美分這個外部因素,所以也操縱了孩子們的行為。寓言中的老人,像不像是你的老板、上司?而美分,像不像是你的工資、獎金等各種各樣的外部獎勵?

      如將外部評價當(dāng)作參考坐標(biāo),我們的情緒就很容易出現(xiàn)波動。因?yàn)椋獠恳蛩匚覀兛刂撇涣耍苋菀灼x我們的內(nèi)部期望,讓我們不滿,讓我們牢騷滿腹。不滿和牢騷等負(fù)性情緒讓我們痛苦,為了減少痛苦,我們就只好降低內(nèi)部期望,最常見的方法就是減少工作的努力程度。

      一個人之所以會形成外部評價體系,最主要的原因是父母喜歡控制他。父母太喜歡使用口頭獎懲、物質(zhì)獎懲等控制孩子,而不去理會孩子自己的動機(jī)。久而久之,孩子就忘記了自己的原初動機(jī),做什么都很在乎外部的評價。上學(xué)時,他忘記了學(xué)習(xí)的原初動機(jī)---好奇心和學(xué)習(xí)的快樂;工作后,他又忘記了工作的原初動機(jī)---成長的快樂,上司的評價和收入的起伏成了他工作的最大快樂和痛苦的源頭。

      切記:外部評價系統(tǒng)經(jīng)常是一種家族遺傳,但你完全可以打破它,從現(xiàn)在開始培育自己的內(nèi)部評價體系,讓學(xué)習(xí)和工作變成“為自己而玩”。

      (三)規(guī)劃的寓言:把一張紙折疊51次

      想象一下,你手里有一張足夠大的白紙。現(xiàn)在,你的任務(wù)是,把它折疊51次。那么,它有多高?

      一個冰箱?一層樓?或者一棟摩天大廈那么高?不是,差太多了,這個厚度超過了地球和太陽之間的距離。

      【心理點(diǎn)評】

      到現(xiàn)在,我拿這個寓言問過十幾個人了,只有兩個人說,這可能是一個想象不到的高度,而其他人想到的最高的高度也就是一棟摩天大廈那么高。

      折疊51次的高度如此恐怖,但如果僅僅是將51張白紙疊在一起呢?

      這個對比讓不少人感到震撼。因?yàn)闆]有方向、缺乏規(guī)劃的人生,就像是將51張白紙簡單疊在一起。今天做做這個,明天做做那個,每次努力之間并沒有一個聯(lián)系。這樣一來,哪怕每個工作都做得非常出色,它們對你的整個人生來說也不過是簡單的疊加而已。

      當(dāng)然,人生比這個寓言更復(fù)雜一些。有些人,一生認(rèn)定一個簡單的方向而堅定地做下去,他們的人生最后達(dá)到了別人不可企及的高度。譬如,我一個朋友的人生方向是英語,他花了十?dāng)?shù)年努力,僅單詞的記憶量就達(dá)到了十幾萬之多,在這一點(diǎn)上達(dá)到了一般人無法企及的高度。

      也有些人,他們的人生方向也很明確,譬如開公司做老板,這樣,他們就需要很多技能???專業(yè)技能、管理技能、溝通技能、決策技能等等。他們可能會在一開始嘗試做做這個,又嘗試做做那個,沒有一樣是特別精通的,但最后,開公司做老板的這個方向?qū)⒁郧暗倪@些看似零散的努力統(tǒng)合到一起,這也是一種復(fù)雜的人生折疊,而不是簡單的疊加。

      切記:看得見的力量比看不見的力量更有用

      現(xiàn)在,流行從看不見的地方尋找答案,譬如潛能開發(fā),譬如成功學(xué),以為我們的人生要靠一些奇跡才能得救。但是,在我看來,東莞恒緣心理咨詢中心的咨詢師毛正強(qiáng)說得更正確,“通過規(guī)劃利用好現(xiàn)有的能力遠(yuǎn)比挖掘所謂的潛能更重要。”

      (四)逃避的寓言:小貓?zhí)娱_影子的招數(shù)

      “影子真討厭!”小貓湯姆和托比都這樣想,“我們一定要擺脫它。”

      然而,無論走到哪里,湯姆和托比發(fā)現(xiàn),只要一出現(xiàn)陽光,它們就會看到令它們抓狂的自己的影子。

      不過,湯姆和托比最后終于都找到了各自的解決辦法。湯姆的方法是,永遠(yuǎn)閉著眼睛。托比的辦法則是,永遠(yuǎn)待在其他東西的陰影里。

      【心理點(diǎn)評】

      這個寓言說明,一個小的心理問題是如何變成更大的心理問題的。

      可以說,一切心理問題都源自對事實(shí)的扭曲。什么事實(shí)呢?主要就是那些令我們痛苦的負(fù)性事件。

      因?yàn)橥纯嗟捏w驗(yàn),我們不愿意去面對這個負(fù)性事件。但是,一旦發(fā)生過,這樣的負(fù)性事件就注定要伴隨我們一生,我們能做的,最多不過是將它們壓抑到潛意識中去,這就是所謂的忘記。

      但是,它們在潛意識中仍然會一如既往地發(fā)揮作用。并且,哪怕我們對事實(shí)遺忘得再厲害,這些事實(shí)所伴隨的痛苦仍然會襲擊我們,讓我們莫名其妙地傷心難過,而且無法抑制。這種疼痛讓我們進(jìn)一步努力去逃避。

      發(fā)展到最后,通常的解決辦法就是這兩個:要么,我們像小貓湯姆一樣,徹底扭曲自己的體驗(yàn),對生命中所有重要的負(fù)性事實(shí)都視而不見;要么,我們像小貓托比一樣,干脆投靠痛苦,把自己的所有事情都搞得非常糟糕,既然一切都那么糟糕,那個讓自己最傷心的原初事件就不是那么疼了。

      白云心理醫(yī)院的咨詢師李凌說,99%的吸毒者有過痛苦的遭遇。他們之所以吸毒,是為了讓自己逃避這些痛苦。這就像是躲進(jìn)陰影里,痛苦的事實(shí)是一個魔鬼,為了躲避這個魔鬼,干脆把自己賣給更大的魔鬼。

      還有很多酗酒的成人,他們有過一個酗酒而暴虐的老爸,挨過老爸的不少折磨。為了忘記這個痛苦,他們學(xué)會了同樣的方法。

      除了這些看得見的錯誤方法外,我們?nèi)祟愡€發(fā)明了無數(shù)種形形色色的方法去逃避痛苦,弗洛伊德將這些方式稱為心理防御機(jī)制。太痛苦的時候,這些防御機(jī)制是必要的,但糟糕的是,如果心理防御機(jī)制對事實(shí)扭曲得太厲害,它會帶出更多的心理問題,譬如強(qiáng)迫癥、社交焦慮癥、多重人格,甚至精神分裂癥等。

      真正抵達(dá)健康的方法只有一個--直面痛苦。直面痛苦的人會從痛苦中得到許多意想不到的收獲,它們最終會變成當(dāng)事人的生命財富。

      切記:陰影和光明一樣,都是人生的財富。

      一個最重要的心理規(guī)律是,無論多么痛苦的事情,你都是逃不掉的。你只能去勇敢地面對它,化解它,超越它,最后和它達(dá)成和解。如果你自己暫時缺乏力量,你可以尋找?guī)椭瑢ふ矣H友的幫助,或?qū)ふ覍I(yè)的幫助,讓你信任的人陪著你一起去面對這些痛苦的事情。

      美國心理學(xué)家羅杰斯曾是最孤獨(dú)的人,但當(dāng)他面對這個事實(shí)并化解后,他成了真正的人際關(guān)系大師;美國心理學(xué)家弗蘭克有一個暴虐而酗酒的繼父和一個糟糕的母親,但當(dāng)他挑戰(zhàn)這個事實(shí)并最終從心中原諒了父母后,他成了治療這方面問題的專家;日本心理學(xué)家森田正馬曾是嚴(yán)重的神經(jīng)癥患者,但他通過挑戰(zhàn)這個事實(shí)并最終發(fā)明出了森田療法……他們生命中最痛苦的事實(shí)最后都變成了他們最重要的財富。你,一樣也可以做到。

      (五)行動的寓言--螃蟹、貓頭鷹和蝙蝠

      螃蟹、貓頭鷹和蝙蝠去上惡習(xí)補(bǔ)習(xí)班。數(shù)年過后,它們都順利畢業(yè)并獲得博士學(xué)位。不過,螃蟹仍橫行,貓頭鷹仍白天睡覺晚上活動,蝙蝠仍倒懸。

      【心理點(diǎn)評】

      這是黃永玉大師的一個寓言故事,它的寓意很簡單:行動比知識重要

      用到心理健康中,這個寓言也發(fā)人深省。

      心理學(xué)的知識堪稱博大精深。但是,再多再好的心理學(xué)知識也不能自動幫助一個人變得更健康。其實(shí),我知道的一些學(xué)過多年心理學(xué)的人士,他們學(xué)心理學(xué)的目的之一就是要治自己,但學(xué)了這么多年以后,他們的問題依舊。

      之所以出現(xiàn)這種情況,一個很重要的原因是,他們沒有身體力行,那樣知識就只是遙遠(yuǎn)的知識,知識并沒有化成他們自己的生命體驗(yàn)。

      我的一個喜歡心理學(xué)的朋友,曾被多名心理學(xué)人士認(rèn)為不敏感,不適合學(xué)心理學(xué)。但事實(shí)證明,這種揣測并不正確。他是不夠敏感,但他有一個非常大的優(yōu)點(diǎn):知道一個好知識,就立即在自己的生命中去執(zhí)行。這樣一來,那些遙遠(yuǎn)的知識就變成了真切的生命體驗(yàn),他不必“懂”太多,就可以幫助自己,并幫助很多人。

      如果說,高敏感度是一種天才素質(zhì),那么高行動力是更重要的天才素質(zhì)。

      這個寓言還可以引申出另一種含義:不要太指望神秘的心理治療的魔力。最重要的力量永遠(yuǎn)在你自己的身上,奧秘的知識、玄妙的潛能開發(fā)、炫目的成功學(xué)等等,都遠(yuǎn)不如你自己身上已有的力量重要。我們習(xí)慣去外面尋找答案,去別人那里尋找力量,結(jié)果忘記了力量就在自己身上。

      切記:別人的知識不能自動地拯救你

      如果一些連珠的妙語打動了你,如果一些文字或新信條啟發(fā)了你。那么,這些別人的文字和經(jīng)驗(yàn)都只是一個開始,更重要的是,你把你以為好的知識真正運(yùn)用到你自己的生命中去。

      猶太哲學(xué)家馬丁?布伯的這句話,我一直認(rèn)為是最重要的:

      你必須自己開始。假如你自己不以積極的愛去深入生存,假如你不以自己的方式去為自己揭示生存的意義,那么對你來說,生存就將依然是沒有意義的。  

          (六)放棄的寓言:蜜蜂與鮮花

      玫瑰花枯萎了,蜜蜂仍拼命吮吸,因?yàn)樗郧皬倪@朵花上吮吸過甜蜜。但是,現(xiàn)在在這朵花上,蜜蜂吮吸的是毒汁。

      蜜蜂知道這一點(diǎn),因?yàn)槎局酀c以前的味道是天壤之別。于是,蜜蜂憤不過,它吸一口就抬起頭來向整個世界抱怨,為什么味道變了?!

      終于有一天,不知道是什么原因,蜜蜂振動翅膀,飛高了一點(diǎn)。這時,它發(fā)現(xiàn),枯萎的玫瑰花周圍,處處是鮮花。

      【心理點(diǎn)評】

      這是關(guān)于愛情的寓言,是一位年輕的語文老師的真實(shí)感悟。

      有一段時間,她失戀了,很痛苦,一直想約我聊聊,希望我的心理學(xué)知識能給她一些幫助。我們一直約時間,但快兩個月過去了,兩人的時間總不能碰巧湊在一起。

      最后一次約她,她說:“謝謝!不用了,我想明白了。”

      原來,她剛從九寨溝回來。失戀的痛苦仍在糾纏她,讓她神情恍惚,不能享受九寨溝的美麗。不經(jīng)意的時候,她留意到一只小蜜蜂正在一朵鮮花上采蜜。那一剎那間,她腦子里電閃雷鳴般地出現(xiàn)了一句話:“枯萎的鮮花上,蜜蜂只能吮吸到毒汁。”

      當(dāng)然,大自然中的小蜜蜂不會這么做,只有人類才這么傻,她這句話里的蜜蜂當(dāng)然指她自己。這一剎那,她頓悟出了放棄的道理。以前,她想讓我?guī)退叱鰜恚岚蚱鋵?shí)就長在她自己身上,她想飛就能飛。

      放棄并不容易,愛情中的放棄尤其令人痛苦。因?yàn)椋瑦矍槭菍ξ覀冇仔r候的親子關(guān)系的復(fù)制。幼小的孩子,無論從哪個方面看,都離不開爸爸媽媽。如果爸爸媽媽完全否定他,那對他來說就意味著死亡,這是終極的傷害和恐懼。我們多多少少都曾體驗(yàn)過被爸爸媽媽否定的痛苦和恐懼,所以,當(dāng)愛情???這個親子關(guān)系的復(fù)制品再一次讓我們體驗(yàn)這種痛苦和恐懼時,我們的情緒很容易變得非常糟糕。

      不過,愛情和親子關(guān)系相比,有一個巨大的差別:小時候,我們無能為力,一切都是父母說了算;但現(xiàn)在,我們長大了,我們有力量自己去選擇自己的命運(yùn)。可以說,童年時,我們是沒有翅膀的小蜜蜂,但現(xiàn)在,我們有了一雙強(qiáng)有力的翅膀了。

      但是,當(dāng)深深地陷入愛情時,我們會回歸童年,我們會忘記自己有一雙可以飛翔的翅膀。等我們自己悟出這一點(diǎn)后,愛情就不再會是對親子關(guān)系的自動復(fù)制,我們的愛情就獲得了自由,就有了放棄的力量。

      切記:愛情是兩個人的事情,兩個完全平等的、有獨(dú)立人格的人的事情。你可以努力,但不是說,你努力了就一定會有效果,因?yàn)榱硪粋€人,你并不能左右。

      所以,無論你多么在乎一次愛情,如果另一個人堅決要離開你,請尊重他的選擇。

      并且,還要記得,你不再是童年,只能聽?wèi){痛苦的折磨。你已成人,你有一雙強(qiáng)有力的翅膀,你完全可以飛出一個已經(jīng)變成毒藥的關(guān)系。

      (七)親密的寓言:獨(dú)一無二的玫瑰

      小王子有一個小小的星球,星球上忽然綻放了一朵嬌艷的玫瑰花。以前,這個星球上只有一些無名的小花,小王子從來沒有見過這么美麗的花,他愛上這朵玫瑰,細(xì)心地呵護(hù)她。

      那一段日子,他以為,這是一朵人世間唯一的花,只有他的星球上才有,其他的地方都不存在。

      然而,等他來到地球上,發(fā)現(xiàn)僅僅一個花園里就有5000朵完全一樣的這種花朵。這時,他才知道,他有的只是一朵普通的花。

      一開始,這個發(fā)現(xiàn),讓小王子非常傷心。但最后,小王子明白,盡管世界上有無數(shù)朵玫瑰花,但他的星球上那朵,仍然是獨(dú)一無二的,因?yàn)槟嵌涿倒寤ǎ麧补噙^,給她罩過花罩,用屏風(fēng)保護(hù)過,除過她身上的毛蟲,還傾聽過她的怨艾和自詡,聆聽過她的沉默……一句話,他馴服了她,她也馴服了他,她是他獨(dú)一無二的玫瑰。

      “正因?yàn)槟銥槟愕拿倒寤ㄙM(fèi)了時間,這才使你的玫瑰變得如此重要。”一只被小王子馴服的狐貍對他說。

      【心理點(diǎn)評】

      這是法國名著《小王子》中一個有名的寓言故事,我曾讀過十?dāng)?shù)遍,但仍然是直到2005年才明白這一點(diǎn)。

      面對著5000朵玫瑰花,小王子說:“你們很美,但你們是空虛的,沒有人能為你們?nèi)ニ馈?#8221;

      只有傾注了愛,親密關(guān)系才有意義。但是,現(xiàn)在我們越來越流行空虛的“親密關(guān)系”,最典型的就是因網(wǎng)絡(luò)而泛濫的一夜情。

      我們急著去擁有。仿佛是,每多擁有過一朵玫瑰,自己的生命價值就多了一分。網(wǎng)絡(luò)時代,擁有過數(shù)十名情人,已不再是太罕見的事情。但我所了解的這些濫情者,沒有一個是不空虛的。他們并不享受關(guān)系,他們只享受征服。

      “征服欲望越強(qiáng)的人,對于關(guān)系的親密度越?jīng)]有興趣。”廣州白云心理醫(yī)院的咨詢師榮瑋齡說,“沒有擁有前,他們會想盡一切辦法拉近關(guān)系的距離。但一旦擁有后,他們會迅速喪失對這個親密關(guān)系的興趣。征服欲望越強(qiáng),喪失的速度越快。”

      對于這樣的人,一個玫瑰園比起一朵獨(dú)一無二的玫瑰花來,更有吸引力。

      然而,關(guān)系的美,正在乎兩人的投入程度和被馴服程度。當(dāng)兩個人都自然而然地去投入,自然而然地被馴服后,關(guān)系就會變成人生養(yǎng)料,讓一個人的生命變得更充盈、更美好。

      但是,無論多么親密。小王子仍是小王子,玫瑰仍是玫瑰,他們?nèi)匀皇莾蓚€個體。如果玫瑰不讓小王子旅行,或者小王子旅行時非將玫瑰花帶在身上,兩者一定要黏在一起,關(guān)系就不再是享受,而會變成一個累贅。

      切記:一個既親密而又相互獨(dú)立的關(guān)系,勝于一千個一般的關(guān)系。這樣的關(guān)系,會把我們從不可救藥的孤獨(dú)感中拯救出來,是我們生命中最重要的一種救贖。

      如果不曾體驗(yàn)過,你就無法知道這種關(guān)系的美.

    posted @ 2009-02-09 22:51 何楊| 編輯 收藏

         摘要: 這應(yīng)該是最后一次用字符串去分析解讀SQL了,效果比上次要好些,但在函數(shù)和別名方面有點(diǎn)差強(qiáng)人意,再想前進(jìn)一定要用到詞法分析,語法樹和表達(dá)式解析等,字符串解讀差不多已經(jīng)到極限了。 package com.sitinspring.common.sqlformatter2; /** *//**  * SQL整形器類  * @aut...  閱讀全文
    posted @ 2009-02-05 22:57 何楊 閱讀(411) | 評論 (0)編輯 收藏

         摘要: 在函數(shù)和別名處理上還有些問題,但比上一版已經(jīng)好一些了。現(xiàn)在單句多句都能整形了。   1原始的Sql為:   2select ( * )  from dual   3解析后的的Sql為:   4select   5 &...  閱讀全文
    posted @ 2009-02-05 16:19 何楊 閱讀(563) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共28頁: First 上一頁 20 21 22 23 24 25 26 27 28 下一頁 
    主站蜘蛛池模板: 亚洲av无码成人精品区一本二本| 中文字幕亚洲一区二区va在线| 久久精品九九亚洲精品| 你懂的免费在线观看| 亚洲日本乱码在线观看| 免费毛片在线看不用播放器| 国产成人A亚洲精V品无码| 在线观看免费无码视频| 亚洲爆乳无码一区二区三区| 久久久精品免费国产四虎| 亚洲短视频男人的影院| 97性无码区免费| 亚洲中文字幕久久无码| 免费欧洲美女牲交视频| www免费黄色网| 亚洲男人第一av网站| AV片在线观看免费| 国产亚洲日韩在线a不卡| 久久精品国产精品亚洲下载| 国产啪精品视频网站免费尤物| 亚洲国产成人久久精品动漫 | 黄页免费视频播放在线播放| 亚洲国产黄在线观看| 青青操免费在线视频| 91情国产l精品国产亚洲区| 国产成人免费爽爽爽视频| 精品成人一区二区三区免费视频| 久久久青草青青国产亚洲免观| 一级毛片在线观看免费| 亚洲免费综合色在线视频| 中文字幕精品无码亚洲字| 免费A级毛片无码A∨免费| 豆国产96在线|亚洲| 亚洲av无码一区二区三区不卡 | 国产亚洲一区二区三区在线不卡| 一级毛片免费观看| 亚洲国产精品无码久久| 亚洲va中文字幕无码久久不卡 | 一区二区在线视频免费观看| 久久狠狠高潮亚洲精品| 免费国产一级特黄久久|