隨筆 - 40, 文章 - 0, 評(píng)論 - 20, 引用 - 0
          數(shù)據(jù)加載中……

          2006年4月4日

          J2me開(kāi)發(fā)


          一些資料:




          http://www.csdn.net/subject/j2meTools/


          http://news.csdn.net/news/newstopic/24/24127.shtml



          posted @ 2006-11-01 15:30 月亮 閱讀(213) | 評(píng)論 (0)編輯 收藏

          游戲

          有個(gè)輸家,就一定有個(gè)贏家。我是輸家,但我四周望了一圈,卻沒(méi)看到半個(gè)贏家,我想,贏家應(yīng)該也是我了,你說(shuō)呢?

          posted @ 2006-09-12 15:35 月亮 閱讀(208) | 評(píng)論 (1)編輯 收藏

          vi命令詳解

          vi命令是unix下常用而重要命令,可在全屏幕方式下編輯一個(gè)或多個(gè)文件。若在vi執(zhí)行時(shí)?
          沒(méi)有指定一個(gè)文件,那么vi命令會(huì)自動(dòng)產(chǎn)生一個(gè)無(wú)名的空的工作文件。若指定的文件不存在,?
          那么就按指定的文件名創(chuàng)建一個(gè)新的文件。若對(duì)文件的修改不保存的話,v?i命令并不改變?cè)?
          來(lái)文件的內(nèi)容。?

            注意:vi命令并不鎖住所編輯的文件,因此多個(gè)用戶可能在同時(shí)編輯一個(gè)文件,那么最后?
          保存的文件版本將被保留。?

          下面是vi命令使用的一些選項(xiàng)及含義:??????????

            -c?sub-command?在對(duì)指定的文件編輯前,先執(zhí)行指定的命令?sub-command?.?

            -r?filename?恢復(fù)指定的文件filename?.??????????

            -R?將指定的文件以只讀的方式放入編輯器中,這樣不會(huì)保存對(duì)文件的任何修?改。?

            -y?number?將編輯窗口的大小設(shè)為number行。??????????

            下面是vi編輯所處的三種模式:??????????

            .命令模式?進(jìn)入vi時(shí)所處的模式。在此模式下用戶可輸入各種子命令對(duì)進(jìn)行*作,如刪除行、?
          粘貼行、移向下一個(gè)字、移向不同行等。?

            .文本輸入模式?在此模式下可以修改一行的內(nèi)容并增添新行。在命令模式下鍵入a?、i?或?
          c鍵可進(jìn)入文本輸入模式,按Escape鍵可返回命令模式。?

            .命令項(xiàng)模式?在此模式下,可以通過(guò)子命令輸入更多的參數(shù)。如:w子命令要求輸入一文?
          件名,"/"子命令要求輸入一個(gè)查找項(xiàng)。用戶使用Escape鍵返回命令模式。?


          下面是自命令模式下執(zhí)行的,在同一行上移動(dòng)的自命令:??????????

            h?將光標(biāo)左移一格。??????????

            l?將光標(biāo)右移一格。??????????

            j?將光標(biāo)下移一格。??????????

            k?將光標(biāo)上移一格。??????????

            w?將光標(biāo)移到下一個(gè)小字的前面。??????????

            W?將光標(biāo)移到下一個(gè)大字的前面。??????????

            b?將光標(biāo)移到前一個(gè)小字的前面。??????????

            B?將光標(biāo)移到前一個(gè)大字的前面。??????????

            e?將光標(biāo)移到下一個(gè)小字的后面。??????????

            E?將光標(biāo)移到前一個(gè)大字的后面。??????????

            fc?把光標(biāo)移到同一行的下一個(gè)c字符處。??????????

            Fc?把光標(biāo)移到同一行的前一個(gè)c字符處。??????????

            tc?把光標(biāo)移到同一行的下一個(gè)字符c的前一格。??????????

            Tc?把光標(biāo)移到同一行的前一個(gè)字符c的后一格。??????????

            number|?把光標(biāo)移到遞number列上。??????????

          下面是命令模式下在行間移動(dòng)的子命令:??????????

            +或Enter?把光標(biāo)移至下一行第一個(gè)非空白字符。??????????

            -?把光標(biāo)移至上一行第一個(gè)非空白字符。??????????

            0?把光標(biāo)移到當(dāng)前行的第一個(gè)字符處。??????????

            $?把光標(biāo)移到當(dāng)前行的最后一個(gè)字符處。??????????

            H?把光標(biāo)移到屏幕最頂端一行。??????????

            L?把光標(biāo)移到屏幕最底端一行。??????????

            M?把光標(biāo)移到屏幕中間。??????????

          下面是命令模式下改變屏幕顯示的子命令:??????????

            z-?把當(dāng)前行作為屏幕的最后一行,并重新顯示屏幕。??????????

            z.?把當(dāng)前行作為屏幕的中間一行,并重新顯示屏幕。??????????

            Ctrl+l?重新顯示屏幕當(dāng)前內(nèi)容。??????????

            /pattern/z-?尋找pattern的下一個(gè)位置,并把所在行設(shè)為屏幕的最后一行。?

          下面是在命令模式下用來(lái)顯示頁(yè)面的子命令:??????????

            Ctrl?+?f向后滾一頁(yè)。??????????

            Ctrl?+?d向后滾半頁(yè)。??????????

            Ctrl?+?b向前滾一頁(yè)。??????????

            Ctrl?+?u向前滾半頁(yè)。??????????

            Ctrl?+?e屏幕向下滾一行。??????????

            Ctrl?+?y屏幕項(xiàng)上滾一行。??????????

          下面是在命令模式下用來(lái)查找字符串所使用的子命令:??????????

            /pattern?向后尋找指定的pattern?,若遇到文件尾,則從頭再開(kāi)始。?

            ?pattern?向前尋找指定的pattern?,若遇到文件頭,則從尾再開(kāi)始。?

            n?在上次指定的方向上,再次執(zhí)行上次定義的查找。??????????

            N?在上次指定的方向的相反方向上,再次執(zhí)行上次定義的查找。??????????

            /pattern/+number?將光標(biāo)停在包含pattern的行后面第number行上。?

            /pattern/-number?將光標(biāo)停在包含pattern的行前面第number行上。?

            %?移到匹配的"()"或"{}"上。??????????

          下面是在文本輸入模式下用來(lái)輸入文本的子命令(用戶可在任何時(shí)候按Escape返回到命令模式):?

            a?在光標(biāo)之后開(kāi)始輸入文本。??????????

            A在行尾開(kāi)始輸入文本。??????????

            i在光標(biāo)之前開(kāi)始輸入文本。??????????

            I在行首第一個(gè)非空白字符前輸入文本。??????????

            o在光標(biāo)所在行后插入一空行。??????????

            O在光標(biāo)所在行前插入一空行。??????????

          下面是在命令模式下改變文本所使用的子命令(用戶可在任何的時(shí)候按Escape鍵返回到命令模式):?

            cc或S?修改一整行。??????????

            C?改變一行光標(biāo)位置以后的部分。??????????

            cw?改變光標(biāo)所在單詞。??????????

            dd刪除當(dāng)前行。??????????

            D?刪除光標(biāo)所在行光標(biāo)后面的內(nèi)容。??????????

            dw刪除光標(biāo)所在的單詞。??????????

            J?把下一行內(nèi)容加到本行行尾。??????????

            rc把光符所在字符替換成c?.??????????

            R?覆蓋本行內(nèi)容。??????????

            u恢復(fù)上一次的修改。??????????

            x刪除光標(biāo)所在的字符。??????????

            ~?改變光標(biāo)所在出字符的大小寫(xiě)。??????????

            .?重復(fù)上一個(gè)*作。??????????

            <<把當(dāng)前行移到左邊。??????????

            >>把當(dāng)前行移到右邊。??????????

          下面是用于文件中拷貝文本的字命令:??????????

            p?將緩沖區(qū)內(nèi)容取到光標(biāo)所在行的下面一行。??????????

            P?將緩沖區(qū)內(nèi)容取到光標(biāo)所在行的上面一行。??????????

            "bd?將文本刪除至有名緩沖區(qū)b?.??????????

            "bp?張貼有名緩沖區(qū)b中內(nèi)容。??????????

            yy把當(dāng)前行放入緩沖區(qū)。??????????

            Y?把當(dāng)前行放入緩沖區(qū)。??????????

            Yw把光標(biāo)所在的單詞放入緩沖區(qū)。??????????

          下面是用于保存文件的子命令:??????????

            :w?回寫(xiě)修改后的文件。??????????

            :w?filename?當(dāng)filename不存在時(shí),把修改后的文件存為文件filename?,當(dāng)文件filename?
          存在時(shí),報(bào)錯(cuò)。?

            !w?filename?如果文件filename存在時(shí),把修改后的文件保存為文件filename?.?

          下面列出了在vi編輯的多個(gè)文件之間切換所用的子命令:??????????

            :n開(kāi)始編輯vi激活的文件列表中的下一個(gè)文件。??????????

            :n?filenames?指定將被編輯的新的文件列表。??????????

          下面列出了用于在當(dāng)前文件和另外一個(gè)文件間切換的子命令:??????????

            :e?filename?使用filename激活vi?(在vi中裝入另一個(gè)文件filename)。?

            e!重新裝入當(dāng)前文件,若當(dāng)前文件有改動(dòng),則丟棄以前的改動(dòng)。??????????

            :e+filename?使用filename激活vi?,并從文件尾部開(kāi)始編輯。?

            :e+number?filename?使用filename激活vi?,并在第number行開(kāi)始編輯。?

            :e#?開(kāi)始編輯另外一個(gè)文件。??????????

          下面是在本文件中加入其他文件代碼所使用的子命令:??????????

            :r?filename讀取filename文件,并將其內(nèi)容加到當(dāng)前文件后。???

            :r?!?command執(zhí)行command文件,并將其輸出加到當(dāng)前文件后。???

          下面是vi中其他的子命令:??????????

            ctrl+g?取得正在編輯文件的有關(guān)信息。??????????

            :sh啟動(dòng)sh?,從sh中返回可用exit或ctrl+d?.??????????

            :!?Command?執(zhí)行命令command?.??????????

            !!重新執(zhí)行上次的:!?Command子命令。??????????

            :q退出vi?,若用戶對(duì)編輯的文件有所修改,系統(tǒng)不會(huì)讓用戶使用q命令退出。???

            :q!退出vi而不管是否對(duì)文件有改動(dòng)。??????????

            ZZ或:wq?保存對(duì)文件的修改并退出vi?.??????????

            用戶可在一個(gè)特殊的文件.exrc中定義特殊的vi命令。在vi中使用這些命令時(shí),必須在該?
          命令前加上一個(gè)冒號(hào)(?:)?。

          posted @ 2006-05-13 15:13 月亮 閱讀(343) | 評(píng)論 (0)編輯 收藏

          精通Log4j

          ?log4j雖然總的來(lái)說(shuō)是比較容易使用的,但是要是想比較精通的操縱它還是有很多地方值得探討的。
          ??? 這幾天有空,把項(xiàng)目中大家用到的log4j實(shí)現(xiàn)的功能分了一下類,大致分為下面三類:
          ??? <1>所有的日志信息都輸出到log.log.
          ??? <2>對(duì)于一些特殊的日志(如啟動(dòng)時(shí)候的日志),輸出到log/startup/startup.log.
          ??? <3>對(duì)于某些特殊包下面的日志,如com.aspire包下面的error信息都輸出到error.log???
          ??? 有了這幾個(gè)功能,相信對(duì)于大部分的系統(tǒng)都是夠用的了,下面這個(gè)例子就是實(shí)現(xiàn)了這幾個(gè)功能:
          ??? (至于其他的一些配置,如格式這些的就不說(shuō)明,有很多這種資料)
          ???
          ??? ***********? log4j 配置文件? ************???
          ???
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
          <log4j:configuration xmlns:log4j="

          <appender name="file" class="org.apache.log4j.RollingFileAppender">
          ?<param name="File" value="log.log"/>
          ?<layout class="org.apache.log4j.PatternLayout">
          ?<param name="ConversionPattern" value=" %d{ISO8601} [%c]- %m%n"/>
          ?</layout>
          </appender>

          <appender name="error" class="org.apache.log4j.RollingFileAppender">
          ??<param name="File" value="error.log"/>
          ??<param name="MaxBackupIndex" value="300"/>
          ??<param name="Encoding" value="GB2312"/>
          ??<param name="MaxFileSize" value="20MB"/>
          ??<layout class="org.apache.log4j.PatternLayout">
          ???<param name="ConversionPattern" value="%d{ISO8601} %p [%c] - [%m]%n"/>
          ??</layout>
          ??? <filter class="org.apache.log4j.varia.LevelRangeFilter">
          ??<!-- 過(guò)濾,只記錄error信息-->
          ??<param name="LevelMin" value="error"/>
          ??<param name="LevelMax" value="error"/>
          ??<param name="acceptOnMatch" value="true"/>
          ??? </filter>
          </appender>
          <appender name="startup" class="com.aspire.TimeSizeRollingFileAppender">
          ??<!--該類使自己從FileAppender派生,可以自己控制輸出文件的路徑 -->
          ??<param name="File" value="log/startup/startup.log" />
          ??<param name="Encoding" value="GBK" />
          ??<layout class="org.apache.log4j.PatternLayout">
          ???<param name="ConversionPattern" value="%m %d{ISO8601}- %m%n %p %l%n" />
          ??</layout>
          </appender>

          <logger name="biz.startup">
          <!--Logger logger = Logger.getLogger("biz.startup") 可以這樣來(lái)調(diào)用本logger-->
          ??<level value="debug" />
          ??<appender-ref ref="startup" />
          </logger>

          <logger name="com.aspire" additivity="false">
          <!--Log log = LogFactory.getLog(TestLog4j.class) 此時(shí)如果TestLog4j
          ??? 位于com.aspire包下面,那么使用本logger
          ?-->
          ??<level value="debug"/>
          ??<appender-ref ref="error"/>
          </logger>
          <root>
          <level value="info"/>
          <!-- 默認(rèn)輸出到log.log-->
          <appender-ref ref="file"/>
          </root>
          </log4j:configuration>

          ***********? log4j 配置文件結(jié)束 ************

          **********? 派生的TimeSizeRollingFileAppender類*****
          package com.aspire;

          import org.apache.log4j.FileAppender;
          import org.apache.log4j.spi.ErrorCode;
          import java.io.File;
          import java.io.IOException;

          public class TimeSizeRollingFileAppender
          ??? extends FileAppender
          ??? implements ErrorCode {

          ? private final static String FS = System.getProperty("file.separator");
          ? public TimeSizeRollingFileAppender() {
          ? }
          ? public void setFile(String file) {
          ??? String val = file.trim();
          ??? File domain = new File(".");
          ??? try {
          ????? fileName = domain.getCanonicalPath() + FS + val;
          ??? }
          ??? catch (IOException ex) {
          ????? ex.printStackTrace();
          ??? }
          ? }
          }

          ********** TimeSizeRollingFileAppender 類結(jié)束 ******

          ************ 調(diào)用示例 TestLog4j類 **************
          package com.aspire;

          import org.apache.log4j.Logger;
          import org.apache.log4j.LogManager;
          import org.apache.commons.logging.LogFactory;
          import org.apache.log4j.xml.DOMConfigurator;
          import org.apache.commons.logging.Log;

          public class TestLog4j {
          ? private Logger logger = Logger.getLogger("biz.startup");
          ? private Log log = LogFactory.getLog(TestLog4j.class);

          ? public static void config(){
          ??? DOMConfigurator.configure("conf\\log4jConf.xml");
          ? }
          ? public void Test(){
          ??? /**
          ???? * error > warn > info > debug
          ???? */
          ??? logger.error("*****error*****");
          ??? logger.debug("****debug*****");
          ??? logger.warn("*****warn******");
          ??? logger.info("*****info******");
          ??? log.error("中華之崛起!");
          ? }
          ? public static void main(String [] argv){
          ??? TestLog4j t = new TestLog4j();
          ??? TestLog4j.config();
          ??? t.Test();
          ? }
          }

          ***************? TestLog4j end ***********

          posted @ 2006-04-26 12:59 月亮 閱讀(403) | 評(píng)論 (0)編輯 收藏

          23種經(jīng)典的設(shè)計(jì)模式_Prototype模式(原形模式)

          很多時(shí)候,創(chuàng)建對(duì)象的時(shí)候,只是在某些屬性值上有區(qū)別,而大部分都很相似,但是這樣的對(duì)象的初始化相對(duì)來(lái)說(shuō)比較復(fù)雜,而且
          需要耗費(fèi)較長(zhǎng)的時(shí)間或資源,這種情況下,我們可以考慮使用Prototype模式。我覺(jué)得這種模式實(shí)用于這樣的情況:如果該類的用戶對(duì)于該
          類的對(duì)象是怎么創(chuàng)建的,對(duì)類的內(nèi)部結(jié)構(gòu)這些都不關(guān)心的情況,并且該類的創(chuàng)建過(guò)程比較費(fèi)時(shí)或資源時(shí),可以考慮使用該模式。下面是該模式的
          一個(gè)例子:

          Prototype 類

          package com.moonsoft;

          import java.lang.Cloneable;
          public class Prototype implements Cloneable {
          ?
          ?public String myname;
          ?
          ?Prototype(){
          ??System.out.println("start:"+System.currentTimeMillis());
          ??for( int i=0; i< 9999999; i++){???
          ??}
          ??System.out.println("end:"+System.currentTimeMillis());
          ?}
          ?
          ?public Object clone(){
          ??Object o = null;
          ??try{
          ???o = super.clone();???
          ??}
          ??catch(CloneNotSupportedException ex){
          ???ex.printStackTrace();
          ??}
          ??return o;
          ?}
          ?
          ?public void whoami(){
          ??System.out.println(myname);
          ?}
          }


          測(cè)試類

          package com.moonsoft;

          public class Test {
          ?
          ?public static void main(String [] argv){
          ??Prototype? p = new Prototype();
          ??p.whoami();
          ??p.myname = "loucy";
          ??Prototype? p1 = (Prototype)p.clone();
          ??p1.whoami();?
          ??
          ?}
          }

          posted @ 2006-04-16 15:21 月亮 閱讀(558) | 評(píng)論 (0)編輯 收藏

          小技巧_jsp緩存問(wèn)題的解決

          如果一直為jsp的緩存問(wèn)題困擾的話,可以試試在jsp中加入以下幾句話:

          <head>
          <meta http-equiv="Cache-Control" content="max-age=0" forua="true" />
          <meta http-equiv="Cache-Control" content="no-cache" forua="true"/>
          <meta http-equiv="Cache-Control" content="must-revalidate" forua="true" />
          </head>

          max-age=30 就表示緩存的最長(zhǎng)存在時(shí)間是30s,no-cache表示無(wú)緩存,must-revalidate表示每次訪問(wèn)必須重新驗(yàn)證是否有更新!

          posted @ 2006-04-04 15:11 月亮 閱讀(666) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 綦江县| 麟游县| 郸城县| 铅山县| 长丰县| 秦皇岛市| 六枝特区| 车致| 沁阳市| 荣昌县| 义马市| 开远市| 惠东县| 弋阳县| 西丰县| 古交市| 黄平县| 南澳县| 旬阳县| 华坪县| 靖安县| 凤阳县| 寻甸| 新龙县| 木兰县| 山阳县| 哈尔滨市| 昂仁县| 定襄县| 保靖县| 哈巴河县| 邓州市| 禄丰县| 祥云县| 景宁| 金门县| 宁陵县| 启东市| 栖霞市| 凤冈县| 荔浦县|