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

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

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

    dream-in-fly
    路上...
    posts - 31,  comments - 6,  trackbacks - 0

    IRVINE, Calif. - June 06, 2005 - Blizzard Entertainment? today announced that World of Warcraft?, its massively multiplayer online role-playing game (MMORPG), has officially launched in China. Players in China can now download the game, create accounts and experience the epic adventure of the Warcraft? series in an immersive and continually evolving online environment. The commercial launch of World of Warcraft follows a highly successful open beta period in China during which the game reached a peak concurrency - the total number of subscribers playing simultaneously - of more than 500,000 players.

    "It has always been a goal at Blizzard to become a major developer and publisher for the Chinese gaming market," said Mike Morhaime, president and co-founder of Blizzard Entertainment. "We feel that China offers a huge and eager audience and it is poised to become the next great region in gaming. We are simply thrilled to be bringing World of Warcraft to this great country. With fully localized content, a regional network infrastructure, and local, around-the-clock customer support, we believe that World of Warcraft will provide Chinese gamers with an unparalleled game experience."

    To provide players with an incomparable level of service, Blizzard Entertainment has partnered with local publisher The9, who it believes to be the most talented MMO operator in China. The9 will help operate and manage World of Warcraft in China, including all aspects of support. The9's dedicated team, composed entirely of Chinese management and staff, will serve as an integral part of the game's development and customer service efforts. They will assist in the synchronization of content updates, the delivery of player feedback to the developers, and will help ensure accurate localization to keep the game relevant and tailored to Chinese gamers. Furthermore, this local team will offer 24-hour support year around, with direct game master (GM) support and local call-center representatives dedicated to helping players with questions regarding gameplay and/or technical issues.

    To deliver top-notch customer support and maintain a safe and secure service, Blizzard and The9 have implemented an authorization CD-key system for the official launch of World of Warcraft. This system will help protect the game from malicious hack programs that could otherwise affect players' enjoyment of the game.

    Only players who have purchased an authorized CD key will be able to activate their accounts and enter the game. Each CD key costs 30 Yuan/RMB and can be purchased with a World of Warcraft Points Card. Point Cards also cost 30 Yuan/RMB and can be used at a rate of 9 points per hour (0.45 Yuan/hour) to play World of Warcraft.

    posted @ 2005-06-07 16:16 小毅 閱讀(438) | 評論 (0)編輯 收藏

    需要包含頭文件:

    #include <alloc.h>

    #include <stdlib.h>

     

    函數聲明(函數原型)

    void *malloc(int size);

     

    說明:malloc 向系統申請分配指定size個字節的內存空間。返回類型是 void* 類型。void* 表示未確定類型的指針。C,C++規定,void* 類型可以強制轉換為任何其它類型的指針。

     

    從函數聲明上可以看出。malloc new 至少有兩個不同: new 返回指定類型的指針,并且可以自動計算所需要大小。比如:

     

    int *p;

     

    p = new int; //返回類型為int* 類型(整數型指針),分配大小為 sizeof(int);

    或:

     

    int* parr;

     

    parr = new int [100];  //返回類型為 int* 類型(整數型指針),分配大小為 sizeof(int) * 100;

     

    malloc 則必須由我們計算要字節數,并且在返回后強行轉換為實際類型的指針。

     

    int* p;

     

    p = (int *)  malloc (sizeof(int));

     

    第一、malloc 函數返回的是 void * 類型,如果你寫成:p = malloc (sizeof(int)); 則程序無法通過編譯,報錯:“不能將 void* 賦值給 int * 類型變量”。所以必須通過 (int *) 來將強制轉換。

    第二、函數的實參為 sizeof(int) ,用于指明一個整型數據需要的大小。如果你寫成:

     

    int* p = (int *) malloc (1);

    代碼也能通過編譯,但事實上只分配了1個字節大小的內存空間,當你往里頭存入一個整數,就會有3個字節無家可歸,而直接“住進鄰居家”!造成的結果是后面的內存中原有數據內容全部被清空。

     

    malloc 也可以達到 new [] 的效果,申請出一段連續的內存,方法無非是指定你所需要內存大小。

     

    比如想分配100個int類型的空間:

     

    int* p = (int *) malloc ( sizeof(int) * 100 ); //分配可以放得下100個整數的內存空間。

     

    另外有一點不能直接看出的區別是,malloc 只管分配內存,并不能對所得的內存進行初始化,所以得到的一片新內存中,其值將是隨機的。

     

    除了分配及最后釋放的方法不一樣以外,通過malloc或new得到指針,在其它操作上保持一致。

    posted @ 2005-06-06 23:01 小毅 閱讀(410) | 評論 (0)編輯 收藏
             阿,我年輕的朋友們,你們想成為游戲設計師,所以來問我有何好建議?我會給你們我最好的建議,但我猜想你們可能會聽不進去。你們可能更愿意聽那些說你們愛聽的話的人所提供的建議。但這對我來說無所謂,我所能做的就是說些實事,并希望能進入某些人的耳朵里。

      首先,你們應該對自己的事業道路有個最初的規劃,你想接受更專門的訓練,還是想要更全面的教育?專門的訓練能給你某些特別的技能,讓你能一畢業就進入工作。但教育能給你一個更全面的素質培養,卻不一定能馬上看到好處,不過長期來看能給你帶來更多的優勢。這是個簡單不過的選擇:速成的路還是戰略規劃后的路。如果你非常急于求成,那就立馬去那些專門學校,他們會教你最新最炫的電腦技術。精力充沛是年輕人的優勢,但耐性決不是年輕人的特長,所以我完全能理解你們幾乎不能忍受去學習那些看似無關的副科。當我還是你們年紀的時候,我總是對那些大學里的其他課程感到不耐煩。但現在,我對我當初的魯莽想法感到羞愧,并真心的感謝當初教導我的師長。

      速成的路卻是能立刻見效的路。如果你進了一家專門教授電腦游戲制作的學校,或者在正規大學主修電腦游戲設計。在此,你會學到很多關于電腦游戲設計最新的技術。畢業后,你很可能馬上就能在正規的游戲公司找到一份工作,而這一切你可以在23歲之前搞定。

      請打住。在這里有一點需要指出。生產游戲和設計游戲是完全不同的。你所獲得的第一份工作肯定是份渺小的工作,比如給一個無關緊要的npc畫動畫,而這個npc做的事情只是在背景上漫無目的的閑晃;或者寫一段代碼,這段代碼的用處就是當用戶按下exit的時候,顯示“你確定要退出么?”。如果你很擅長做這些小事情,那不出幾年就可能會讓你畫些更復雜的動畫或寫一段更重要的代碼。然后再過幾年,你就可能坐上某個更重要的位子,處理些更重要的事情。

      但請你別指望這些。根本的問題在于:有成百上千甚至上百萬的學生,就像你們一樣的學生,正做著同樣的夢,想要進游戲業的夢。考慮一下供求曲線吧,如果職員的供應量十倍甚至百倍于員工的需求量,那么價格曲線將向下傾斜。你們必定將得到可憐的工資,并得不到任何的尊敬。你們當然可以抱怨,但得到的回答不僅簡單也很實在:如果你不喜歡,你可以選擇離開阿,門外有上百個像你一樣的年輕人想要得到你的工作。

      事實上,這就是當前正在發生的事情。有可能的話你們可以去每年三月或四月在圣何塞舉行的“游戲開發者大會”看看,你們并不需要真的去參加什么討論會,只需要在圣何塞的會議中心轉轉,看看身邊走過的人。你會發現兩個驚人的事實:第一,每個人都穿著黑色衣服;第二,他們的平均年齡在25至30之間。

      我不知道為什么他們都穿著黑色,這可能是每個人都需要遵守的規則。但我能告訴你們,為什么他們都這么年輕:因為每個人都會在工作幾年之后離開這個行業。游戲業就像是個奇怪的巨大建筑物,這個建筑物只有一個入口,卻有很多個出口。成千上萬個年輕人擁擠在入口處,爭先恐后互相推擠著想要進門。只有很少一部分能順利進入。但對于任何一個進入者來說,總會有另一個人離開——這才能讓這個行業保持平衡。這個行業內的人有多么的年輕,就意味著被擠出去的人有多么的快。很少有人能撐到30歲。

      如果你想得再深些,那就會發現另一個事實:假設你是老板,既然有這么多小家伙想要為你做游戲,那你自然可以花一毛錢就雇一群人,像奴隸一樣驅使他們,直到他們筋疲力盡,然后再找些替代者。你只需雇傭一些管理人員,能保證這些小家伙都努力工作就行。這個系統運轉得非常完美。

      唯一的問題是,你是否打算成為他們中的一員呢?我希望不是。不過,要是你真狂熱到打算削尖腦袋往游戲業里鉆,那么就繼續前進!我這個老笨蛋說再多也是無益。你自己去花時間看清這些吧。

      但在這里我還有另一個方案可以告訴你們。首先,你應該獲得一個正規的教育,決不是什么一夜情式的培訓。去一所正規的大學,學習任何專業除了游戲制作。幾乎所有專業都可以:生物學、物理學(我當初就是念的這個)、藝術、文學、歷史、心理學、語言學。你只需保證自己獲得了常規教育,并盡量選修一些專業以外的課程,當然,你應該選修一下計算機。

    同時,你應該開始試驗制作游戲了。不要被時髦流行的圖像技術所擾——這不能給你的游戲設計提供任何幫助。你應該專注于游戲的內涵:游戲的體系和架構。如何用很少的元素就能使整個游戲運轉?別幻想能做出像商業游戲那么好的產品——我要大聲告訴你,這些游戲要依靠很多人的力量才能完成。你此時所能做的這些小玩意同那些比較起來,只能用“可憐”兩個字形容。要是把制作游戲比作造汽車,此時你根本不用管車子的外表涂層和噴漆,你應該專注于如何讓活塞協作運轉、如何控制閥門的正常閉合、搞清楚汽化器是個什么東西。你要制造的是個小卡丁車,而不是一輛勞斯萊斯。所有這些都是個試驗的過程,別幻想你的這些小玩意會有商業用途,你要做的就是造好一個就扔掉一個——為了增加創造力,你要殺掉你自己的“孩子”。如果你沉迷于這些作品而不愿放棄,那你將永遠也不會擁有一個真正游戲設計師所應有的創造力。

      繼續不斷的為增加你的創造力而努力。到目前為止,你的作品根本無法和一個經驗老到的游戲設計師相抗衡,所以增加自己的能力是你此時唯一該做的。電影the matrix都看過吧,沒經過訓練的neo無論如何也不是agent smith的對手。學任何你能學到的東西。畢業前要把你學校圖書館所有的書架都翻一遍,在這些灰塵的覆蓋下指不定隱藏著什么有趣的東西。

      當你出了學校,不要馬上就進入游戲業。在一個正規公司找一份像樣的工作,并掙些錢。更主要的是不斷學習,你要學很多關于團隊協作的方式,也要學會如何在眾人面前尋找自己的位置。你應該學會何時何地站起來對你的老板說話——雖然這種機會不常有。還有,你應該學會如何同周圍有經驗的內行打交道。

      繼續在你業余時間制作游戲,盡可能多的制作各種不同類型的“小卡丁車”,并試圖了解各種類型卡丁車的性能,諸如操縱性、速度以及其他要素。當你做了六個或十個這種產品,你可能會想到繼續親自著手進行更大的項目。很好,去找些志同道合的朋友,他們會幫助你完成你的計劃,我確信這將是個令人印象深刻的成果。完成之后,向全世界展示你的小寶貝吧。現在,你就可以把她作為你簡歷的一部分去申請游戲業中的職位了。如果你的那些產品確實好,你將能得到一個真正的游戲設計師職位,而不是去當那些小嘍羅。此時你可能仍然只是其他游戲設計師的助手,但你已經處在了正確的位置上,如果你能努力出色的完成工作,你肯定會在游戲業中擁有前途。
      我知道這些并不是你們想聽的內容。你們想要的是所謂的速成藥,比如學習這個,然后學習那個,接下來就能確保得到一份高收入的工作、擁有巨大的辦公室、用著最先進的電腦設備、做的是富有創造性的事情。沒錯,每個人都會這么想的,但沒有人會得到這些。那些向你描述這些故事的人不過是些騙子,他們腦子里想的只是你口袋里的錢。一個令人悲傷的事實是:游戲先驅們主導世界的日子已經過去了,現在的游戲業是一個產業,沒人會突然被發掘然后一夜之間成為巨星,對任何想入門的人來說,在你面前的必定是一條漫長的路。

      你們擁有激情和精力,想要讓不可能變為可能。但你們是否對這條漫長的路做好了準備?或者說,你們是否打算在真正的準備完成前就沖進去?

      祝你們好運,孩子們,我相信你們會成功。


       謝謝您-----------chris crawford

     

    posted @ 2005-04-21 06:21 小毅 閱讀(512) | 評論 (3)編輯 收藏
    開始安裝EclipseME 0.5.5:

    從0.5.5版本開始,EclipseME將采用新的安裝模式。而在0.5.0版本及之前版本均是一個壓縮文件解壓到Eclipse的安裝路徑下即可。這種安裝形式已經不在使用,我們將采用以下的新的安裝模式。如果你僅是要升級EclipseME到0.5.5版本,那么也要按以下的新的安裝方法來做。

    1)第一步:打開Eclipse,選擇Help -> Software Updates -> Find and Install。

























    posted @ 2005-04-18 11:08 小毅 閱讀(389) | 評論 (0)編輯 收藏

    現在Eclipse的最新版本是3.0.2,但建議使用3.01M6版本。而EclipseME剛剛推出了0.9.0版本,完全支持Eclipse3.01M6版。
    1、下載JDK:
    http://java.sun.com 下載JDK1.4.2版本。或者此地址:

    2、下載J2ME版本:http://java.sun.com 下載。或者此地址:

    3、下載Eclipse3.01M6版本:http://www.Eclipse.org 下載。或者此地址

    ftp://ftp.jaist.ac.jp/pub/eclipse/eclipse/downloads/drops/S-3.1M6-200504011645/eclipse-SDK-3.1M6-win32.zip

    4、下載Eclipse3.01M6版本的中文語言包:http://www.Eclipse.org 下載。或者此地址

    http://download.eclipse.org/eclipse/downloads/drops/L-3.0.1_Translations-200409161125/NLpack-eclipse-SDK-3.0.x-win32.zip

    5、下載Eclipse3.01M6的J2ME插件EclipseME0.9.0版本:http://www.EclipseME.org 下載。或者此地址

    http://nchc.dl.sourceforge.net/sourceforge/eclipseme/eclipseme.feature_0.9.0_site.zip

    下載完以上五個文件后,進行相應順序的安裝。另外:Eclipse的軟件不需要安裝,直接解壓即可,很方便吧。

    posted @ 2005-04-18 11:03 小毅 閱讀(485) | 評論 (0)編輯 收藏
    在遙遠古希臘的大草原中,馳騁著一批半人半馬的族群,這是一個生性兇猛的族群。“半人半馬”代表著理性與非理性、人性與獸性間的矛盾掙扎,這就是人馬部落。部落里唯一的例外射手奇倫,是一個生性善良的男子,他對人坦誠真摯,謙遜有理。因此受到大家的尊敬與愛戴。

      有一天,英雄赫五力來拜訪他的朋友奇倫。赫五力早就聽說人馬族的酒香醇無比,便要求奇倫給他拿來享用,可是,他喝光了奇倫的酒仍不盡興,執意要喝光全部落的酒。奇倫非常耐心地解釋給他聽,酒是部落的公共財產,不是任何一個人可以獨自占有的,希望赫五力不要因為一時的興致而犯眾怒。赫五力向來脾氣暴躁,怎么能聽得進奇倫的話,他把這個善良的朋友推到一邊就闖進了人馬部落。果不出奇倫所料,暴躁的赫五力和兇猛的人馬族碰在一起,沖突不可避免的發生了。

      赫五力力大無窮,幼年即用雙手扼死巨蟒,他完成國王的十項不可能完成的任務都游刃有余,連太陽神阿波羅都懼他三分,人馬族雖然厲害,也并不是赫五力的對手,他們紛紛落逃。赫五力手持神弓緊緊追趕,借著酒勁,大肆進攻。人馬族被逼的走投無路,只好逃到了奇倫的家中。人們惶惶不安,赫五力站在門口大聲呵斥,如果再沒人出來,他就把這個部落毀掉。奇倫聽到這里,為了部落,為了朋友,為了化解這場爭斗,他奮不顧身的推開門,走了出來。就在那一剎那,赫五力的箭也飛了過來!赫五力惋惜又痛心的看著自己的朋友被神箭射穿心臟,而奇倫則用盡最后的力氣說到:“再鋒利的箭也會被軟弱的心包容;再瘋狂的獸性也不會泯滅人性。”

      這時候,奇倫的身體碎成了無數的小星星,飛到了天上,它們聚集在一起,好象人馬的樣子,那只箭還似乎就在他的胸前。為了紀念善良的奇倫,人們就管這個星座叫射手座。

    posted @ 2005-04-17 22:09 小毅 閱讀(186) | 評論 (0)編輯 收藏
    從嘉興回來...兄弟沒變多少 呵呵 一樣的忙

    認識了挺多的朋友 松哥,東哥,CEO,死過妹妹....

    雖然前幾天的筆試并沒有成功  心情并不怎么好  在嘉興卻還是呆的開心的...^ ^


    每次去看兄弟都能學到好多...
    剛好碰上他在開發寵物系統...php-asp...
    學了很多東西 有些習慣他好象是于身具來的  大概這就是天賦吧....


    4月中旬了  畢業了近了...
    工作還沒定  心理有點煩了....
    posted @ 2005-04-15 20:41 小毅 閱讀(160) | 評論 (0)編輯 收藏
    作者:xm4014

    今天開始學習Java中多線程的實現.

      線程是一些可以并行的,獨立的執行的代碼.之前我編的程序都只能做一件事情,也就是只有一個線程.多線程的編程就是可以將程序任務分成多個并行的子任務,同時運行,互不干擾.我對多線程的理解是從格斗游戲得來的.格斗游戲中兩人對打就是通過兩個線程來實現的吧,否則如何能夠你出你的招,我發我的沖擊波呢.

      (1月18日)突然想到一個問題,補充一下.多線程是不是我們通常所說的多任務呢?我的理解是,不能這樣說也可以這樣說.

      簡單說來,多線程提供了一種在進程內部進行多個線程并行調度的機制,而多任務則提供的是在一個操作系統內部運行多個進程的機制.

      多任務操作系統(如Windows)的基本原理是這樣的:操作系統將CPU的時間片分配給多個線程,每個線程在操作系統指定的時間片內完成(注意,這里的多個線程是分屬于不同進程的).操作系統不斷的從一個線程的執行切換到另一個線程的執行,如此往復,宏觀上看來,就好像是多個線程在一起執行.由于這多個線程分屬于不同的進程,因此在我們看來,就好像是多個進程在同時執行,這樣就實現了多任務.Whoops,真繞口.

      如上,多線程和多任務是有很明顯的區別的.但是再想一下,在一個應用程序內實現多線程不也是靠CPU分配時間片嗎?既然原理是相同的,那么多線程也可以說是多任務的.

      一個Java程序啟動后,就已經有一個線程在運行,我們可以通過下面的例子來初步建立一個線程的實際印象

    class testthread{
    public static void main(String args[]){
    Thread t=Thread.currentThread();
    t.setName("This Thread is running");
    System.out.println("The running thead:"+t);
    try{
    for(int i=0;i<5;i++)
    {
    System.out.println("Sleep time"+i);
    Thread.sleep(1000);//掛起線程,就是讓線程休息一會兒,
    //不占用系統資源,因此其它線程可以繼續.
    //這里的Thread缺省表示主線程
    }
    }catch(InterruptedException e){System.out.println("thread has wrong");}
    }
    }

      這只是一個線程,那么我們怎么實現多個線程呢?又怎樣讓線程做我安排它要做的事情呢?

      實現線程體的構造有兩種方法.

      第一種方法是通過繼承構造線程體.

      在Java中專門有一個Thread類,這個類里面有一個函數run(),里面記錄著線程要完成的操作,就好像通常所說的主函數main()一樣,run()函數運行完了,線程就結束了.通過繼承這個類,我們可以定義我們自己的線程,在run函數中告訴它該做什么事情.下面的程序就是繼承了一個SimpleThread類,用兩個線程來輸出HelloWorld.

    public class TwoThread{

    public static void main(String args[]){
    new SimpleThread("HelloWorld1").start();//創建兩個線程的實例,就這么簡單
    new SimpleThread("HelloWorld2").start();
    }

    }
    class SimpleThread extends Thread{ file://真正的內容在這里
    public SimpleThread(String str){
    super(str);//super代表SimpleThread類的直接父類,這里就是Thread
    }

    file://我們要線程做的事情都在這里了
    public void run(){
    for(int i=0;i<10;i++){
    System.out.println(i+" "+getName());
    try{
    sleep((int)(Math.random()*1000));
    }catch(InterruptedException e){}
    }
    System.out.println("Done!"+getName());
    }
    }

      運行的結果是兩個線程交替顯示各自的HelloWorld十次,輸出是混在一起的,因為兩個線程是同時運行的.

    posted @ 2005-04-01 20:30 小毅 閱讀(198) | 評論 (0)編輯 收藏

    作者:xm4014


      今天第一次接觸Java。

      雖然以前間或的也看了些書籍,但多是隔靴搔癢,上不了正席,絕不敢說自己懂Java。接觸一門新的技術和初戀一樣,都是第一次,但不同的是后者一般開始無比甜蜜,結局卻很痛苦,而前者則往往開始很痛苦,越到后來卻越是有味,簡直是欲罷不能.現在我就正處于這個很痛苦的階段,連一個最簡單的Helloworld都運行不出來,總是提示Excepion in thread "main" java.lan.NoClassDefFoundError. 只好上網去查,去搜.記性又不好,所以搜出來趕緊保存下來,常備無患.

      一般來說安裝完JDK之后,一定要按一下步驟配置,才可正確編譯運行(假定jdk版本為1.4.0)

      1.將jdk1.4.0-安裝在自己機器的某個盤符的根目錄下,如:可安裝在C:\jdk下。

      ***(以下出現的c:\jdk改為你自己安裝JDK的目錄)***

      2.如果你的運行環境是win98,則在C盤根目錄下,autoexec.bat文件中,加入下面兩條語句:

      set Path=%PATH%;c:\jdk\bin

      set CLASSPATH=.;c:\jdk\lib\dt.jar;c:\jdk\lib\tools.jar

      保存后,重新啟動機器,就完成了jdk1.4的安裝。

      3.如果你的運行環境是win2000的話,則需在“控制面板”的“系統”下,“高級”選項的“環境變量”中,添加兩個用戶變量。

      其中一個用戶變量的名稱為“path”,值為“.;d:\j2sdk1.4.0_01\bin”,

      另一個用戶變量的名稱為"CLASSPATH",值為“.;d"\j2sdk1.4.0_01\lib\dt.jar;d:\j2sdk1.4.0_01\lib\tools.jar”,單擊“確定”即可。即完成了jdk1.4.0的安裝。

      至于這樣做的意義何在,我想應該是讓Java系統在編譯字節代碼(.java)的時候需要一個什么東東的支持,如果你不告訴它這個東東放在哪個地方的話,它就犯傻了?!

      看到屏幕上終于顯示出Hello world對我來說意義重大.這是我近一年來寫的第一個程序!再次踏上程序之路,簡直有恍如隔世的感覺,已經快找不準我的位置了.還好原來學的一些關于C++和面向對象的皮毛沒忘光光,所以費點周折熟悉了JDK的環境之后,接下來的事情就好辦多了,心里也踏實多了.

      用String類直接定義字符串變量比起C中討厭的指針,感覺確實好的多,用慣了Object Pascal的我,如果再回去數* *,真要瘋掉不可.

      數組的定義和C,C++好像略有不同,記不清了,先記下來再說

      int[] number=new int[5]

      String[] message=new String[5]

      變量這一部分想起來要交待的也就這么多吧。雖然是菜鳥,但我也知道,總是如譚浩強般在語法上面死摳的人簡直是白癡:大多數情況下,漂亮的程序根本不需要無謂的點綴,工工整整,思路清晰就可以了.

      倒是對于Java程序的框架我倒想備忘一下,一個簡單的java程序好像是應該是這樣的框架

     class ProgramName
    {
    public static void main(String[] args)
    {
    file://程序的主體
    }
    public static int othermethod()
    {
    file://其它方法
    }
    }

      整個程序在一個大的類中,這個類的概念應該就跟pascal里面的單元差不多的。同pascal一樣,文件名也要與單元名-在這里是類名-一樣.Java對大小寫要求的非常嚴格,我語法錯了好幾次都是因為這個.

      Java程序就是由一個或者多個或者很多個方法在這樣一個大類當中組成的.

      在如上的代碼中,定義方法的參數表示的意思分別為:

      public表示此成員函數是公有的,可以被其他類直接調用

      static表示main成員函數在ProgramName類的所有對象中是唯一的,Java將為其分配永久存儲空間

    posted @ 2005-04-01 20:18 小毅 閱讀(222) | 評論 (0)編輯 收藏
    過幾天要去東星軟件筆試程序員,要求挺高的 網上找了篇筆試的文章

    前段時間因為要參加一個筆試,在準備期間在網上找到了兩條關于筆試題目的文章,其中一篇為<<有感:應聘Java筆試時可能出現問題>>,還有一篇忘了名字,讀后深受啟發。
    ??????? 在尋找這些答案的過程中,我將相關答案記錄下來,就形成了以下這些東西。需要說明的是以下答案肯定有很多不完整甚至錯誤的地方,需要各位來更正與完善它,千萬不要扔我的雞蛋啊。
    ?????? 希望本文能夠給即將奔赴筆試考場的同仁些許幫助,更希望更多的人加入到收集整理筆試題與完善答案的這些工作中來,為大家更好的獲得工作機會做一點貢獻。
    ?????? 在此感謝前面兩文的作者的對筆試題目的收集與整理。
    ?????? 如有任何意見與建議請通過QQ:6045306,Mail:huijunzi@21cn.com與我聯系。

    Java基礎方面:

    1、作用域public,private,protected,以及不寫時的區別
    答:區別如下:
    作用域?????????? 當前類?????? 同一package? 子孫類?????? 其他package
    public??????????? √????????????? √????????????????? √???????????? √
    protected??????? √????????????? √????????????????? √???????????? ×
    friendly????????? √????????????? √?????????????????? ×??????????? ×
    private?????????? √????????????? ×?????????????????? ×??????????? ×
    不寫時默認為friendly

    2、ArrayList和Vector的區別,HashMap和Hashtable的區別
    答:
    就ArrayList與Vector主要從二方面來說.
    一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
    二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
    就HashMap與HashTable主要從三方面來說。
    一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現
    二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的
    三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value

    3、char型變量中能不能存貯一個中文漢字?為什么?
    答:
    是能夠定義成為一個中文的,因為java中以unicode編碼,一個char占16個字節,所以放一個中文是沒問題的

    4、多線程有幾種實現方法,都是什么?同步有幾種實現方法,都是什么?
    答:
    多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口
    同步的實現方面有兩種,分別是synchronized,wait與notify

    5、繼承時候類的執行順序問題,一般都是選擇題,問你將會打印出什么?
    答:
    父類:
    package test;
    public class? FatherClass
    {
    ??? public FatherClass()
    ?{
    ??System.out.println("FatherClass Create");
    ?}
    }
    子類:
    package test;
    import test.FatherClass;
    public class? ChildClass extends FatherClass
    {
    ?public ChildClass()
    ?{
    ??System.out.println("ChildClass Create");
    ?}
    ?public static void main(String[] args)
    ?{
    ??FatherClass fc = new FatherClass();
    ??ChildClass cc = new ChildClass();
    ?}
    }
    輸出結果:
    C:\>java test.ChildClass
    FatherClass Create
    FatherClass Create
    ChildClass Create

    6、內部類的實現方式?
    答:
    示例代碼如下:
    package test;
    public class? OuterClass
    {
    ?private class InterClass
    ?{
    ??public InterClass()
    ??{
    ???System.out.println("InterClass Create");
    ??}
    ?}
    ?public OuterClass()
    ?{
    ??InterClass ic = new InterClass();
    ??System.out.println("OuterClass Create");
    ?}
    ?public static void main(String[] args)
    ?{
    ??OuterClass oc = new OuterClass();
    ?}
    }
    輸出結果:
    C:\>java test/OuterClass
    InterClass Create
    OuterClass Create
    再一個例題:
    public class OuterClass {
    ? private double d1 = 1.0;
    ??? //insert code here
    }
    You need to insert an inner class declaration at line 3. Which two inner class declarations are

    valid?(Choose two.)
    A. class InnerOne{
    ???? public static double methoda() {return d1;}
    ?? }
    B. public class InnerOne{
    ???? static double methoda() {return d1;}
    ?? }
    C. private class InnerOne{
    ???? double methoda() {return d1;}
    ?? }
    D. static class InnerOne{
    ???? protected double methoda() {return d1;}
    ?? }
    E. abstract class InnerOne{
    ???? public abstract double methoda();
    ?? }
    說明如下:
    一.靜態內部類可以有靜態成員,而非靜態內部類則不能有靜態成員。 故 A、B 錯
    二.靜態內部類的非靜態成員可以訪問外部類的靜態變量,而不可訪問外部類的非靜態變量;return d1 出錯。

    故 D 錯
    三.非靜態內部類的非靜態成員可以訪問外部類的非靜態變量。 故 C 正確
    四.答案為C、E

    7、垃圾回收機制,如何優化程序?
    希望大家補上,謝謝

    8、float型float f=3.4是否正確?
    答:
    不正確。精度不準確,應該用強制類型轉換,如下所示:float f=(float)3.4

    9、介紹JAVA中的Collection FrameWork(包括如何寫自己的數據結構)?
    答:
    Collection FrameWork如下:
    Collection
    ├List
    │├LinkedList
    │├ArrayList
    │└Vector
    │ └Stack
    └Set
    Map
    ├Hashtable
    ├HashMap
    └WeakHashMap
    Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)
    Map提供key到value的映射

    10、Java中異常處理機制,事件機制?

    11、JAVA中的多形與繼承?
    希望大家補上,謝謝

    12、抽象類與接口?
    答:
    抽象類與接口都用于抽象,但是抽象類(JAVA中)可以有自己的部分實現,而接口則完全是一個標識(同時有多重繼承的功能)。

    13、Java 的通信編程,編程題(或問答),用JAVA SOCKET編程,讀服務器幾個字符,再寫入本地顯示?
    答:
    Server端程序:
    package test;
    import java.net.*;
    import java.io.*;

    public class Server
    {
    ?private ServerSocket ss;
    ?private Socket socket;
    ?private BufferedReader in;
    ?private PrintWriter out;
    ?public Server()
    ?{
    ??try
    ??{
    ???ss=new ServerSocket(10000);
    ???while(true)
    ???{
    ????socket = ss.accept();
    ????String RemoteIP = socket.getInetAddress().getHostAddress();
    ????String RemotePort = ":"+socket.getLocalPort();
    ????System.out.println("A client come in!IP:"+RemoteIP+RemotePort);
    ????in = new BufferedReader(new

    InputStreamReader(socket.getInputStream()));
    ????String line = in.readLine();
    ????System.out.println("Cleint send is :" + line);
    ????out = new PrintWriter(socket.getOutputStream(),true);
    ????out.println("Your Message Received!");
    ????out.close();
    ????in.close();
    ????socket.close();
    ???}
    ??}catch (IOException e)
    ??{
    ???out.println("wrong");
    ??}
    ?}
    ?public static void main(String[] args)
    ?{
    ??new Server();
    ?}
    };
    Client端程序:
    package test;
    import java.io.*;
    import java.net.*;

    public class Client
    {
    ?Socket socket;
    ?BufferedReader in;
    ?PrintWriter out;
    ?public Client()
    ?{
    ??try
    ??{
    ???System.out.println("Try to Connect to 127.0.0.1:10000");
    ???socket = new Socket("127.0.0.1",10000);
    ???System.out.println("The Server Connected!");
    ???System.out.println("Please enter some Character:");
    ???BufferedReader line = new BufferedReader(new

    InputStreamReader(System.in));
    ???out = new PrintWriter(socket.getOutputStream(),true);
    ???out.println(line.readLine());
    ???in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    ???System.out.println(in.readLine());
    ???out.close();
    ???in.close();
    ???socket.close();
    ??}catch(IOException e)
    ??{
    ???out.println("Wrong");
    ??}
    ?}
    ?public static void main(String[] args)
    ?{
    ??new Client();
    ?}
    };

    14、用JAVA實現一種排序,JAVA類實現序列化的方法(二種)? 如在COLLECTION框架中,實現比較要實現什么樣的接口?
    答:
    用插入法進行排序代碼如下
    package test;
    import java.util.*;
    class? InsertSort
    {
    ?ArrayList al;
    ?public InsertSort(int num,int mod)
    ?{
    ??al = new ArrayList(num);
    ??Random rand = new Random();
    ??System.out.println("The ArrayList Sort Before:");
    ??for (int i=0;i??{
    ???al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));
    ???System.out.println("al["+i+"]="+al.get(i));
    ??}
    ?}
    ?public void SortIt()
    ?{
    ??Integer tempInt;
    ??int MaxSize=1;
    ??for(int i=1;i??{
    ?????? tempInt = (Integer)al.remove(i);
    ????if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue())
    ????{
    ?????al.add(MaxSize,tempInt);
    ?????MaxSize++;
    ?????System.out.println(al.toString());
    ????} else {
    ?????for (int j=0;j?????{
    ??????if

    (((Integer)al.get(j)).intValue()>=tempInt.intValue())
    ??????{
    ???????al.add(j,tempInt);
    ???????MaxSize++;
    ???????System.out.println(al.toString());
    ???????break;
    ??????}
    ?????}
    ????}
    ??}
    ??System.out.println("The ArrayList Sort After:");
    ??for(int i=0;i??{
    ???System.out.println("al["+i+"]="+al.get(i));
    ??}
    ?}
    ?public static void main(String[] args)
    ?{
    ??InsertSort is = new InsertSort(10,100);
    ??is.SortIt();
    ?}
    }
    JAVA類實現序例化的方法是實現java.io.Serializable接口
    Collection框架中實現比較要實現Comparable 接口和 Comparator 接口

    15、編程:編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。 但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC+漢的半個”。
    答:
    代碼如下:
    package test;

    class? SplitString
    {
    ?String SplitStr;
    ?int SplitByte;
    ?public SplitString(String str,int bytes)
    ?{
    ??SplitStr=str;
    ??SplitByte=bytes;
    ??System.out.println("The String is:'"+SplitStr+"';SplitBytes="+SplitByte);
    ?}
    ?public void SplitIt()
    ?{
    ??int loopCount;
    ??

    loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split

    Byte+1);
    ??System.out.println("Will Split into "+loopCount);
    ??for (int i=1;i<=loopCount ;i++ )
    ??{
    ???if (i==loopCount){
    ????

    System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));
    ???} else {
    ????

    System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));
    ???}
    ??}
    ?}
    ?public static void main(String[] args)
    ?{
    ??SplitString ss = new SplitString("test中dd文dsaf中男大3443n中國43中國人

    0ewldfls=103",4);
    ??ss.SplitIt();
    ?}
    }

    16、JAVA多線程編程。 用JAVA寫一個多線程程序,如寫四個線程,二個加1,二個對一個變量減一,輸出。
    希望大家補上,謝謝

    17、STRING與STRINGBUFFER的區別。
    答:
    STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字符串中的內容經常進行操作,特別是內容要修改時,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法

    Jsp方面

    1、jsp有哪些內置對象?作用分別是什么?
    答:
    JSP共有以下9種基本內置組件(可與ASP的6種內部組件相對應):
     request 用戶端請求,此請求會包含來自GET/POST請求的參數
    ?? response 網頁傳回用戶端的回應
    ?? pageContext 網頁的屬性是在這里管理
    ?? session 與請求有關的會話期
    ?? application servlet 正在執行的內容
    ?? out 用來傳送回應的輸出
    ?? config servlet的構架部件
    ?? page JSP網頁本身
    ?? exception 針對錯誤網頁,未捕捉的例外

    2、jsp有哪些動作?作用分別是什么?
    答:
    JSP共有以下6種基本動作
    ?? jsp:include:在頁面被請求的時候引入一個文件。
    ?? jsp:useBean:尋找或者實例化一個JavaBean。
    ?? jsp:setProperty:設置JavaBean的屬性。
    ?? jsp:getProperty:輸出某個JavaBean的屬性。
    ?? jsp:forward:把請求轉到一個新的頁面。
    ?? jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記

    3、JSP中動態INCLUDE與靜態INCLUDE的區別?
    答:
    動態INCLUDE用jsp:include動作實現
    ?? 它總是會檢查所含文件中的變化,適合用于包含動態頁面,并且可以帶參數
    ?? 靜態INCLUDE用include偽碼實現,定不會檢查所含文件的變化,適用于包含靜態頁面
    ?? <%@ include file="included.htm" %>

    4、兩種跳轉方式分別是什么?有什么區別?
    答:
    有兩種,分別為:
    ?

    ?
    ? 前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面還是原來的頁面。執行完后還會回來,相當于函數調用。并且可以帶參數.后者完全轉向新頁面,不會再回來。相當于go to 語句。

    Servlet方面

    1、說一說Servlet的生命周期?
    答:
    servlet有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet接口的init,service和destroy方法表達。

    2、Servlet版本間(忘了問的是哪兩個版本了)的不同?
    希望大家補上,謝謝

    3、JAVA SERVLET API中forward() 與redirect()的區別?
    答:
    前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址;后者則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用sendRedirect()方法。

    4、Servlet的基本架構
    public class ServletName extends HttpServlet {
    ? public void doPost(HttpServletRequest request, HttpServletResponse response) throws
    ????? ServletException, IOException? {
    ????? }
    ? public void doGet(HttpServletRequest request, HttpServletResponse response) throws
    ????? ServletException, IOException? {
    ????? }
    }

    Jdbc、Jdo方面

    1、可能會讓你寫一段Jdbc連Oracle的程序,并實現數據查詢.
    答:
    程序如下:
    package hello.ant;
    import java.sql.*;
    public class? jdbc
    {
    ?String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    ?String theUser="admin";
    ?String thePw="manager";
    ?Connection c=null;
    ?Statement conn;
    ?ResultSet rs=null;
    ?public jdbc()
    ?{
    ??try{
    ??? Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    ????????? c = DriverManager.getConnection(dbUrl,theUser,thePw);
    ??? conn=c.createStatement();
    ??}catch(Exception e){
    ???e.printStackTrace();
    ??}
    ?}
    ?public boolean executeUpdate(String sql)
    ?{
    ???try
    ???{
    ?????conn.executeUpdate(sql);
    ?????return true;
    ???}
    ???catch (SQLException e)
    ???{
    ?????e.printStackTrace();
    ?????return false;
    ???}
    ?}
    ?public ResultSet executeQuery(String sql)
    ?{
    ???rs=null;
    ???try
    ???{
    ?????rs=conn.executeQuery(sql);
    ???}
    ???catch (SQLException e)
    ???{
    ?????e.printStackTrace();
    ???}
    ???return rs;
    ?}
    ?public void close()
    ?{
    ???try
    ???{
    ?????conn.close();
    ?????c.close();
    ???}
    ???catch (Exception e)
    ???{
    ?????e.printStackTrace();
    ???}
    ?}
    ?public static void main(String[] args)
    ?{
    ??ResultSet rs;
    ??jdbc conn = new jdbc();
    ??rs=conn.executeQuery("select * from test");
    ??try{
    ??while (rs.next())
    ??{
    ???System.out.println(rs.getString("id"));
    ???System.out.println(rs.getString("name"));
    ??}
    ??}catch(Exception e)
    ??{
    ???e.printStackTrace();
    ??}
    ?}
    }

    2、Class.forName的作用?為什么要用?
    答:
    調用該訪問返回一個以字符串指定類名的類的對象。

    3、Jdo是什么?
    答:
    JDO是Java對象持久化的新的規范,為java data object的簡稱,也是一個用于存取某種數據倉庫中的對象的標準化API。JDO提供了透明的對象存儲,因此對開發人員來說,存儲數據對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發人員解脫出來,從而集中時間和精力在業務邏輯上。另外,JDO很靈活,因為它可以在任何數據底層上運行。JDBC只是面向關系數據庫(RDBMS)JDO更通用,提供到任何數據底層的存儲功能,比如關系數據庫、文件、XML以及對象數據庫(ODBMS)等等,使得應用可移植性更強。

    4、在ORACLE大數據量下的分頁解決方法。一般用截取ID方法,還有是三層嵌套方法。
    答:
    一種分頁方法
    <%
    ? int i=1;
    ? int numPages=14;
    ? String pages = request.getParameter("page") ;
    ? int currentPage = 1;
    ? currentPage=(pages==null)?(1):{Integer.parseInt(pages)}
    ? sql = "select count(*) from tables";
    ? ResultSet rs = DBLink.executeQuery(sql) ;
    ? while(rs.next()) i = rs.getInt(1) ;
    ? int intPageCount=1;
    ? intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);
    ? int nextPage ;
    ? int upPage;
    ? nextPage = currentPage+1;
    ? if (nextPage>=intPageCount) nextPage=intPageCount;
    ? upPage = currentPage-1;
    ? if (upPage<=1) upPage=1;
    ? rs.close();
    ? sql="select * from tables";
    ? rs=DBLink.executeQuery(sql);
    ? i=0;
    ? while((i%>
    //輸出內容
    //輸出翻頁連接
    合計:<%=currentPage%>/<%=intPageCount%>
    第一頁

    href="List.jsp?page=<%=upPage%>">上一頁
    <%
    ? for(int j=1;j<=intPageCount;j++){
    ? if(currentPage!=j){
    %>
    ? [<%=j%>]
    <%
    ? }else{
    ? out.println(j);
    ? }
    ? }
    %>
    下一頁最后頁


    Xml方面

    1、xml有哪些解析技術?區別是什么?
    答:
    有DOM,SAX,STAX等
    DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結構所造成的,這種結構占用的內存較多,而且DOM必須在解析文件之前把整個文檔裝入內存,適合對XML的隨機訪問SAX:不現于DOM,SAX是事件驅動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結束,或者標簽開頭與標簽結束時,它會觸發一個事件,用戶通過在其回調事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問
    STAX:Streaming API for XML (StAX)

    2、你在項目中用到了xml技術的哪些方面?如何實現的?
    答:
    用到了數據存貯,信息配置兩方面。在做數據交換平臺時,將不能數據源的數據組裝成XML文件,然后將XML文件壓縮打包加密后通過網絡傳送給接收者,接收解密與解壓縮后再同XML文件中還原相關信息進行處理。在做軟件配置時,利用XML可以很方便的進行,軟件的各種配置參數都存貯在XML文件中。

    3、用jdom解析xml文件時如何解決中文問題?如何解析?
    答:
    看如下代碼,用編碼方式加以解決
    package test;
    import java.io.*;
    public class DOMTest
    {
    ?private String inFile = "c:\\people.xml";
    ?private String outFile = "c:\\people.xml";?
    ?public static void main(String args[])
    ?{
    ??? ?new DOMTest();
    ??? }
    ?public DOMTest()
    ?{
    ??try
    ???? {?
    ???? ?javax.xml.parsers.DocumentBuilder builder =
    ???? ??

    javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
    ???? ?org.w3c.dom.Document doc = builder.newDocument();
    ???? ?org.w3c.dom.Element root = doc.createElement("老師");
    ???? ?org.w3c.dom.Element wang = doc.createElement("王");
    ???org.w3c.dom.Element liu = doc.createElement("劉");
    ???? ?wang.appendChild(doc.createTextNode("我是王老師"));
    ???? ?root.appendChild(wang);
    ???? ?doc.appendChild(root);
    ???? ?javax.xml.transform.Transformer transformer =
    ???? ??javax.xml.transform.TransformerFactory.newInstance().newTransformer();
    ???? ?transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312");
    ???? ?transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");??

    ? ?
    ???? ?transformer.transform(new javax.xml.transform.dom.DOMSource(doc),
    ???? ???????new

    javax.xml.transform.stream.StreamResult(outFile));
    ???? }
    ???? catch (Exception e)
    ???? {
    ???? ?System.out.println (e.getMessage());
    ???? }
    ??? }
    }

    4、編程用JAVA解析XML的方式.
    答:
    用SAX方式解析XML,XML文件如下:


    ? 王小明
    ? 信息學院??
    ? 6258113
    ? 男,1955年生,博士,95年調入海南大學
    ?

    ?事件回調類SAXHandler.java
    ?import java.io.*;
    import java.util.Hashtable;
    import org.xml.sax.*;
    public class SAXHandler extends HandlerBase
    ? {
    ? private Hashtable table = new Hashtable();
    ? private String currentElement = null;
    ? private String currentValue = null;
    ? public void setTable(Hashtable table)
    ??? {
    ??? this.table = table;
    ??? }
    ? public Hashtable getTable()
    ??? {
    ??? return table;
    ??? }
    ? public void startElement(String tag, AttributeList attrs)
    ? throws SAXException
    ??? {
    ??? currentElement = tag;
    ??? }
    ? public void characters(char[] ch, int start, int length)
    ? throws SAXException
    ??? {
    ??? currentValue = new String(ch, start, length);
    ??? }
    ? public void endElement(String name) throws SAXException
    ??? {
    ??? if (currentElement.equals(name))
    ????? table.put(currentElement, currentValue);
    ??? }
    ? }
    JSP內容顯示源碼,SaxXml.jsp:





    <%@ page errorPage="ErrPage.jsp"
    contentType="text/html;charset=GB2312" %>
    <%@ page import="java.io.*" %>
    <%@ page import="java.util.Hashtable" %>
    <%@ page import="org.w3c.dom.*" %>
    <%@ page import="org.xml.sax.*" %>
    <%@ page import="javax.xml.parsers.SAXParserFactory" %>
    <%@ page import="javax.xml.parsers.SAXParser" %>
    <%@ page import="SAXHandler" %>
    <%
    File file = new File("c:\\people.xml");
    FileReader reader = new FileReader(file);
    Parser parser;
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();
    SAXHandler handler = new SAXHandler();
    sp.parse(new InputSource(reader), handler);
    Hashtable hashTable = handler.getTable();
    out.println("");
    out.println("" + "");
    out.println("" + "");
    out.println("" + "");
    out.println("" + "");
    out.println("
    教師信息表
    姓名" +
    ? (String)hashTable.get(new String("name")) + "
    學院" +
    ? (String)hashTable.get(new String("college"))+"
    電話" +
    ? (String)hashTable.get(new String("telephone")) + "
    備注" +
    ? (String)hashTable.get(new String("notes")) + "
    ");
    %>

    EJB方面

    1、EJB2.0有哪些內容?分別用在什么場合? EJB2.0和EJB1.1的區別?
    答:
    規范內容包括Bean提供者,應用程序裝配者,EJB容器,EJB配置工具,EJB服務提供者,系統管理員。這里面,EJB容器是EJB之所以能夠運行的核心。EJB容器管理著EJB的創建,撤消,激活,去活,與數據庫的連接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....

    2、EJB與JAVA BEAN的區別?
    答:
    Java Bean 是可復用的組件,對Java Bean并沒有嚴格的規范,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由于Java Bean是被容器所創建(如Tomcat)的,所以Java Bean應具有一個無參的構造器,另外,通常Java Bean還要實現Serializable接口用于實現Bean的持久性。Java Bean實際上相當于微軟COM模型中的本地進程內COM組件,它是不能被跨進程訪問的。Enterprise Java Bean 相當于DCOM,即分布式組件。它是基于Java的遠程方法調用(RMI)技術的,所以EJB可以被遠程訪問(跨進程、跨計算機)。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創建和管理。客戶通過容器來訪問真正的EJB組件。

    3、EJB的基本架構
    答:
    一個EJB包括三個部分:
    ? Remote Interface 接口的代碼
    ? package Beans;
    ? import javax.ejb.EJBObject;
    ? import java.rmi.RemoteException;
    ? public interface Add extends EJBObject
    ? {
    ?? //some method declare
    ? }
    ? Home Interface 接口的代碼
    ? package Beans;
    ? import java.rmi.RemoteException;
    ? import jaax.ejb.CreateException;
    ? import javax.ejb.EJBHome;
    ? public interface AddHome extends EJBHome
    ? {
    ??? //some method declare
    ? }
    ? EJB類的代碼
    ? package Beans;
    ? import java.rmi.RemoteException;
    ? import javax.ejb.SessionBean;
    ? import javx.ejb.SessionContext;
    ? public class AddBean Implements SessionBean
    ? {
    ??? //some method declare
    ? }?

    J2EE,MVC方面

    1、MVC的各個部分都有那些技術來實現?如何實現?
    答:
    MVC是Model-View-Controller的簡寫。"Model" 代表的是應用的業務邏輯(通過JavaBean,EJB組件實現), "View" 是應用的表示面(由JSP頁面產生),"Controller" 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。

    2、應用服務器與WEB SERVER的區別?
    希望大家補上,謝謝


    3、J2EE是什么?
    答:
    Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業級應用模型(enterpriese application model).在這樣的一個應用系統中,可按照功能劃分為不同的組件,這些組件又可在不同計算機上,并且處于相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業信息系統(EIS)層。

    4、WEB SERVICE名詞解釋。JSWDL開發包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。
    答:
    Web Service描述語言WSDL
    SOAP即簡單對象訪問協議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級協議。
    UDDI 的目的是為電子商務建立標準;UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊中心的實現標準規范,同時也包含一組使企業能將自身提供的Web Service注冊,以使別的企業能夠發現的訪問協議的實現標準。


    5、BS與CS的聯系與區別。
    希望大家補上,謝謝

    6、STRUTS的應用(如STRUTS架構)
    答:
    Struts是采用Java Servlet/JavaServer Pages技術,開發Web應用程序的開放源碼的framework。 采用Struts能開發出基于MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能:
    一.包含一個controller servlet,能將用戶的請求發送到相應的Action對象。
    二.JSP自由tag庫,并且在controller servlet中提供關聯支持,幫助開發員創建交互式表單應用。
    三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。

    設計模式方面

    1、開發中都用到了那些設計模式?用在什么場合?
    答:
    每個模式都描述了一個在我們的環境中不斷出現的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重復相同的工作。主要用到了MVC的設計模式。用來開發JSP/Servlet或者J2EE的相關應用。簡單工廠模式等。


    2、UML方面
    答:
    標準建模語言UML。用例圖,靜態圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實現圖,

    JavaScript方面

    1、如何校驗數字型?
    var re=/^\d{1,8}$|\.\d{1,2}$/;
    var str=document.form1.all(i).value;
    var r=str.match(re);
    if (r==null)
    {
    ?? sign=-4;
    ?? break;
    }
    else{
    ?? document.form1.all(i).value=parseFloat(str);
    }


    CORBA方面

    1、CORBA是什么?用途是什么?
    答:
    CORBA 標準是公共對象請求代理結構(Common Object Request Broker Architecture),由對象管理組織 (Object Management Group,縮寫為 OMG)標準化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯為聯編)和允許應用程序間互操作的協議。 其目的為:
    用不同的程序設計語言書寫
    在不同的進程中運行
    為不同的操作系統開發


    LINUX方面

    1、LINUX下線程,GDI類的解釋。
    答:
    LINUX實現的就是基于核心輕量級進程的"一對一"線程模型,一個線程實體對應一個核心輕量級進程,而線程之間的管理在核外函數庫中實現。
    GDI類為圖像設備編程接口類庫。

    posted @ 2005-03-19 21:18 小毅 閱讀(269) | 評論 (0)編輯 收藏
    javax.microedition.lcdui.Display類

    方法
    static Display getDisplay(MIDlet midlet)                       獲取Display類的實例
    Displayable getCurrent()                                                   獲取目前Displayable類的實例
    void setCurrent(Alert alert,Displayable displayable)    顯示所指定的報警對話框的實例和被指定Displayable類的實例

    void setCurrent(Displayable displayable)                       顯示所指定的Displayable類的實例
     
    boolean isColor()                                                                  判斷設備是否支持彩色

    int numColors()                                                                     獲取設備能用的色彩位數或灰度

    void callSerial(Runnable runnable)                                     重繪圖后,調用Runnable類的實例

    javax.microedition.lcdui.Displayable類

    方法
    void addCommand(Command command)                           將命令關聯到Displayabel類的實例

    void removecommand (Command command )                     撤消關聯
      
    void setCommandListener (CommandListener commandlistener)   關聯CommandListener到Displayable類的實例

    boolean isShown ()                                                                 判斷Displayable類實例時候在屏幕上顯示

    javax.microedition.lcdui.Command類

    Command(String label, int commandTYPE, int priority)      創建Command類的實例,顯示指定的標簽,設置指定的命令類型和優先級

    int getCommandType()                                                            獲取命令的命令類型

    String getLabel()                                                                        獲取命令的標簽

    int getPriority()                                                                           獲取命令的優先級

    javax.microedition.lcdui.CommandListener接口

    方法

    void commandAction(Command command,Displayable dispalyable)  處理Command類的實例

    javax.microedition.lcdui.Item類

    方法
    String  getLabel()                                                                          獲取與Item類的實例關聯的標簽

    void setLabel(String label)                                                           為Item類的實例指定一個標簽

    javax.microedition.ItemStateListener接口
    方法

    void itemStateChanged (Item item)                                           處理Item類的實例的改變

    javax.microedition.midlet.MIDlet 類

    方法
    abstract void destroyApp(boolean unconditional)                    關閉MIDlet

    abstract void pauseApp()                                                               暫停MIDlet

    abstract void startApp()                                                                 激活MIDlet

    final void notify Destroyed()                                                           請求停止MIDlet
    final void notifyPause()                                                                    請求暫停MIDlet
    final void notifyRequset()                                                                請求激活MIDlet

    final String getAppProperty(string key)                                          從JAD或JAR文件獲取屬性

    javax.microedition.midlet.MIDletStateChangeException類

    方法
    MIDletStateChangeException                                                        不用測試生成心得MIDletStateChangeException對象

    MIDletStateChangeException(String string)                            生成新的帶消息的MIDletStateChangeException對象
    posted @ 2005-03-16 20:21 小毅 閱讀(195) | 評論 (0)編輯 收藏

    在應用程序即將使用一個對象時在分配這個對象,而不是在應用程序啟動是全部分配。
    一旦應用程序不再需要一個對象,就要將所有對該對象的引用賦值為null
    總是重用對象而不是創建對象。
    遵守拇指法則


    應用程序通常是單線程的。
    一次只能運行一個應用程序
    應用程序是事件驅動的
    用戶從一個應用程序切換到另一個應用程序,而不是結束應用程序
    移動小型計算設備的使用方式通常是每次只用兩分鐘,每次用30次。
    應用程序必須在兩分鐘之內完成一項任務。

    posted @ 2005-03-14 21:58 小毅 閱讀(167) | 評論 (0)編輯 收藏

    我還喜歡她嗎?我也不知道,真的真的模糊了

    我記得有段時間狠狠的喜歡過,也信誓旦旦的承諾過


    雖然在繁忙的學習之間會想起她,雖然是一閃而過,但是心里還是酸酸的。


    她很漂亮,至少我一直這樣想的,倒不是說就是一見鐘情的那種。感覺卻是聊天里來的
    ….


    似乎這很老套。可就是這樣簡單的打招呼,親切的問候……似乎就忘不了了
    .


    即使真的喜歡又會怎么樣呢?想起她就這樣反問自己。“見都沒見過呢”。“先有事業,在有妻室”,“熱血男兒志在四方”,
    理由就是這樣一個接一個的會涌上來
    .


    苦苦笑笑
    得了吧

    就算認識過,就算真的相愛過,在距離面前0

     

    我知道答案其實一直一直都沒變過,變的只是周圍的環境,繁忙的學習,巨大的工作壓力,讓我漸漸把這個答案深深埋了起來,再不能象以前一天到晚守在電腦前等她上線,再不能拿著手機給她發消息,再不能偷偷打工為她買東東,再不能……………..

     

    好難得周末能這樣輕松的坐在電腦前..(別忘了明天早起上課..-_-

     

    把她放在心里我知道她會永遠在自己心里.

    posted @ 2005-03-05 21:45 小毅 閱讀(162) | 評論 (0)編輯 收藏

    馬上就要畢業了,大學四年的生活一晃而過,過的好快哦。


    讀書的時候總拼命找時間玩..總想星期六星期天有時間可以補回來。呵呵,所以整個大學四年都在縫縫補補。

    人們總是以為一件事情干兩天肯定要比干一天要做好,以前的我也是如此認為,做事慢慢吞吞,總以為花的時間越多就能做的越好。其實錯了,大家都錯了,一天能做好的事情就要花一天做的最好,星期六星期天是拿來放松的,拿來休息的。

    并是不忙忙碌碌就能成功。

    而成功的人就一定是效率高。

    posted @ 2005-02-23 16:48 小毅 閱讀(213) | 評論 (0)編輯 收藏

    回學校啦,呵呵,音響放到最響....

     

    室友添了新電腦...嘿嘿 ....以后爽游戲又方便多啦...HOHO

     

    2005  一切都在改變.....我也要加油干起來了~~~

    posted @ 2005-02-20 19:03 小毅 閱讀(166) | 評論 (0)編輯 收藏

    回家啦 ...終于回家了....

    大學生涯最后一個寒假....happy  new year~~~

    珍惜擁有....

    posted @ 2005-01-31 09:44 小毅 閱讀(216) | 評論 (0)編輯 收藏

    忘記以前的天真,無憂。。。。。在這一年里即將踏入社會。我知道現在我是新人,生活法則,社會規則,我必須一點一滴的從頭開始。。。。2005 奮斗的一年,那里有一座陌生的城市等我去闖蕩,那里有嶄新的事業等我去開拓,以后回頭------我必須告訴自己。。。2005年,我為我自己選者的路而驕傲

    posted @ 2005-01-29 22:52 小毅 閱讀(196) | 評論 (0)編輯 收藏

    Thread  線程
    它能鎖定任何對象占用的內存(內存實際是多種共享資源的一種),所以同一時間只能有一個線程使用特定的內存空間。為達到這個目的,需要使用synchronized關鍵字。
    瀏覽器最初只是純粹的查看程序,這是由于每次采取一些要求編程的操作時,必須將信息反饋回服務器,在服務器那一端進行處理。所以完全可能需要等待數秒乃至數分鐘的時間才會發現自己剛才拼錯了一個單詞。這就叫作“客戶端編程”。
    applet 程序片

    時刻提醒自己注意以下幾個問題:
    (1) 對象是什么?(怎樣將自己的項目分割成一系列單獨的組件?)
    (2) 它們的接口是什么?(需要將什么消息發給每一個對象?)
    在確定了對象和它們的接口后,便可著手編寫一個程序。出于對多方面原因的考慮,可能還需要比這更多的說明及文檔,但要求掌握的資料絕對不能比這還少。

    想象成用遙控板(句柄)操縱電視機(對象)。只要握住這個遙控板,就相當于掌握了與電視機連接的通道。但一旦需要“換頻道”或者“關小聲音”,我們實際操縱的是遙控板(句柄),再由遙控板自己操縱電視機(對象)。如果要在房間里四處走走,并想保持對電視機的控制,那么手上拿著的是遙控板,而非電視機。
    此外,即使沒有電視機,遙控板亦可獨立存在。

    Heap 堆

    Java對象本身永遠都不會置入靜態存儲空間

    wrapper 封裝器  Scope 作用域

    class ATypeName {/*類主體置于這里}
    這樣就引入了一種新類型,接下來便可用new創建這種類型的一個新對象:
    ATypeName a = new ATypeName();

    我們在Java里的全部工作就是定義類、制作那些類的對象以及將消息發給那些對象

    class DataOnly {
      int i;
      float f;
      boolean b;
    }

    這個類并沒有做任何實質性的事情,但我們可創建一個對象:
    DataOnly d = new DataOnly();
    可將值賦給數據成員,但首先必須知道如何引用一個對象的成員。為達到引用對象成員的目的,首先要寫上對象句柄的名字,再跟隨一個點號(句點),再跟隨對象內部成員的名字。即“對象句柄.成員”。例如:
    d.i = 47;
    d.f = 1.1f;
    d.b = false;

    Method 方法

    Java的方法只能作為類的一部分創建。只能針對某個對象調用一個方法

    import的作用是指示編譯器導入一個“包”——或者說一個“類庫”

    posted @ 2005-01-24 22:33 小毅 閱讀(204) | 評論 (0)編輯 收藏

    梵天:印度教神話中三大最高神之一。世界的創造者。佛教吸收其為護法神,稱“大梵天王”

    濕婆:印度三大神的第三位。又叫“西哇”。是最受崇拜的神之一。是象征“昌盛”和“吉兆”的神。同時又象征“毀滅”,是起死回生之神。一般被視為“破壞神”。同時他也是生殖之神,傳到中國后與藏教密宗中的大歡喜菩薩互相影響。有時也被人塑成一面目猙獰的怒漢和一極美女子交合的形象。濕婆表現憤怒的一面傳入日本后,作為大黑天十分聞名,是武士和浪人的保護神。

    毗濕奴:三大主神之一,與前兩者并稱為三聯神。稱謂極多,有一千種以上,常見的為“那羅衍”,“世界之主”等。

    因陀羅:雷電之神,眾神之首,后成為天王。被佛教吸收后又叫“帝釋天”,為善見城城主。

    吉祥天:即拉克什密。被稱為毗濕奴的妻子。在最古老的神話中與大梵天,俱毗羅,因陀羅聯系在一起,是佛教的護法天王。是毗沙天門王之妹,號稱“功德天王”。毗沙天王是北方天王,是財富之神,勝利,護法之神。

    釋迦:原名喬達摩。悉達多,佛教的創始人。相傳為印度北部小國王子,后舍棄家庭,權位,獨自出走。七年后在菩提樹下頓悟成佛。又被稱為大日如來。佛教中最為崇高的神,曾降伏過中國的戰斗之神齊天大圣。

    天龍八部:即八部眾,說法見于佛經。《法華經。提婆達多品》中曾提到過:“天龍八部,人與非人,皆遙見彼龍女成佛、”

    天:即帝釋天為首的天神。天神的壽命也會完結,這是因為佛家相信事事皆有無常。天神臨死前會出現“衣裳垢膩,頭上花萎,身體臭穢,腋下出汗,不樂本位”這五種征兆,也就是所謂的“天人五哀”。

    阿修羅:阿修羅是與天對立的一族。他們非常好戰,男的極丑,女的極美。阿修羅有美女而無美食。天有美食而無美女。雙方常因此而互相爭斗,場面十分慘烈。“修羅場”的說法即從此來。阿修羅一族被視為戰神,他還有個化身是火神大摩尼,也就是“拜火教”和中土“明教”的最高神。

    龍:龍無論在東西方神話,還是在奇幻文化中都是個非常歡迎的角色。以其獨特的外形,強大的力量備受青睞。可以說一說到奇幻,人們就會想到龍,龍幾乎成了奇幻文學的代表。東西方的龍雖然有所不同,但它們也有很多相似之處,頭部特征,善飛翔,會從嘴中吐出物質攻擊等。這些驚人的巧合讓人忍不住懷疑是否以前有此一類生物存在。龍的記載在我國由來以久,大量詳實,準確,生動的記錄貫穿著整個古代正史,有紀可考的記錄最后見于民國初年,讓人十分迷惑。但天龍八部中的龍其實說的是一種大蟒蛇。

    乾達婆:擁有黃金之翼半人半鳥的精靈。天界的音樂家。

    迦樓羅:中國人很熟悉的一種大鳥,傳入中國后演變成了金翅大鵬鳥。原型是種翅有種種莊嚴寶色的神鳥,一天吞噬一條龍王和五百條小龍(哪來這么多龍讓它吃?),五百年自焚一次,然后又從火焰中復活,鳳凰重生的傳說即來源于此。

    其他有代表性的神
    巴爾:又名巴盧爾或巴卡爾,出現在不同神話中,名稱也不同。美索不達米亞一帶的主神,掌管雷電和農牧,生殖。也是死而復生之神。與兄長穆圖是死敵。起先是善神,后在基督教義中被視為邪神。在《暗黑破壞神二》中登場,被視為毀滅之王。

    穆圖:也名莫特。死神,冥界之神,混沌之神,干旱和歉收之神。是巴爾的兄長和主要對手。出自閃米特族神話。

    阿卡特拉姆:凱爾特神話中的勇敢之神,達努神族努阿達的別名。曾與邪神巴爾殊死作戰。

    須佐之男:日本神話中最早的大神依邪那歧三子女中的最幼者,另兩為就是日本最高神天照大神,和月讀了。他全名為素盞鳴尊,亂暴之神,因其狂暴的性格而被視為破壞神。他斬殺了八歧大蛇,成為神話中的英雄。

    伊希斯:埃及神話中神力非凡的巫師,被視為魔法的始祖。

    塞特:出自埃及神話,希臘人稱之為緹豐,為惡靈的化身,永遠與善良作對。傳說他曾化身黑豬,每月攻擊啖食月亮。

    哈奴曼:印度版孫悟空,是印度神話中的神猴。風神和母猴所生之子。在英雄敘事詩《羅摩衍那》中登場成為幫助羅摩王子的好幫手。他聰明非凡,力能排山倒海,善于騰云駕霧,變幻形象和大小(還說不是孫悟空?),多次救助羅摩王子,是智慧和力量的化身。

    塞克爾:埃及神話中的死者之神。以鷹頭木乃伊的形象出現,傳說為冥界的判官,常用一架天平來稱量死者的心臟,以決定他的待遇。在古埃及法老陵墓中的壁畫上大量出現,在羅。斯托神廟中被膜拜。

    posted @ 2005-01-23 19:08 小毅 閱讀(612) | 評論 (0)編輯 收藏

    奧丁:北歐阿斯神族的至高神,諸神之王,也是死者之王,戰神,權力之神,魔法之神。曾冒死以一人之力闖入冥界,為人類取得古文字而擁有大量知識,為此失去一只眼睛。他身形高大,身披金甲,騎八足神馬“斯萊普尼斯”,手持名槍“岡尼爾”,居住在“瓦爾哈拉”的神殿中,讓女武神收集死者的魂魄,為終末之戰“饒納諾克”即“諸神的黃昏”做準備。為舉世聞名的北歐蠻族,維京人所信仰。他們堅信如果英勇戰死就可以進入“瓦爾哈拉”,所以戰斗是勇猛無比,曾席卷過大半個歐洲。

    女武神(瓦爾基里):侍奉主神奧丁的女神,奉命奔波在戰場上,收集戰死的勇士的靈魂,帶往“瓦爾哈拉”,讓其復活以應付諸神與巨人族的“諸神的黃昏”的最終戰。女武神們各個武技高超,為人類的保護神 。著名劇作家瓦格納曾為其譜寫過名曲《女武神的飛馳》(瓦格納以及他的作品和生平會在以后介紹,他的著名作品《尼伯龍根的指環》是歌劇版的奇幻小說,有興趣的可以找來聽聽,十分精彩!)

    齊格弗里德:德國著名英雄敘事詩《尼伯龍根之歌》里登場的英雄,他得到了擁有至高力的指環,可以聽懂鳥語。他殺死過巨龍,沐浴過龍血,成為有最強肉體的不死男人。但卻因為沐浴時一片樹葉掉在了背上,肩胛骨下的一處成為致命弱點而被人殺死。(詳情請參閱瓦格納的《尼伯龍根的指環》)

    洛基:最初被看作仁慈之神,因為其杰出的才能和外貌而被阿斯神族接受,但身為巨人族的他生性喜歡喜歡挑撥其他神爭斗,還殺死了主神奧丁的兒子,被諸神囚禁,在諸神與巨人族的終末戰“諸神的黃昏”時爆發,加入巨人族陣營戰斗,最后帶來了諸神的毀滅。

    瑟特:住在火之國度的巨人,“諸神之黃昏”中率火巨人出戰。

    赫爾:主宰地下世界的女神,據說是洛基的女兒,奧丁賦予她到冥界尼弗爾海姆,統治九界的權力。

    焚里爾:北歐神話中最著名的魔獸,洛基的子女之一,巨大狼形怪物,傳說當他張開嘴后上下鄂可以頂住天地,因其性格兇暴而被矮人族囚困,直到終末戰時,他才脫困,并且吞下了太陽和主神奧丁。

    托爾:著名的雷電之神,名字即“轟鳴者”的意思,諸神中最具怪力的神,以巨大鐵槌作戰。他的鐵槌也很著名,“托爾的鐵槌”在許多作品中幾乎成為了力量的代表。他還是豐饒之神,主管一切人類所必須經歷的儀式,如婚喪嫁娶等。“諸神之黃昏”中托爾和世界蛇尤蒙岡多同歸于盡。尤蒙岡多是一條自己銜著自己的大蛇,象征無限。

    北歐命運三女神:掌握“存在”和“未來” 斯克爾特 掌握“必然”和“現在” 威爾珊迪
    掌握命運和過去 ???(沒找到。)

    多瓦夫:矮人中的妖精族(奇怪的組合)。據說當初是蛆蟲,因啃食了最初巨人尤米爾的遺體而獲得了人形和智慧。擁有天才的鍛造本領,是武器和工藝品的杰出制造者,也就是奇幻小說中常常出現的矮人族設定的原形,代表人物很多,如《龍槍》中弗林特。火爐。他們共同的特點為矮胖的身體,大胡子,手持戰斧,忠誠而脾氣暴躁。

    BERSERK:巴薩卡,這個詞源于古代北歐語言,意思是“披著熊皮的人”后為“狂戰士”的稱謂。是奇幻作品中最受歡迎的職業設定之一。狂戰士受主神奧丁的加護,戰斗中會陷入極度興奮的忘我狀態,以超強的肉體打擊敵人,沒有恐懼,疼痛的感覺。嚴重者會陷入癲狂而死。

    posted @ 2005-01-23 19:07 小毅 閱讀(800) | 評論 (0)編輯 收藏

    宙斯:希臘神話中的至高神,掌握雷電,所以又被稱為雷神。在母親蕾亞的支持下,殺了父親克洛諾斯,成為了第三代神王。性格極為好色,常背著妻子赫拉與其他女神 和凡人私通,私生子無數。

    克洛諾斯:前奧林波斯神詆之一,天神烏拉諾和大地女神瑞亞之子,泰坦巨人中的最幼者,推翻父親成為第二代神王,其后卻遭到與父親同樣的命運。

    波塞冬:海之皇,宙斯的二哥,手持巨大三叉戟,統領海中所有生物。有被描寫為半人半魚的模樣,能呼風喚雨。性格兇暴殘忍。

    哈帝斯:宙斯,波塞冬,得墨忒爾的兄長,主管冥界,力量很強,但性格平和。除了搶奪豐收女神得墨忒爾之女春之女神玻爾塞富涅為妻外,無它惡行。

    瑞亞:希臘神話中的大地女神,是奧林波斯神系之前的古神,也是泰坦之母,她與烏拉諾生下了眾多希臘神詆。

    帕拉斯。雅典娜:智慧女神和正義戰爭女神,宙斯和墨涅斯之女,她出生時宙斯頭部劇烈疼痛,之后用大斧劈開后,雅典娜手持長槍,身披戰甲從中跳出。是很受歡迎的神。因失手殺死好友帕拉斯而改名為帕拉斯。雅典娜。

    阿波羅;太陽神,宙斯和勒托之子,月神和狩獵女神阿爾忒彌斯的兄長,希臘十二大神詆之一,又名赫利俄斯。主掌光明,醫藥,文學,詩歌,音樂等。每天架天馬拉乘的的黃金車巡游天上一周。

    阿爾忒彌斯:月神,狩獵女神,純潔之神。所以也被稱為處女的保護神。阿波羅的孿生妹妹。

    阿瑞斯:戰神,是兇殘,狡詐,非理性的,為戰爭而戰爭的神。曾與工匠之神的妻子維納斯私通,被裝進一張工匠之神特制的大網中而無法脫身。(維納斯原為羅馬神詆,后為希臘神話所吸收。)

    赫爾墨斯:宙斯與阿特拉斯的女兒邁亞所生的兒子。腳生雙翼,速度如飛,成為天界眾神傳令的使者,后為旅人,商人,盜賊的保護神,經常化為凡人下界幫助保護者。

    狄俄涅索斯:酒神,拉丁文名字為巴卡斯,傳說中釀酒的發明人,形象為一手持酒杯,一手拿松果木神杖,后升為歡樂,文明之神。

    赫拉克勒斯:宙斯與凡人的私生子,為神母赫拉所仇視,但在雅典娜的巧妙安排下,赫拉為其哺過乳。出生后既力大無窮,曾于搖籃中捏死過兩條巨蛇。成人后,完成了號稱不可能完成的十二件大功。因此其后升為大力神。因在完成十二件大功中替人類掃除了眾多妖魔怪獸,并解放了為宙斯囚禁的善神普羅米修斯,所以受人愛戴。富于反抗精神,曾不滿宙斯的專制而反抗神界。

    刻耳柏洛斯:地獄的守門狗,三頭而蛇尾的魔獸,以青銅之聲攻擊敵人,是巨人和怪物所生的怪獸。

    posted @ 2005-01-23 19:06 小毅 閱讀(2138) | 評論 (1)編輯 收藏
    一、馬太效應
        《新約 馬太福音》中有這樣一個故事,一個國王遠行前,交給三個仆人每人一錠銀子,吩咐他們:“你們去做生意,等我回來時,再來見我。”國王回來時,第一個仆人說:“主人,你交給我們的一錠銀子,我已賺了10錠。”于是國王獎勵他10座城邑。第二個仆人報告說:“主人,你給我的一錠銀子,我已賺了5錠。”于是國王例獎勵了他5座城邑。第三個仆人報告說:“主人,你給我的一錠銀子,我一直包在手巾里存著,我怕丟失,一直沒有拿出來。”于是國王命令將第三個仆人的一錠銀子也賞給第一個仆人,并且說:“凡是少的,就連他所有的也要奪過來。凡是多的,還要給他,叫他多多益善。”這就是馬太效應。看看我們周圍,就可以發現許多馬太效應的例子。朋友多的人會借助頻繁的交往得到更多的朋友;缺少朋友的人會一直孤獨下去。金錢方面更是如此,即使投資回報率相同,一個比別人投資多10倍的人,收益也多10倍。
        這是個贏家通吃的社會,善用馬太效應,贏家就是你。
      
      對企業經營發展而言,馬太效應則告訴我們,要想在某一個領域保持優勢,就必須在此領域迅速做大。當你成為某個領域的領頭羊的時候,即使投資回報率相同,你也能更輕易的獲得比弱小的同行更大的收益。而若沒有實力迅速在某個領域做大,就要不停地尋找新的發展領域,才能保證獲得較好的回報。
    二、手表定理
        手表定理是指一個人有一只表時,可以知道現在是幾點鐘,而當他同時擁有兩只表時卻無法確定。兩只表并不能告訴一個人更準確的時間,反而會讓看表的人失去對準確時間的信心。你要做的就是選擇其中較信賴的一只,盡力校準它,并以此作為你的標準,聽從它的指引行事。記住尼采的話:“兄弟,如果你是幸運的,你只需有一種道德而不要貪多,這樣,你過橋更容易些。”
        如果每個人都“選擇你所愛,愛你所選擇”,無論成敗都可以心安理得。然而,困擾很多人的是:他們被“兩只表”弄得無所,心身交瘁,不知自己該信仰哪一個,還有人在環境、他人的壓力下,違心選擇了自己并不喜歡的道路,為此而郁郁終生,即使取得了受人矚目的成就,也體會不到成功的快樂。
       
      手表定理在企業經營管理方面給我們一種非常直觀的啟發,就是對同一個人或同一個組織的管理不能同時采用兩種不同的方法,不能同時設置兩個不同的目標。甚至每一個人不能由兩個人來同時指揮,否則將使這個企業或這個人無所適從。手表定理所指的另一層含義在于每個人都不能同時挑選兩種不同的價值觀,否則,你的行為將陷于混亂。
    posted @ 2005-01-23 19:00 小毅 閱讀(276) | 評論 (1)編輯 收藏

    練級無至盡,現在網絡游戲似乎除了練級還是練級,一切都是為了練級...

    是不是可以在游戲中加入年齡這種概念,即可以把在線時間換算成游戲中角色年齡,角色年齡只跟角色在線時間有關,不管角色在線上做什么.而角色的各項技能又和角色年齡有關,在各個年齡段練習不同的技能,打怪只是提高自己的技能階級.角色到達一定年齡階段角色技能會衰減....還想的不是很成熟..

     

     

    posted @ 2005-01-21 19:12 小毅 閱讀(155) | 評論 (0)編輯 收藏

    所有東西都是對象.

    程序就是對象的組合,對象之間通過消息聯系

    對象就是類class的一個實例.類的最重要的特征就是能發什么樣的消息給對象.!

    對象可以包含對象.封裝! 

    interface規定了可對一個特定對象發那些請求.

    若只是簡單地繼承一個類,并不做其他任何事情,來自基礎類接口的方法就會直接照搬到衍生類。這意味著衍生類的對象不僅有相同的類型,也有同樣的行為,這一后果通常是我們不愿見到的。

    等價與類似.新類型擁有舊類型的接口,但也包含了其他函數,所以不能說它們是完全等價的


    我們將這種把衍生類型當作它的基本類型處理的過程叫作“Upcasting”(上溯造型)。

    將一條消息發給對象時,如果并不知道對方的具體類型是什么,但采取的行動同樣是正確的,這種情況就叫作“多形性”(Polymorphism)。

    在面向對象的程序設計中,由于C++的引入而顯得尤為突出的一個問題是:所有類最終是否都應從單獨一個基礎類繼承。在Java中(與其他幾乎所有OOP語言一樣),對這個問題的答案都是肯定的,而且這個終級基礎類的名字很簡單,就是一個“Object”。

    上溯造型成一種更“通用”的類型。而是下溯造型成一種更“特殊”的類型

    posted @ 2005-01-20 12:36 小毅 閱讀(267) | 評論 (0)編輯 收藏

    自我墮落了兩天了...

    我該回到原來的生活中去了...

    真的該回去了....

    恩....努力,加油,我不要醬紫的反思!!!!

    posted @ 2005-01-19 22:41 小毅 閱讀(155) | 評論 (0)編輯 收藏

    - - !

    在狗海和叉叉海中被無情的蹂躪....

    嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚~~~~~

    posted @ 2005-01-18 22:11 小毅 閱讀(137) | 評論 (0)編輯 收藏

    晶晶:

        17號聽說你的噩耗....

      一直 希望你能堅持的走回來 ...但....

       雖然你我并不相識...我衷心祝福你在天堂的路要走好...祝福.....

    posted @ 2005-01-18 11:34 小毅 閱讀(164) | 評論 (0)編輯 收藏

    《軒轅本紀》有神獸白澤的故事:(黃)帝巡狩,東至海,登桓山,于海濱得白澤神獸,能言,達于萬物之情。因問天下鬼神之事。自古精氣為物、游魂為變者凡萬一千五百二十種,白澤言之;帝令以圖寫之,以示天下。” 

        
    白澤 昆侖山上的神獸,著名的神獸,渾身雪白,能說人話,通萬物之情,很少出沒,除非當時有圣人治理天下,才奉書而至。
     

        
     出生于東海流破山,其形狀如牛,無角,身形巨大,昏黑色,但只有一只腳支撐,也叫獨腳夔。
     
      夔是一種惡獸,能放出如同日月般的光芒和雷鳴般的叫聲。
     

        
    鳳凰 大家很熟悉的神鳥了,頭像雞,頷像燕,頸像蛇,胸象鴻,尾像魚。五德之鳥。
     

        
    麒麟 是品性仁慈、妖力強大的生物,諳悟世理,通曉天意,可以聆聽天命。人的世界有十二個國家,分別由十二個王來統治。王不是以出身或功績來評選,而是由天命來決定。麒麟就是傳達天命,為自己的國家選出王者的神獸。
     
         
      梼杌
     
      原本只是令人害怕厭惡的惡人,根據《左傳》文公十八年:顓頊有不才子,不可教訓,不知詘言,告之則頑,舍之則囂,傲狠明德,以亂天常,天下之民,謂之梼杌。這個不可教訓的惡人死后最終演化成上古著名的魔獸,《神異經·西荒經》記西方荒中,有獸焉,其狀如虎而犬毛,長二尺,人面,虎足,豬口牙,尾長一丈八尺,攪亂荒中,名梼杌。已然是一派怪異扭曲的形象,與其說是魔獸不如說是生化實驗失敗核泄漏的產物。
     
       
      獬豸
     
      古代神裁制度下產生的著名神獸,又被稱為法獸。根據《論衡》和《淮南子·修務篇》的說法它身形大者如牛,小者如羊,樣貌大致類似麒麟,全身長著濃密黝黑的毛發,雙目明亮有神,額上通常有一只獨角,據傳角斷者即死,有被見到長有雙翼,但多數沒有翅膀。擁有很高的智慧,能聽懂人言,對不誠實不忠厚的人就會用角抵觸。后世常將普通羊飼養在神廟,用來代替獬豸
     

      吼
     
        形如兔,兩耳尖長,僅長尺余。獅畏之,蓋吼溺著體即腐。
     
        《偃曝馀談》有載。
     
      
     
      重明鳥
     
        在《拾遺記》中說,堯在位七十年,有積支之國,獻明鳥,一名雙晴言在目。狀如雞,鳴似鳳。解落毛羽,用肉翅而飛。能摶逐獸狼,使妖災群惡不能為害。或一年來數次,或數年都不來。國人都全灑掃門戶,以留重明。如重明鳥未到的時候,國人或刻木,或造銅像,

      為此鳥的形象,放在明戶之間,則魑魅之類,自然退伏。所以到了現在,都刻木像、造銅像或畫圖像,故現在畫雞于門上。
     
      
     
      華方
     
        在《山海經.西次三經》中,有在章峨之山,有一種鳥,型狀如鶴,一足,有紅色的紋和白喙。就是叫做華方。《海外南經》:「華方鳥在東方,青水西,只有一只腳。」而《淮南子.汜論訓》中說,木生畢方。因而有說畢方是木精所變的,而形狀是鳥、一足、不食五谷。《在文選.張衡〔東京賦〕》中說:「華方...老父神,如鳥,兩足一翼,常銜火在人家作怪災也。」而《韓非子.十過》中說:「昔者黃帝合鬼神于西秦山之上,駕象車而蛟龍,畢方并害。袁珂說華方是鳳,鳳為太陽鳥,故「見則其吧有訛火」。《駢雅》:「畢方,兆火鳥也。」鳳即為神,也是災難的象征。《淮南子.本經訓》:「堯之時...大風為害,堯乃使羿...繳風于青邱之澤。」大風即大鳳。《淮南子》「木生畢方」是受五行思想的影響所玫,意即木生火。因畢方為火鳥故用畢方代火,非指畢方生于木。
     

      白虎
     
        在中國,白虎是戰神、殺伐之神。虎具有避邪、禳災、祈豐及懲惡的揚善、發財致富、喜結良緣等多種神力。而它是四靈之一,當然也|是由星宿變成的。是由二十八星宿中,西方七宿:奎、婁、胃、昂、畢、觜、參。所以是西方的代表,而它的白,是因是西方,西方在五行中屬金,色是白的。所以它叫白虎不是因它是白色,而是從五行中說的了。
     
      
     
      玄武
     
        玄武是一種由龜和蛇組合成的一種靈物。玄武的本意就是玄冥,武、冥古音是相通的。武,是黑色的意思;冥,就是陰的意思。玄冥起初是對龜卜的形容:龜背是黑色的,龜卜就是請龜到冥間去詣問袓先,將答案帶回來,以卜兆的形式顯給世人。因此,最早的玄武就是烏龜。以后,玄冥的含義不斷地擴大。龜生活在江河湖海(包括海龜),因而玄冥成了水神;烏龜長壽,玄冥成了長生不老的象征;最初的冥間在北方,殷商的甲骨占卜即「其卜必北向」,所以玄冥又成了北方神
     
      
     
      朱雀
     
        鳳凰在中國來說,是一種代表幸福的靈物。它的原形有很多種。如錦雞、孔雀、鷹鷲、鵠、玄鳥(燕子)等等...又有說是佛教大鵬金翅鳥變成的。鳳凰神話中說的鳳凰是有雞的腦袋、燕子的下巴、蛇的頸、魚的尾、有五色紋。又請鳳是有五種品種,以顏色來分的:紅是鳳、青是鸞鳥、白是天鵝、另有黃和紫的鳳凰又可說是朱雀或玄鳥。朱雀是四靈之一,也和其它三種一樣,它是出自星宿的,是南方七宿的總稱:井、鬼、柳、星、張、翼、軫。聯想起來就是朱雀了。朱為赤色,像火,南方屬火,故名鳳凰。它也有從火里重身的特性,和西方的不死鳥一樣,故又叫火鳳凰。
     
      
     
      青龍
     
        在中國,龍的地位就遠高于印度。因在中國,龍是神物、是至高無上的,也是皇帝的象征。也是東方的代表、五行中是屬木的,也因青色是屬木的,故此有左青龍、右白虎的說法。
     
        星宿的是用廿八星宿中,東方七宿-角、亢、氐、房、心、尾、箕,古人把它們想象成為龍的形象,因位于東方,按陰陽五行給五方配色之說,東方色青,故名「青龍」。又有龍性淫旳說法,和牛交時生麒麟、和豬交時生象。又有龍生九子,都不像龍的說法,是這樣的:大兒是叫囚牛:它平身喜愛音樂,故常立在琴頭上。如漢族的胡琴,白族的三弦琴等。而蒙古的馬頭琴也可能是囚牛的變種。二兒子是睚毗:它平身愛殺所以多被安在兵器上,用以威攝敵軍。同時又用在儀仗上,以顯得更加威嚴。三兒是嘲風:是只獸形龍,樣子有點像狗,它善于瞭望,故多安在殿角上。據說可以威攝妖魔、消滅災禍。第四兒是蒲牢:喜歡吼叫,人們就把它安在鐘上,大多是蒲牢的形象。據說它是住在海濱的,但卻十分怕鯨魚,一但鯨魚發起攻擊,它就會嚇得亂叫。故人們把木杵造成鯨的形狀,以令銅鐘格外響亮。第五兒是狻猊:形似獅子。是外來品,隨佛教傳入中國的,所以性格有點像佛。它好安靜、又愛煙火。所以往往把它安在佛位上或香爐上,讓它為佛門護法。第六兒是霸下:又名赑屃,樣子似龜。相傳上古時它常背起三山五岳來興風作浪。后被夏禹收服,為夏禹立下不少汗馬功勞。治水成攻后,夏禹就把它的功績,讓它自己背起。故中國的石碑多由它背起的。第七兒是狴犴:又名憲章,樣子像虎。相傳它主持正義,而且能明是非,因此它被安在獄門上下、衙門大堂兩則、以及官員出巡時肅靜回避的牌上端,以維護公堂的肅然之氣。第八兒是負屃:因它喜愛文學,故多安在石碑的兩則。么子是螭吻:又名鴟尾,魚形的龍。相傳是大約在南北朝時,由印度「摩竭魚」隨佛教傳入的。它是佛經中,雨神座下之物,能夠滅火。故此,螭吻由此變化出來,所以它多安在屋脊兩頭,作消災滅火的功效。
     
      
     
      饕餮
     
        《神異經·西南荒經》:西南方有人焉,身多毛,頭上戴豕。貪如狠惡,積財而不用,善奪人谷物(上二句原作好自積財,而不食人谷,據《史記·五帝本紀》正義引改)。強者奪老弱者,畏強而擊單,名曰饕餮。《春秋》饕餮者,縉云氏之不才子也。
    ” 
      《左傳·文公十八年》云:縉云氏有不才子,貪于飲食,冒于貨賄,侵欲崇侈,不可盈厭;聚斂積實,不知紀極;不分孤寡,不恤窮匱。天下之民以比三兇,謂之饕餮。《神異經》所謂《春秋》言,即此。
     
        《呂氏春秋·先識》云:周期著饕餮,有首無身,食人未咽,害及其身。宋羅泌《路史·蚩尤傳》注云:蚩尤天符之神,狀類不常,三代彝器,多者蚩尤之像,為貪虐者之戒。其像率為獸形,傅以肉翅。揆其所說,殆亦饕餮。
     
        《左傳》謂饕餮是縉云氏不才子,而《史記·五帝本紀》集解引賈玄曰:縉云氏,姜姓也,炎帝之苗裔,當黃帝時在縉云之官也。蚩尤姜姓,亦為炎帝之苗裔(《路史·蚩尤傳》),故蚩尤很可能即此縉云氏之不才子饕餮。又《山海經·北次二經》所記狍(號鳥),郭璞注以為即《左傳》之饕餮。
     
        附:狍(號鳥):《山海經·北次三經》:鉤吾之山……有獸焉,其狀羊身人面,其目在腋下,虎齒人爪,其音如嬰兒,名曰狍(號鳥),是食人。郭璞注:為物貪(忄林),食人未盡,還害其身,像在夏鼎,《左傳所謂》饕餮是也。
    ” 
      
     
      遠飛雞
     
        又名翻明雞、目羽雞。紫色,翅膀下亦有眼睛。日出夕還。(鴿子的異種)
     
        《洞冥記》有載。
     
      
     
      腓腓
     
        有點象貍,白色的尾巴。養之可以解憂愁。(高級寵物)
     
        《山海經(中山經)》有載。
     
      
     
      諸犍
     
        人面豹身,牛耳一目,有長尾,能發巨聲。行走時銜著尾巴,休息時盤著尾巴。
     
        《山海經(北山經)》有載。
     
      
     
      混沌
     
        長毛四足,如犬,有腹無五臟。抵觸善人,憑依惡人。(絕對惡靈是也)
     
        (另有混沌神之說,另行說明,不歸此處)
     
        《神異經(西荒經)》有載。
     
      
     
      應聲蟲
     
        居于人腹。宿主每發聲,腹中便有小聲效之,且會越來越大。以雷丸可治。(腹語?)
     
        《續墨客揮犀》、《隋唐嘉話》有載。
     
      
     
      慶忌
     
        又名要離。澤精,人形,大概十幾公分高。黃衣黃帽,稱黃色小車,日馳千里。叫它的名字可使之報信(亦有捉魚之說)。歷史上也有人名(吳王僚子,猛將)、塔名為此。
     
        《管子(水地)》、《太平預覽》有載。 

    posted @ 2005-01-17 11:02 小毅 閱讀(1530) | 評論 (1)編輯 收藏
    生命是沒有貴賤之分的,人類和其他物種的生命都是同樣偉大的。剝奪一個弱小生命的行為和殺人并沒有太大的不同,這一點對于魔法師來說尤為重要。若是有一天,你成為一名強大的魔法師,那么,常人的生命在你的眼中也將隨之變得脆弱,而你對生命的認識將決定你是走向黑暗還是光明。要殺死一條脆弱的生命只要一個簡單的法術,要孕育一條偉大的生命卻需要十月懷胎。當你失去對他人生命的熱愛時,你就不會介意使用暗黑系的那些邪惡法術。
    posted @ 2005-01-17 10:57 小毅 閱讀(257) | 評論 (0)編輯 收藏
    http://gd.91.com/bbs/Topic/Topiclist.aspx?URL=0,201,0,0,1,0
    posted @ 2005-01-16 16:33 小毅 閱讀(186) | 評論 (0)編輯 收藏

    手機就是一臺網絡計算機,基于手機的網絡游戲將會成為IT最后的金礦..... 
    一、背景介紹

      現在的移動電話是小型的計算機,它的處理能力與臺式機的標準處理能力相比很有限,但是足夠運行一個小型的游戲。 

      現在的手機的一個特性就是它們還是網絡計算機,能夠高速發送和接收數字數據。 除了語音數據以外,它們還可以發送和接收其它類型的數據。所以類似《傳奇》、《千年》這樣的網絡游戲也可以在手機上實現。

      當然就處理能力和性能而言,當前階段的支持Java的手機很接近第二代控制臺游戲機、80年代中期的家用電腦和早期的手持游戲機。內存通常很有限--一般128KB到500KB--雖然有些智能手機比如Nokia 3650有4 MB內存。與PC相比,它們的輸入和顯示功能也很有限;小屏幕(許多仍然是黑白屏幕),為電話撥號優化的小鍵盤并不針對文本輸入,以及有限的聲音處理能力。

      二、移動游戲是如何實現的 

      目前在移動電話實現游戲的技術主要有以下幾種:

      1、嵌入式游戲

      一些游戲在出廠前就固化在芯片中了,象Nokia的貪吃蛇就是一個最著名的例子。但由于用戶不能自己安裝新的游戲,所以它們逐漸變得不太流行了。

      2、短消息服務游戲

      短信息服務(SMS)被用來從一個手機向另一個手機發送簡短的文字信息。用戶一般為每條信息支付1毛錢的信息費。短消息服務游戲的玩法通常是發送一條信息到某個號碼,這個號碼對應游戲供應商的服務器,服務器接收這條消息,執行一些操作然后返回一條帶有結果的消息到游戲者的手機中。短消息服務不是一個特別好的用于實現移動游戲的技術,因為它依靠用戶輸入文字,因此本質上它是一個命令行環境。而且它還很昂貴,即使和服務器只交換10次信息也要花費1塊錢或者更多的錢。雖然多媒體消息服務( MMS)技術的推出使得基于消息的游戲更加具有吸引力,但是仍然不是一種重要的游戲環境,所以在此我們不會深入探討它。

      3、瀏覽器游戲

      差不多1999年以后出廠的每臺手機都有一個無線應用協議(WAP)瀏覽器。WAP本質上是一個靜態瀏覽載體,非常像一個簡化的Web,是為移動電話小型特征和低帶寬而專門優化的。要玩WAP游戲的話,可以進入游戲供應商的URL(通常通過移動運營商門戶網站的一個鏈接),下載并瀏覽一個或多個頁面,選擇一個菜單或者輸入文字,提交數據到服務器,然后瀏覽更多的頁面。WAP (1.x)版本使用獨特的標記語言WML,允許用戶下載多個頁面,即卡片組。新版本的WAP(2.x)使用XHTML的一個子集,一次傳遞一個頁面并且允許更好的控制顯示格式。兩種版本的WAP都提供一個比SMS更友好的界面,而且更加便宜,只要根據使用時間付費而不是根據信息數。但是它是一個靜態的瀏覽載體;手機本身幾乎不需要做任何處理過程,并且所有游戲必須通過網絡,所有的操作都是在遠程服務器上執行的。手機將繼續帶有WAP瀏覽器,而且開發者可能發現WAP有利于傳送比游戲應用程序提供的更詳細的幫助信息或者規則,因為大部分的游戲仍然受有限的內存制約。然而,WAP沒能達到高使用率的目標(在歐洲和北美洲,只有6%的手機使用WAP),而且移動運營商和游戲開發者正在遠離WAP技術。 我們也不會在這里探究任何WAP的細節。

      4、J2ME和其它的解釋語言

      Java 2 Micro Edition (J2ME)是一種針對移動電話和PDA這樣的小型設備的Java語言。大部分的手機廠商都迫切希望Java手機推廣應用。上千萬的Java手機已經到了消費者的手中。J2ME與臺式機中的Java相比還是有很大的限制,但是它已經極大的提高了移動電話支持游戲的能力。它有比SMS或WAP更好控制的界面,允許使用子圖形動畫,并且可以通過無線網絡連接到遠程服務器。支持Java的手機的普及,所以它成為目前最好的移動游戲開發環境,我們在這里將詳細研究J2ME游戲的開發。J2ME不是手機上配置的唯一的解釋語言,但是它是一個許多廠商支持的行業標準。一些專用的解釋語言也在某些區域有上佳的表現,如北美的Qualcomm的BREW ( Binary Runtime Environment for Wireless,用于無線應用程序的二進制運行環境)和一些韓國移動運營商支持的名為GVM的標準。在這個系列文章中,我們將要重點討論使用J2ME開發移動游戲,并且將介紹在Nokia平臺上開發移動游戲的方法。 

      5、C++應用程序或其它編譯語言

      另外一種開發方式是使用C++開發移動游戲,把程序編譯為本機機器代碼。編譯語言程序一般說來提供更好的控制用戶界面,以及與解釋語言相比更快的速度。C++開發者可以定位于Series 60平臺設備。此外,Microsoft的.Net CF也可以以編譯的形式開發移動設備上的游戲,在以后的文章中我將介紹Pocket PC平臺上游戲開發的方法。

    三、移動游戲開發與傳統游戲開發的區別 

      移動游戲開發與傳統游戲開發區別在許多方面:

      1、開發團隊的大小

      傳統的PC和控制臺游戲一般需要12到30人的開發團隊。因為大部分移動游戲規模比控制臺游戲小,所以一般情況下只需要3到5人的團隊開發,有的時候甚至設計者和編程者是同一個人。

      2、預算

      傳統游戲的預算在一百萬美元到五百萬美元之間。大部分移動游戲的預算則通常少于一百萬美元。實際上,移動電話有限的顯示能力和對應用程序大小的限制使得不可能象傳統游戲那樣投入大量的財力物力。從某種意義上來說,這也算是一個優點。

      3、開發周期

      傳統的游戲一般要開發兩到三年。而大部分移動游戲幾月之內就能開發完畢。換句話說,只要有一個小型開發團隊和一個小的預算,你就可以開發并推廣一個專業品質的移動游戲。因此,對于許多在傳統游戲領域遇到挫折的開發者來說,移動游戲開發有很強的吸引力。

      4、網絡設備

      移動游戲可能不同于我們之前看到的任何游戲:它受載體因素的限制,但是支持網絡并且可多人游戲。用于PC的調制解調器也只是8年前才大范圍應用;控制臺游戲只不過現在才能上網。移動電話的特性決定它是一種網絡設備。即使它們的處理能力使人想起以前的老式計算機技術,但是它們的網絡性能卻更加出眾。

      5、開放標準

      控制臺游戲開發需要從控制臺游戲廠商取得授權和支持,需要支付給他們"平臺使用費"。在無線應用程序世界(如同在PC游戲開發中一樣),你可以免費的開發任何款式的游戲,而不要支付Nokia、Sun或其他平臺提供商一分錢。此外,這些移動游戲開發平臺標準可以向開發者發布、開放并可免費取得。

      6、部署

      傳統的游戲主要是在軟件市場上購買。而移動游戲主要是由用戶從移動門戶網站下載并安裝。在有些情況下,它們是通過無線網絡下載的。有些手機允許你下載一個應用程序到計算機中,然后通過數據線傳送到手機中。

      因此,移動游戲的銷售渠道是非常不同的。用戶一般通過移動運營商的游戲菜單、手機廠商預裝在手機中的游戲菜單或者無線應用程序門戶網站上找到移動游戲。

      四、載體的優點

      1、龐大的潛在用戶群

      現在全球超過十億部移動電話正在被使用,并且這個數目正在逐漸增加。在除美國之外的每個發達國家,擁有手機的人數比擁有計算機的人數更多。雖然那些手機只有一小部份是支持Java的手機,但是這個數目正在快速地提高并且在幾年內Java手機將要成為行業標準。移動游戲潛在的市場比其它任何平臺,比如Playstation和GameBoy都要大。

      2、便攜性

      GameBoy比任何其他控制臺游戲賣出的多的一個原因就是:便攜性。人們可以隨時隨地玩他們選擇的游戲。與現在的游戲控制臺或者個人電腦相比,手機可能不是一個好的游戲設備,但是人們基本上是隨時隨刻都把它們帶在身邊。在他們離開家的時候或者想玩的時候,給開發者應該為他們提供好玩的游戲。

      3、支持網絡

      因為移動電話是網絡設備,所以可以實現多人游戲,雖然有某些限制因素。

    五、載體的缺點

      1、屏幕小

      你面對的是小型的屏幕。雖然屏幕分辯率持續提高,并且彩屏即將成為標準,但是屏幕尺寸還是一直很小,因為沒有人樂意拿著磚塊一樣大的手機。

      還有一個相關的問題:不同的手機的屏幕大小是不同的。比如說Nokia Series 60平臺設備就提供了和Nokia 5100這樣的Series 40設備不同的屏幕尺寸。雖然各個廠商已經標準化它們產品的屏幕尺寸以避免分割市場,但是開發者仍然需要為不同的電話優化他們的游戲--你肯定想使用特定的手機上所有可用的屏幕空間。

      2、有限的顏色和聲音支持

      大部分使用者手中的手機仍然是黑白的,雖然現在出售的支持Java的手機大部分都是彩屏手機。在這些手機中12bit彩色非常流行。

      即使手機本來就有聲音設備,但是應用程序播放聲音的能力卻非常有限。J2ME規范根本不需要硬件廠商支持聲音,雖然基本的Java手機允許使用一些聲音并且MIDI支持正在成為標準。通常,手機中只有一個語音或者一個聲道可用。

      3、應用程序大小限制

      大部分的Java手機只有很少的內存空間用于運行MIDlet。此外,對MIDlet的大小始終有一個限制。實際的限制取決于手機設備和移動運營商的規定。

      在這樣的限制條件下設計開發移動游戲固然是非常困難的,但是我們要知道,第一臺家用電腦只有64 KB內存,但是仍然有人熱衷于在其上開發游戲軟件。在一些智能手機上內存的限制就少一些,比如Nokia 3650甚至可以運行幾兆字節的應用程序。

      4、高等待時間

      等待時間----機器發出請求和接到響應之間所花費的時間----在計算機上是以微秒計算;在有線因特網上是以毫秒計算;而在無線網絡則要以秒計算。

      等待時間是網絡游戲中一直存在的一個問題,開發者們總是在努力消除它帶來的問題。無線網絡等待時間非常長,這就不可能有效的開發多人快速動作移動游戲。然而基于回合制的多人游戲是相當可行的,我們在后面的文章中將討論如何使用各種方法來處理這個問題。

      雖然移動運營商總是在努力增加移動電話可用的帶寬,但是他們卻沒有把降低等待時間當成首要解決的問題,因為它對于別的應用程序并不重要。

      還有一種特殊情況:使用藍牙技術或其他無線局域網技術的手機可以和附近的藍牙設備使用因特網等待時間(一般200-400毫秒)通訊。這樣,使用像Nokia 3650這樣的智能手機,你就可以和附近的移動用戶一起玩多人快速動作游戲了。

      5、可中斷性是關鍵

      當用戶接聽電話的時候,手機都會中斷進行中的游戲。游戲程序必須能夠暫停并且繼續,而且不會造成游戲問題(例如,游戲者在打電話的時候老怪仍然在移動,打死玩家扮演的角色,導致輸掉游戲)并且不會造成內存溢出。這需要在編程的時候多注意,Nokia提供了技術文檔幫助J2ME和Symbian C++開發者了解并解決這個問題。

      6、正在發展的技術

      用于開發移動游戲的技術并不是針對游戲設計的,因此常常有特定的限制條件。例如,J2ME規范不需要支持透明度,這就使得子圖形除了在空白的背景上以外,在任何背景上都會很難看。

      幸運的是,大部分設備廠商的Java手機都補充了J2ME,支持了透明度。為了充分利用J2ME的性能,你需要支持手機特定的API;為了得到最好的效果,就需要為一個游戲編寫好幾個版本。最近發行的MIDP 2.0規范解決了一些此類問題,但是對不兼容MIDP 2.0的手機是無效的。

    六、避其短處 取其長處

      游戲有驚人的可塑性;它們可以使用從石器時代到現代高科技的每一種技術來實現。每當你使用你以前從來沒有使用過的技術進行開發的時候,你需要了解它的性能和局限,努力把它的性能發揮到極限,同時回避或者解決它的局限性。

      我們可以從我們的移動游戲的性能和局限性的討論中得出什么結論呢?

      1、短的游戲時間

      人們遲早要打電話或者接電話,并且他們不想把所有的電量都用來玩游戲。理想的情況是每一回合游戲應該保持在五個分鐘或更短時間之內。這不意味著一個完整的游戲必須在五分鐘之內結束--而是你應該允許游戲者中斷、保存和繼續游戲。

      2、玩家有自己的時間表,而不是必須遵循你的時間表

      讓人們在想要玩游戲的時候玩,不要強迫他們等待(如果你可以避免),也不要要求他們在任何時間都在游戲中。

      3、避免等待時間

      這對單人游戲來說很容易實現。在多人游戲中,你就需要解決等待時間的問題了。(我們將在后面討論這個問題。)

      4、使用網絡

      網絡不一定對于每個移動游戲都是必需的,但是那種與人競爭的感覺,即使只有一個排行榜,也能吸引更多的游戲者。要記住,手機實際上是一種社會性設備,添加某種社會性因素到你的游戲中會使它更加受歡迎。

      5、盡可能地讓游戲保持小型

      記住一點,人們仍然熱中于80年代的優秀的游戲。在某些方面,技術的限制強迫你把更多的注意力放到基本的游戲中去。

      當我們在后續文章中探討開發的時候,我們將討論一些技術問題。

      6、做好支持多種手機的準備

      至少,需要支持不同的屏幕尺寸,這對Nokia系列手機很容易做到。為Series 40開發一種版本,為Series 60開發另一種版本。多數情況下,你還要利用特定手機的性能和API,比如Nokia的用戶界面和SMS API,你要為不具備相同特性的手機開發不同的版本。

      7、為國際化做好準備

      全世界都在使用移動電話,每一種語言都有自己的市場。在你開發的時候你就要做好計劃,以便更利于本地化。

    七、處理等待時間

      移動游戲如何解決無線網絡的高等待時間呢?

      1、單人游戲

      游戲者的游戲不需要用到網絡,除非是把高分傳送到排行榜中,或允許游戲者瀏覽排行榜。這種網絡通訊對于游戲影響不大,幾秒鐘的延遲不會引起用戶的反感。

      實質上,在大多數的單人游戲中并沒有這個問題。

      2、"多玩家"單人游戲

      在一個"多玩家"單人游戲中,游戲者感覺他們是在玩一個多人游戲,但是事實上,每個人只是面對相同的游戲,在游戲或者回合結束時比較分數。

      當一個游戲者加入游戲時,他告訴其他游戲者他的ID號,然后開始玩單人游戲。服務器要么給每個游戲者發送一個包含相同消息的游戲狀態文件,要么發送一個來自構造啟動游戲狀態的客戶軟件的代碼。每個游戲者玩游戲,設法取得最高的得分。當一個游戲者結束游戲后,他的客戶端程序把他的得分提交到服務器。當所有的游戲者都完成游戲后(或者超過某個時間以后),服務器告訴每個游戲者誰取得了最高分,以及每個游戲者取得的分數。

      這種風格的游戲在因特網上相當成功;AOL最受歡迎的游戲Slingo就是一個很好的例子。

      因為只有在服務器開始或者結束游戲的時候才需要交換消息,所以等待時間只有在這些時候才成為一個問題。

      3、基于回合的游戲

      在一個基于回合的游戲中,游戲者進入他們的回合,并在接收結果之前需要等待一段時間。幾秒鐘的延遲是可以容忍的。

      有兩種基于回合的游戲:

      3.1、輪流游戲

      在一個輪流游戲中,每個游戲者按次序進入回合。像象棋、紅心大戰這樣的經典游戲就是很好的例子。
    這種游戲的缺點就是游戲者在重新進入回合之前無事可做。雖然經典游戲在因特網上有很多玩家,但這多多少少有點無趣,。

      因此,限制輪流游戲的游戲者數是個非常好的主意,這樣延遲就不會變得非常長。兩到四個游戲者是比較理想的情況。

      3.2、同時動作游戲

      在一個同時動作游戲中,每個游戲者獨立于其它游戲者計劃他自己的行動。當一個游戲者就緒時,他發送指令到服務器。服務器等到從所有的游戲者那里都接到指令,然后分解回合,再把結果發送到所有的游戲者那里。

      4、"即時動作"游戲

      在一個"即時動作"游戲中,游戲可能會持續很長時間(幾天、幾個星期、幾個月甚至到永遠)。游戲者可以在任何時候進入游戲,執行游戲中的動作。在一些游戲中,他們可能只能與其他的同時進入游戲的用戶交互;在其它的游戲中,他們也許能與任何其他游戲者交互,即使這些游戲者已經下線。

      6、把等待時間分布到游戲中

      讓游戲者接受高等待時間的另一種簡單方法就是把等待時間分布到游戲本身中。例如,大部分星際飛船戰斗游戲讓人都感覺到象是二次大戰時的空戰,戰船在你身邊呼嘯而過,向你開炮。然而,在手機上要實現這種火爆的場面好像困難很大。我們可以換一種思路,我們可以把星際戰艦類游戲做成一個類似第一次世界大戰海戰的游戲,星際飛船慢慢地移動,彼此之間一發一發的發射炮彈,導彈緩慢的移動奔向它們的目標。你可以使用這種方法來隱藏幾秒鐘的等待時間。肯定還有更多的解決長等待時間的方法。這是一個值得花時間去思考解決的問題。





    posted @ 2005-01-16 13:01 小毅 閱讀(432) | 評論 (0)編輯 收藏

    <2005年1月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章檔案

    blog 好友

    友情鏈接

    常用網站

    技術網站論壇

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 999在线视频精品免费播放观看| 亚洲色av性色在线观无码| 日本免费人成黄页网观看视频| 男女做羞羞的事视频免费观看无遮挡 | 日本片免费观看一区二区| 久久99精品免费视频| 久久国产精品免费看| 无码精品人妻一区二区三区免费看| 18禁在线无遮挡免费观看网站| 免费人成网站在线观看不卡| 久久久久国色av免费看| 99久在线国内在线播放免费观看| 9277手机在线视频观看免费| 30岁的女人韩剧免费观看| 久久天天躁狠狠躁夜夜免费观看| 永久免费AV无码国产网站| 国产精品深夜福利免费观看| avtt亚洲天堂| 亚洲人成色77777| 亚洲综合日韩中文字幕v在线 | 一本久到久久亚洲综合| 亚洲精品无码久久毛片| 亚洲一区爱区精品无码| 久久久综合亚洲色一区二区三区| 久久久亚洲欧洲日产国码二区| 亚洲午夜国产精品无卡| 亚洲欧美国产日韩av野草社区| 在线观看亚洲免费视频| XXX2高清在线观看免费视频| 一级毛片免费观看| 一区二区无码免费视频网站| 免费在线观看a级毛片| 亚洲色无码专区在线观看| 666精品国产精品亚洲| 亚洲熟妇无码一区二区三区 | 亚洲字幕在线观看| 在线精品自拍亚洲第一区| 免费人成网站在线观看不卡| 毛片免费观看网址| 4338×亚洲全国最大色成网站| 久久精品国产亚洲AV无码偷窥 |