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

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

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

    我會走向何方

    我又該走向何方

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      15 Posts :: 2 Stories :: 17 Comments :: 0 Trackbacks

    2006年7月23日 #

    主要是java方面的開發,如果你知道python就更好,如果你是那種認為"什么語言都一樣"就最好
    當然,你如果聽過jstl、spring、hibernate、lucence等opensource會更好
    由于是處于創業期的團隊,需要從前臺照顧到后臺,所以希望你的js也很出色,當然同樣,你如果聽過jquery、prototype、ext-js等opensource會更好


    有興趣的兄弟可以訪問的網站 http://www.j.cn

    可以直接簡歷發到我的郵箱 hama916@gmail.com

    當然提供業界領先的待遇標準與晉升機會(落了俗套)

    對了,歡迎北京本地實習生(外地就算了,提供不了宿舍),希望你的年輕、激情為我們的團隊帶來活力:-)
    posted @ 2009-03-30 11:44 hama 閱讀(99) | 評論 (0)編輯 收藏

    How do I configure Tomcat to support remote debugging?

    The short answer is to add the following options when the JVM is started:
    -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
    There are a number of ways you can do this depending on how you normally start Tomcat:

    • Set environment variables JPDA_ADDRESS=8000 and JPDA_TRANSPORT=dt_socket and then start tomcat using catalina jpda start(sh catalina.sh jpda start).
    • If you run Tomcat using service wrapper, check the documentation for the service to determine how to set the required JVM options.
    • If you start Tomcat from within an IDE, check the documentation for the IDE to determine how to set the required JVM options.

    Using catalina start and CATALINA_OPTS

    Alternatively, you can set the java program's command-line arguments for the JPDA settings. For Tomcat, you specify them in the CATALINA_OPTS environment variable and the catalina.sh or catalina.bat script adds the value of the environment variable to the java command that starts Tomcat; for example:

    bash:

    declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
    $JWSDP_HOME/bin/catalina.sh start

    csh:

    setenv CATALINA_OPTS "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
    $JWSDP_HOME/bin/catalina.sh start

    Windows:

    set JPDA_TRANSPORT=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
    %JWSDP_HOME%\bin\catalina start
    The port does not need to be set to 8000, it may be any value appropriate for your system.

    Whilst this is very useful in development it should not be used in production because of both security and performance implications.


    How do I remotely debug Tomcat using Eclipse?

    This answer assumes that you have a project set up with all of the fixings and have some idea of what you're doing in this respect. If not then thats really outside the scope of this topic and more in the scope of you needing to go to eclipse.org and read up on how to use your ide, and maybe practice a little bit before you come back to this. We're also going to assume you have some idea of what a debugger is and how to use one.

    Make sure tomcat is started and that your app is deployed and the sources, etc are all defined as resources in your app. If you have a servlet or something, set a breakpoint where its sure to hit on the next request. Go to "Run->Debug...". Click on "Remote Java Applications", then click "New". Type in the title and all. Notice that port 8000 from the Tomcat instructions. Save and run. Eclipse will connect to the VM that Tomcat is running under. Wow, that was easy! Now go type the url to submit to your servlet or whatever in your browser. Boom you hit the breakpoint right? Have fun!

    posted @ 2007-02-06 09:02 hama 閱讀(3111) | 評論 (0)編輯 收藏

    由于公司的項目前期是給外包團隊做的,接手的時候我們自己和外包團隊都需要更新代碼,但因為合同的問題,所以我們不能直接修改外包團隊CVS上的代碼, CVS的版本分支問題搞的頭好大!
    當然問題圓滿解決!!!感謝車東!!!

    CVS Branch:項目多分支同步開發

    確認版本里程碑:多個文件各自版本號不一樣,項目到一定階段,可以給所有文件統一指定一個階段里程碑版本號,方便以后按照這個階段里程碑版本號導出項目,同時也是項目的多個分支開發的基礎。

    cvs tag release_1_0

    開始一個新的里程碑
    cvs commit -r 2 標記所有文件開始進入2.x的開發

    注意:CVS里的revsion和軟件包的發布版本可以沒有直接的關系。但所有文件使用和發布版本一致的版本號比較有助于維護。

    版本分支的建立
    在開發項目的2.x版本的時候發現1.x有問題,但2.x又不敢用,則從先前標記的里程碑:release_1_0導出一個分支 release_1_0_patch
    cvs rtag -b -r release_1_0 release_1_0_patch proj_dir

    一些人先在另外一個目錄下導出release_1_0_patch這個分支:解決1.0中的緊急問題,
    cvs checkout -r release_1_0_patch
    而其他人員仍舊在項目的主干分支2.x上開發

    在release_1_0_patch上修正錯誤后,標記一個1.0的錯誤修正版本號
    cvs tag release_1_0_patch_1

    如果2.0認為這些錯誤修改在2.0里也需要,也可以在2.0的開發目錄下合并release_1_0_patch_1中的修改到當前代碼中:
    cvs update -j release_1_0_patch_1


    posted @ 2007-01-31 11:45 hama 閱讀(1060) | 評論 (0)編輯 收藏


    <script>
    function f(m,n){
    ?var r = Math.round(Math.random()*(n-m))+m;
    ?alert(r);
    }
    f(0,23);
    </script>

    posted @ 2007-01-30 16:02 hama 閱讀(194) | 評論 (0)編輯 收藏

         摘要: 將excel數據整理成sql語句 ??1 package ?com.fangq.excel2sql; ??2 ??3 import ?java.io.BufferedReader; ??4 ...  閱讀全文
    posted @ 2006-10-05 07:56 hama 閱讀(1274) | 評論 (0)編輯 收藏

      “美國最好閉嘴并保持沉默!”

      8月17日,BBC(英國廣播公司)的廣播節目中,為反駁布什政府對中國軍費開支增長的指責,中國常駐聯合國日內瓦辦事處及瑞士其他國際組織代表沙祖康大使出言直率

      “美國的軍費占全球軍費開支的一半,而中國的人口是美國的五六倍。為什么指責中國?”隨后,沙祖康提高嗓音,“美國該如何做,這是美國的主權,但美國不應告訴中國該如何做!”

      在談及臺灣未來是否可能宣布“獨立”時,沙祖康更是直言不諱:“臺灣宣布‘獨立’的那一刻,不管誰支持它,中國都將別無選擇。……在這個問題上,任何人都不應該有任何幻想。我們將不惜一切代價。”

      沙祖康還補充道:“對于中國,一寸領土比生命更有價值。在這一點上,我們永遠不會退縮。”

      這一系列大膽言論,讓西方大跌眼鏡,也讓國人頗感意外。而惟有熟悉沙祖康的人知道,這是其一貫風格。

      “典型的現實主義外交”

      一向大膽敢言的沙祖康本來就不乏擁躉。隨著BBC節目的播放,半個月來,“沙式語錄”迅速風靡網上中文論壇和博客。讓美國人“Shut up”的英文講話錄音甚至被網民剪輯出來,放到網上供人下載。

      為何沙祖康的這段發言受到網民如此追捧??清華大學軍控問題專家李彬教授評價說,“(沙祖康)說的是實話。”

      在個人風格上,這個農民出身、喜愛看武俠小說的外交官承認“不大相信外交辭令”,他也不諱言自己講話粗,習慣有話都擺在桌面上談。美國報紙對沙氏講話風格的評論是“令人吃驚的坦率(surprisingly frank)”。在李彬看來,沙祖康的外交思路屬于比較典型的現實主義,雖然他自己未必意識到。

      “現實主義的思路就是按照國家利益和實力來計算國家之間的互動。這樣的思路簡明、清晰,容易理解。沙祖康用此思路進行交流時,對方當然會感覺到‘坦率’。”

      李彬說,“此外,沙祖康負責軍控外交的時期也是中國實質性參與國際軍控的時期,國家投入的研究力度很大。在很多實質性軍控問題上,中國必須表達明確的態度,而且也有對策研究基礎做這樣的表態。在開始階段,外國人對這些坦率確實比較吃驚。”

    posted @ 2006-08-31 22:26 hama 閱讀(236) | 評論 (0)編輯 收藏

    StudentDTO.java
    package?com.fangq.collections;
    /**
    ?*?
    ?*?
    @author?fangq
    ?*
    ?
    */

    public?class?StudentDTO?{
    ????
    private?String?xm;//姓名
    ????private?String?xh;//學號
    ????private?String?nl;//年齡
    ????public?String?getNl()?{
    ????????
    return?nl;
    ????}

    ????
    public?void?setNl(String?nl)?{
    ????????
    this.nl?=?nl;
    ????}

    ????
    public?String?getXh()?{
    ????????
    return?xh;
    ????}

    ????
    public?void?setXh(String?xh)?{
    ????????
    this.xh?=?xh;
    ????}

    ????
    public?String?getXm()?{
    ????????
    return?xm;
    ????}

    ????
    public?void?setXm(String?xm)?{
    ????????
    this.xm?=?xm;
    ????}

    ????
    }

    StudentComparator.java
    package?com.fangq.collections;

    import?java.util.Comparator;
    /**
    ?*?按dto的某個字段排序
    ?*?
    @author?fangq
    ?*
    ?
    */

    public?class?StudentComparator?implements?Comparator{

    ????
    public?int?compare(Object?arg0,?Object?arg1)?{
    ????????
    //?TODO?Auto-generated?method?stub
    ????????if(arg0?instanceof?StudentDTO&&arg1?instanceof?StudentDTO){
    ????????????StudentDTO?dto1?
    =?(StudentDTO)arg0;
    ????????????StudentDTO?dto2?
    =??(StudentDTO)arg1;
    ????????????
    int?nl1?=?Integer.parseInt(dto1.getNl());
    ????????????
    int?nl2?=?Integer.parseInt(dto2.getNl());
    ????????????
    if(nl1<nl2)
    ????????????????
    return?-1;
    ????????????
    else?if(nl1==nl2)
    ????????????????
    return?0;
    ????????????
    else
    ????????????????
    return?1;
    ????????????
    ????????}

    ????????
    return?-1;
    ????}


    ????

    }

    TestComparator.java
    package com.fangq.collections;

    import java.util.Arrays;

    import org.apache.commons.lang.math.RandomUtils;
    /**
    ?*
    ?* @author?fangq
    ?*/
    public class TestComparator {
    ?public static void main(String[] args){
    ??StudentDTO[] dtos = new StudentDTO[10];
    ??for(int i=0;i<dtos.length;i++){
    ???dtos[i] = new StudentDTO();
    ???dtos[i].setXh("xh"+i);
    ???dtos[i].setXm("xm"+i);
    ???dtos[i].setNl(String.valueOf(i+RandomUtils.nextInt(20)));
    ??}
    ??System.out.println("排序前===============");
    ??for(int j=0;j<dtos.length;j++)
    ??System.out.println("姓名:"+dtos[j].getXm()+"年齡:"+dtos[j].getNl());
    ??
    ??Arrays.sort(dtos,new StudentComparator());
    ??System.out.println("排序后===============");
    ??for(int k=0;k<dtos.length;k++)
    ??System.out.println("姓名:"+dtos[k].getXm()+"年齡:"+dtos[k].getNl());
    ??
    ?}
    }

    posted @ 2006-08-26 16:10 hama 閱讀(1428) | 評論 (0)編輯 收藏

    ?

    package ?com.fangq.collections;
    /**
    ?*?后進先出
    ?*?自動擴容2倍
    ?*?
    @author ?new
    ?*
    ?
    */

    public ? class ?Stack? {
    ????
    private ?Object[]?stack;
    ????
    private ? int ?max;
    ????
    private ? int ?top;
    ????
    public ?Stack() {
    ????????stack?
    = ? new ?Object[ 20 ];
    ????????max?
    = ? 20 ;
    ????????top?
    = ? - 1 ;
    ????}

    ????
    public ?Stack( int ?s) {
    ????????stack?
    = ? new ?Object[s];
    ????????max?
    = ?s;
    ????????top
    =- 1 ;
    ????}

    ????
    public ? void ?push(Object?o)? throws ?Exception {
    ????????
    if (o == null )
    ????????????
    throw ? new ?Exception( " 不允許空值 " );
    ????????top
    ++ ;
    ????????
    if (top > max - 1 ) {
    ????????????System.out.println(
    " 開始擴容 " );
    ????????????max?
    = ?max * 2 ;
    ????????????Object[]?oldStack?
    = ?stack;
    ????????????Object[]?newStack?
    = ?? new ?Object[max];
    ????????????System.arraycopy(oldStack,
    0 ,newStack, 0 ,top);
    ????????????stack?
    = ?newStack;
    ????????}

    ????????System.out.println(
    " top=====> " + top);
    ????????System.out.println(
    " max=====> " + max);
    ????????stack[top]?
    = ?o;?
    ????}

    ????
    public ?Object?pop() {
    ????????
    return ?stack[top -- ];
    ????}

    ????
    public ? static ? void ?main(String[]?args) {
    ????????Stack?s?
    = ?? new ?Stack( 10 );
    ????????
    try {
    ????????????
    for ( int ?i = 1 ;i < 22 ;i ++ ) {
    ????????????????s.push(String.valueOf(i));
    ????????????}

    ????????????System.out.println(s.pop());
    ????????????System.out.println(s.pop());
    ????????}
    catch (Exception?e) {
    ????????????e.printStackTrace();
    ????????}

    ????}

    }

    posted @ 2006-08-26 09:35 hama 閱讀(227) | 評論 (0)編輯 收藏

    今天在看jdk源碼的時候發現居然有個
    @author? Li Gong
    一看就是個中國人,后來上網一搜???? 宮力
    Li Gong自從JXTA項目正式啟動,到2001年4月正式發布,到2001年6月JavaOne上的介紹就一直擔任JXTA項目的工程指導及首席設計師。此前,在JDK 1.1和1.2版本的開發期間,他主管著Java安全和網絡小組。他在清華大學獲得了學士和碩士學位,從劍橋大學獲得了博士學位。他是IEEE Internet Computing和ACM TISSEC的編委會成員,也在IEEE S&P、IEEE CSFW和ACM CCS擔任要職。他擁有6項美國專利,已經撰寫了60篇技術論文和2本書,并且于1994年獲得了IEEE通信組織頒發的Leonard G. Abraham獎。目前,他在北京擔任Sun公司的中國工程研究所的總經理。
    posted @ 2006-07-24 22:33 hama 閱讀(2254) | 評論 (6)編輯 收藏

    jvm隨著應用程序(java application)而生而滅,當一個application開始時,jvm的生命就開始了,當application結束時,jvm的生命也結束了。在一臺機器上同時運行多個application時會生成多個jvm實例!

    java Test

    該命令的java,告訴操作系統開始運行java虛擬機,Test 必須有main方法,是該application線程的起點,其他所有線程都由這個初始線程啟動

    在java虛擬機內部有兩種線程:一種是守護線程,一種非守護線程。守護線程通常是虛擬機自己使用的,比如執行垃圾收集的線程。當然java也可以把創建的線程標記為守護線程

    而由main開始的線程就是一個非守護線程,只要還有任何非守護線程運行,java虛擬機就任然存活,當application中的所有非守護線程都結束時,java虛擬機也會自動退出,假若安全管理器允許,程序也可以通過調用Runtime或System的exit()方法來退出虛擬機實例jvm.JPG
    posted @ 2006-07-23 18:59 hama 閱讀(748) | 評論 (0)編輯 收藏

    最近研究了一下java的類加載器
    先看一下實例化一個類的幾種方法:
    1、new
    2、Class.newInstance
    3、clone()
    4、序列化
    再看一下加載一個類的幾種方法:
    1、A a =new A();(單獨聲明一個類A a,不會促使類加載器加載我們要的類,只有實例化new的時候類加載器才會為我們加載類)
    2、Class.forName(pkg.A); or Class.forName(pkg.A,true|fale,ClassLoader)
    3、classLoader.loadClass(pkg.A);
    java的類加載可以分為預先載入和依需求載入,用java -verbose可以看到類的加載順序
    關于類的初始化(執行static程序段):
    1、A a = new A();在類加載的時候即進行初始化
    2、Class.forName(A);在類加載的時候即進行初始化
    3、Class.forName(A,false,classLoader);在newInstance的時候進行初始化
    4、classLoader.loadClass(A);在newInstance的時候進行初始化
    再看一下類加載器的分層結構
    1、最上層是用c++實現的Bootstrap Loader,sun.boot.class.path
    2、ExtClassloader,搜尋位置為java.ext.dirs(System.geProperty("java.ext.dirs"))
    3、AppClassLoader(也稱System Loader),搜尋位置為CLASSPATH
    java的類加載器采用(委派模式),即類加載器器先委托父類去加載該類
    posted @ 2006-07-23 18:58 hama 閱讀(481) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 午夜免费啪视频在线观看 | 国产又大又粗又长免费视频| 亚洲一级片免费看| 免费一级毛片在线播放视频免费观看永久 | 免费AA片少妇人AA片直播 | 老湿机一区午夜精品免费福利| 亚洲AV无码片一区二区三区| 毛片亚洲AV无码精品国产午夜| 国产精品亚洲精品久久精品| 黄网站在线播放视频免费观看| 无人视频在线观看免费播放影院| 看成年女人免费午夜视频| 污污免费在线观看| 成人午夜免费视频| 国产精品免费αv视频| jizz免费在线观看| 国产偷伦视频免费观看| 最近2019免费中文字幕视频三| 亚欧色视频在线观看免费| 成视频年人黄网站免费视频| 四虎成人免费大片在线| 免费a级毛片永久免费| 久久精品国产亚洲5555| 久久亚洲国产视频| 亚洲国产精品成人精品小说| 亚洲色大情网站www| 污视频网站在线免费看| 免费在线中文日本| 免费看黄视频网站| 国产片免费在线观看| 亚洲中文字幕无码日韩| 亚洲日产2021三区在线| 亚洲爆乳大丰满无码专区| 精品国产污污免费网站入口在线| 国产精品免费无遮挡无码永久视频| 99久久免费精品高清特色大片| 野花高清在线观看免费完整版中文| 免费国内精品久久久久影院| 久久亚洲国产成人影院网站| 亚洲精品无码久久毛片波多野吉衣| 综合偷自拍亚洲乱中文字幕|