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.
需要包含頭文件:
#include <alloc.h>
或
#include <stdlib.h>
函數(shù)聲明(函數(shù)原型):
void *malloc(int size);
說明:malloc 向系統(tǒng)申請(qǐng)分配指定size個(gè)字節(jié)的內(nèi)存空間。返回類型是 void* 類型。void* 表示未確定類型的指針。C,C++規(guī)定,void* 類型可以強(qiáng)制轉(zhuǎn)換為任何其它類型的指針。
從函數(shù)聲明上可以看出。malloc 和 new 至少有兩個(gè)不同: new 返回指定類型的指針,并且可以自動(dòng)計(jì)算所需要大小。比如:
int *p;
p = new int; //返回類型為int* 類型(整數(shù)型指針),分配大小為 sizeof(int);
或:
int* parr;
parr = new int [100]; //返回類型為 int* 類型(整數(shù)型指針),分配大小為 sizeof(int) * 100;
而 malloc 則必須由我們計(jì)算要字節(jié)數(shù),并且在返回后強(qiáng)行轉(zhuǎn)換為實(shí)際類型的指針。
int* p;
p = (int *) malloc (sizeof(int));
第一、malloc 函數(shù)返回的是 void * 類型,如果你寫成:p = malloc (sizeof(int)); 則程序無法通過編譯,報(bào)錯(cuò):“不能將 void* 賦值給 int * 類型變量”。所以必須通過 (int *) 來將強(qiáng)制轉(zhuǎn)換。
第二、函數(shù)的實(shí)參為 sizeof(int) ,用于指明一個(gè)整型數(shù)據(jù)需要的大小。如果你寫成:
int* p = (int *) malloc (1);
代碼也能通過編譯,但事實(shí)上只分配了1個(gè)字節(jié)大小的內(nèi)存空間,當(dāng)你往里頭存入一個(gè)整數(shù),就會(huì)有3個(gè)字節(jié)無家可歸,而直接“住進(jìn)鄰居家”!造成的結(jié)果是后面的內(nèi)存中原有數(shù)據(jù)內(nèi)容全部被清空。
malloc 也可以達(dá)到 new [] 的效果,申請(qǐng)出一段連續(xù)的內(nèi)存,方法無非是指定你所需要內(nèi)存大小。
比如想分配100個(gè)int類型的空間:
int* p = (int *) malloc ( sizeof(int) * 100 ); //分配可以放得下100個(gè)整數(shù)的內(nèi)存空間。
另外有一點(diǎn)不能直接看出的區(qū)別是,malloc 只管分配內(nèi)存,并不能對(duì)所得的內(nèi)存進(jìn)行初始化,所以得到的一片新內(nèi)存中,其值將是隨機(jī)的。
除了分配及最后釋放的方法不一樣以外,通過malloc或new得到指針,在其它操作上保持一致。
阿,我年輕的朋友們,你們想成為游戲設(shè)計(jì)師,所以來問我有何好建議?我會(huì)給你們我最好的建議,但我猜想你們可能會(huì)聽不進(jìn)去。你們可能更愿意聽那些說你們愛聽的話的人所提供的建議。但這對(duì)我來說無所謂,我所能做的就是說些實(shí)事,并希望能進(jìn)入某些人的耳朵里。
首先,你們應(yīng)該對(duì)自己的事業(yè)道路有個(gè)最初的規(guī)劃,你想接受更專門的訓(xùn)練,還是想要更全面的教育?專門的訓(xùn)練能給你某些特別的技能,讓你能一畢業(yè)就進(jìn)入工作。但教育能給你一個(gè)更全面的素質(zhì)培養(yǎng),卻不一定能馬上看到好處,不過長(zhǎng)期來看能給你帶來更多的優(yōu)勢(shì)。這是個(gè)簡(jiǎn)單不過的選擇:速成的路還是戰(zhàn)略規(guī)劃后的路。如果你非常急于求成,那就立馬去那些專門學(xué)校,他們會(huì)教你最新最炫的電腦技術(shù)。精力充沛是年輕人的優(yōu)勢(shì),但耐性決不是年輕人的特長(zhǎng),所以我完全能理解你們幾乎不能忍受去學(xué)習(xí)那些看似無關(guān)的副科。當(dāng)我還是你們年紀(jì)的時(shí)候,我總是對(duì)那些大學(xué)里的其他課程感到不耐煩。但現(xiàn)在,我對(duì)我當(dāng)初的魯莽想法感到羞愧,并真心的感謝當(dāng)初教導(dǎo)我的師長(zhǎng)。
速成的路卻是能立刻見效的路。如果你進(jìn)了一家專門教授電腦游戲制作的學(xué)校,或者在正規(guī)大學(xué)主修電腦游戲設(shè)計(jì)。在此,你會(huì)學(xué)到很多關(guān)于電腦游戲設(shè)計(jì)最新的技術(shù)。畢業(yè)后,你很可能馬上就能在正規(guī)的游戲公司找到一份工作,而這一切你可以在23歲之前搞定。
請(qǐng)打住。在這里有一點(diǎn)需要指出。生產(chǎn)游戲和設(shè)計(jì)游戲是完全不同的。你所獲得的第一份工作肯定是份渺小的工作,比如給一個(gè)無關(guān)緊要的npc畫動(dòng)畫,而這個(gè)npc做的事情只是在背景上漫無目的的閑晃;或者寫一段代碼,這段代碼的用處就是當(dāng)用戶按下exit的時(shí)候,顯示“你確定要退出么?”。如果你很擅長(zhǎng)做這些小事情,那不出幾年就可能會(huì)讓你畫些更復(fù)雜的動(dòng)畫或?qū)懸欢胃匾拇a。然后再過幾年,你就可能坐上某個(gè)更重要的位子,處理些更重要的事情。
但請(qǐng)你別指望這些。根本的問題在于:有成百上千甚至上百萬的學(xué)生,就像你們一樣的學(xué)生,正做著同樣的夢(mèng),想要進(jìn)游戲業(yè)的夢(mèng)。考慮一下供求曲線吧,如果職員的供應(yīng)量十倍甚至百倍于員工的需求量,那么價(jià)格曲線將向下傾斜。你們必定將得到可憐的工資,并得不到任何的尊敬。你們當(dāng)然可以抱怨,但得到的回答不僅簡(jiǎn)單也很實(shí)在:如果你不喜歡,你可以選擇離開阿,門外有上百個(gè)像你一樣的年輕人想要得到你的工作。
事實(shí)上,這就是當(dāng)前正在發(fā)生的事情。有可能的話你們可以去每年三月或四月在圣何塞舉行的“游戲開發(fā)者大會(huì)”看看,你們并不需要真的去參加什么討論會(huì),只需要在圣何塞的會(huì)議中心轉(zhuǎn)轉(zhuǎn),看看身邊走過的人。你會(huì)發(fā)現(xiàn)兩個(gè)驚人的事實(shí):第一,每個(gè)人都穿著黑色衣服;第二,他們的平均年齡在25至30之間。
我不知道為什么他們都穿著黑色,這可能是每個(gè)人都需要遵守的規(guī)則。但我能告訴你們,為什么他們都這么年輕:因?yàn)槊總€(gè)人都會(huì)在工作幾年之后離開這個(gè)行業(yè)。游戲業(yè)就像是個(gè)奇怪的巨大建筑物,這個(gè)建筑物只有一個(gè)入口,卻有很多個(gè)出口。成千上萬個(gè)年輕人擁擠在入口處,爭(zhēng)先恐后互相推擠著想要進(jìn)門。只有很少一部分能順利進(jìn)入。但對(duì)于任何一個(gè)進(jìn)入者來說,總會(huì)有另一個(gè)人離開——這才能讓這個(gè)行業(yè)保持平衡。這個(gè)行業(yè)內(nèi)的人有多么的年輕,就意味著被擠出去的人有多么的快。很少有人能撐到30歲。
如果你想得再深些,那就會(huì)發(fā)現(xiàn)另一個(gè)事實(shí):假設(shè)你是老板,既然有這么多小家伙想要為你做游戲,那你自然可以花一毛錢就雇一群人,像奴隸一樣驅(qū)使他們,直到他們筋疲力盡,然后再找些替代者。你只需雇傭一些管理人員,能保證這些小家伙都努力工作就行。這個(gè)系統(tǒng)運(yùn)轉(zhuǎn)得非常完美。
唯一的問題是,你是否打算成為他們中的一員呢?我希望不是。不過,要是你真狂熱到打算削尖腦袋往游戲業(yè)里鉆,那么就繼續(xù)前進(jìn)!我這個(gè)老笨蛋說再多也是無益。你自己去花時(shí)間看清這些吧。
但在這里我還有另一個(gè)方案可以告訴你們。首先,你應(yīng)該獲得一個(gè)正規(guī)的教育,決不是什么一夜情式的培訓(xùn)。去一所正規(guī)的大學(xué),學(xué)習(xí)任何專業(yè)除了游戲制作。幾乎所有專業(yè)都可以:生物學(xué)、物理學(xué)(我當(dāng)初就是念的這個(gè))、藝術(shù)、文學(xué)、歷史、心理學(xué)、語言學(xué)。你只需保證自己獲得了常規(guī)教育,并盡量選修一些專業(yè)以外的課程,當(dāng)然,你應(yīng)該選修一下計(jì)算機(jī)。
同時(shí),你應(yīng)該開始試驗(yàn)制作游戲了。不要被時(shí)髦流行的圖像技術(shù)所擾——這不能給你的游戲設(shè)計(jì)提供任何幫助。你應(yīng)該專注于游戲的內(nèi)涵:游戲的體系和架構(gòu)。如何用很少的元素就能使整個(gè)游戲運(yùn)轉(zhuǎn)?別幻想能做出像商業(yè)游戲那么好的產(chǎn)品——我要大聲告訴你,這些游戲要依靠很多人的力量才能完成。你此時(shí)所能做的這些小玩意同那些比較起來,只能用“可憐”兩個(gè)字形容。要是把制作游戲比作造汽車,此時(shí)你根本不用管車子的外表涂層和噴漆,你應(yīng)該專注于如何讓活塞協(xié)作運(yùn)轉(zhuǎn)、如何控制閥門的正常閉合、搞清楚汽化器是個(gè)什么東西。你要制造的是個(gè)小卡丁車,而不是一輛勞斯萊斯。所有這些都是個(gè)試驗(yàn)的過程,別幻想你的這些小玩意會(huì)有商業(yè)用途,你要做的就是造好一個(gè)就扔掉一個(gè)——為了增加創(chuàng)造力,你要?dú)⒌裟阕约旱摹昂⒆印?。如果你沉迷于這些作品而不愿放棄,那你將永遠(yuǎn)也不會(huì)擁有一個(gè)真正游戲設(shè)計(jì)師所應(yīng)有的創(chuàng)造力。
繼續(xù)不斷的為增加你的創(chuàng)造力而努力。到目前為止,你的作品根本無法和一個(gè)經(jīng)驗(yàn)老到的游戲設(shè)計(jì)師相抗衡,所以增加自己的能力是你此時(shí)唯一該做的。電影the matrix都看過吧,沒經(jīng)過訓(xùn)練的neo無論如何也不是agent smith的對(duì)手。學(xué)任何你能學(xué)到的東西。畢業(yè)前要把你學(xué)校圖書館所有的書架都翻一遍,在這些灰塵的覆蓋下指不定隱藏著什么有趣的東西。
當(dāng)你出了學(xué)校,不要馬上就進(jìn)入游戲業(yè)。在一個(gè)正規(guī)公司找一份像樣的工作,并掙些錢。更主要的是不斷學(xué)習(xí),你要學(xué)很多關(guān)于團(tuán)隊(duì)協(xié)作的方式,也要學(xué)會(huì)如何在眾人面前尋找自己的位置。你應(yīng)該學(xué)會(huì)何時(shí)何地站起來對(duì)你的老板說話——雖然這種機(jī)會(huì)不常有。還有,你應(yīng)該學(xué)會(huì)如何同周圍有經(jīng)驗(yàn)的內(nèi)行打交道。
繼續(xù)在你業(yè)余時(shí)間制作游戲,盡可能多的制作各種不同類型的“小卡丁車”,并試圖了解各種類型卡丁車的性能,諸如操縱性、速度以及其他要素。當(dāng)你做了六個(gè)或十個(gè)這種產(chǎn)品,你可能會(huì)想到繼續(xù)親自著手進(jìn)行更大的項(xiàng)目。很好,去找些志同道合的朋友,他們會(huì)幫助你完成你的計(jì)劃,我確信這將是個(gè)令人印象深刻的成果。完成之后,向全世界展示你的小寶貝吧?,F(xiàn)在,你就可以把她作為你簡(jiǎn)歷的一部分去申請(qǐng)游戲業(yè)中的職位了。如果你的那些產(chǎn)品確實(shí)好,你將能得到一個(gè)真正的游戲設(shè)計(jì)師職位,而不是去當(dāng)那些小嘍羅。此時(shí)你可能仍然只是其他游戲設(shè)計(jì)師的助手,但你已經(jīng)處在了正確的位置上,如果你能努力出色的完成工作,你肯定會(huì)在游戲業(yè)中擁有前途。
我知道這些并不是你們想聽的內(nèi)容。你們想要的是所謂的速成藥,比如學(xué)習(xí)這個(gè),然后學(xué)習(xí)那個(gè),接下來就能確保得到一份高收入的工作、擁有巨大的辦公室、用著最先進(jìn)的電腦設(shè)備、做的是富有創(chuàng)造性的事情。沒錯(cuò),每個(gè)人都會(huì)這么想的,但沒有人會(huì)得到這些。那些向你描述這些故事的人不過是些騙子,他們腦子里想的只是你口袋里的錢。一個(gè)令人悲傷的事實(shí)是:游戲先驅(qū)們主導(dǎo)世界的日子已經(jīng)過去了,現(xiàn)在的游戲業(yè)是一個(gè)產(chǎn)業(yè),沒人會(huì)突然被發(fā)掘然后一夜之間成為巨星,對(duì)任何想入門的人來說,在你面前的必定是一條漫長(zhǎng)的路。
你們擁有激情和精力,想要讓不可能變?yōu)榭赡堋5銈兪欠駥?duì)這條漫長(zhǎng)的路做好了準(zhǔn)備?或者說,你們是否打算在真正的準(zhǔn)備完成前就沖進(jìn)去?
祝你們好運(yùn),孩子們,我相信你們會(huì)成功。
謝謝您-----------chris crawford
開始安裝EclipseME 0.5.5:
從0.5.5版本開始,EclipseME將采用新的安裝模式。而在0.5.0版本及之前版本均是一個(gè)壓縮文件解壓到Eclipse的安裝路徑下即可。這種安裝形式已經(jīng)不在使用,我們將采用以下的新的安裝模式。如果你僅是要升級(jí)EclipseME到0.5.5版本,那么也要按以下的新的安裝方法來做。
1)第一步:打開Eclipse,選擇Help -> Software Updates -> Find and Install。
現(xiàn)在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 下載?;蛘叽说刂?/FONT>:
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
下載完以上五個(gè)文件后,進(jìn)行相應(yīng)順序的安裝。另外:Eclipse的軟件不需要安裝,直接解壓即可,很方便吧。
在遙遠(yuǎn)古希臘的大草原中,馳騁著一批半人半馬的族群,這是一個(gè)生性兇猛的族群?!鞍肴税腭R”代表著理性與非理性、人性與獸性間的矛盾掙扎,這就是人馬部落。部落里唯一的例外射手奇?zhèn)?,是一個(gè)生性善良的男子,他對(duì)人坦誠(chéng)真摯,謙遜有理。因此受到大家的尊敬與愛戴。
有一天,英雄赫五力來拜訪他的朋友奇?zhèn)?。赫五力早就聽說人馬族的酒香醇無比,便要求奇?zhèn)惤o他拿來享用,可是,他喝光了奇?zhèn)惖木迫圆槐M興,執(zhí)意要喝光全部落的酒。奇?zhèn)惙浅D托牡亟忉尳o他聽,酒是部落的公共財(cái)產(chǎn),不是任何一個(gè)人可以獨(dú)自占有的,希望赫五力不要因?yàn)橐粫r(shí)的興致而犯眾怒。赫五力向來脾氣暴躁,怎么能聽得進(jìn)奇?zhèn)惖脑?,他把這個(gè)善良的朋友推到一邊就闖進(jìn)了人馬部落。果不出奇?zhèn)愃?,暴躁的赫五力和兇猛的人馬族碰在一起,沖突不可避免的發(fā)生了。
赫五力力大無窮,幼年即用雙手扼死巨蟒,他完成國(guó)王的十項(xiàng)不可能完成的任務(wù)都游刃有余,連太陽神阿波羅都懼他三分,人馬族雖然厲害,也并不是赫五力的對(duì)手,他們紛紛落逃。赫五力手持神弓緊緊追趕,借著酒勁,大肆進(jìn)攻。人馬族被逼的走投無路,只好逃到了奇?zhèn)惖募抑小H藗兓袒滩话玻瘴辶φ驹陂T口大聲呵斥,如果再?zèng)]人出來,他就把這個(gè)部落毀掉。奇?zhèn)惵牭竭@里,為了部落,為了朋友,為了化解這場(chǎng)爭(zhēng)斗,他奮不顧身的推開門,走了出來。就在那一剎那,赫五力的箭也飛了過來!赫五力惋惜又痛心的看著自己的朋友被神箭射穿心臟,而奇?zhèn)悇t用盡最后的力氣說到:“再鋒利的箭也會(huì)被軟弱的心包容;再瘋狂的獸性也不會(huì)泯滅人性?!?
這時(shí)候,奇?zhèn)惖纳眢w碎成了無數(shù)的小星星,飛到了天上,它們聚集在一起,好象人馬的樣子,那只箭還似乎就在他的胸前。為了紀(jì)念善良的奇?zhèn)?,人們就管這個(gè)星座叫射手座。
從嘉興回來...兄弟沒變多少 呵呵 一樣的忙
認(rèn)識(shí)了挺多的朋友 松哥,東哥,CEO,死過妹妹....
雖然前幾天的筆試并沒有成功 心情并不怎么好 在嘉興卻還是呆的開心的...^ ^
每次去看兄弟都能學(xué)到好多...
剛好碰上他在開發(fā)寵物系統(tǒng)...php-asp...
學(xué)了很多東西 有些習(xí)慣他好象是于身具來的 大概這就是天賦吧....
4月中旬了 畢業(yè)了近了...
工作還沒定 心理有點(diǎn)煩了....
作者:xm4014
今天開始學(xué)習(xí)Java中多線程的實(shí)現(xiàn).
線程是一些可以并行的,獨(dú)立的執(zhí)行的代碼.之前我編的程序都只能做一件事情,也就是只有一個(gè)線程.多線程的編程就是可以將程序任務(wù)分成多個(gè)并行的子任務(wù),同時(shí)運(yùn)行,互不干擾.我對(duì)多線程的理解是從格斗游戲得來的.格斗游戲中兩人對(duì)打就是通過兩個(gè)線程來實(shí)現(xiàn)的吧,否則如何能夠你出你的招,我發(fā)我的沖擊波呢.
(1月18日)突然想到一個(gè)問題,補(bǔ)充一下.多線程是不是我們通常所說的多任務(wù)呢?我的理解是,不能這樣說也可以這樣說.
簡(jiǎn)單說來,多線程提供了一種在進(jìn)程內(nèi)部進(jìn)行多個(gè)線程并行調(diào)度的機(jī)制,而多任務(wù)則提供的是在一個(gè)操作系統(tǒng)內(nèi)部運(yùn)行多個(gè)進(jìn)程的機(jī)制.
多任務(wù)操作系統(tǒng)(如Windows)的基本原理是這樣的:操作系統(tǒng)將CPU的時(shí)間片分配給多個(gè)線程,每個(gè)線程在操作系統(tǒng)指定的時(shí)間片內(nèi)完成(注意,這里的多個(gè)線程是分屬于不同進(jìn)程的).操作系統(tǒng)不斷的從一個(gè)線程的執(zhí)行切換到另一個(gè)線程的執(zhí)行,如此往復(fù),宏觀上看來,就好像是多個(gè)線程在一起執(zhí)行.由于這多個(gè)線程分屬于不同的進(jìn)程,因此在我們看來,就好像是多個(gè)進(jìn)程在同時(shí)執(zhí)行,這樣就實(shí)現(xiàn)了多任務(wù).Whoops,真繞口.
如上,多線程和多任務(wù)是有很明顯的區(qū)別的.但是再想一下,在一個(gè)應(yīng)用程序內(nèi)實(shí)現(xiàn)多線程不也是靠CPU分配時(shí)間片嗎?既然原理是相同的,那么多線程也可以說是多任務(wù)的.
一個(gè)Java程序啟動(dòng)后,就已經(jīng)有一個(gè)線程在運(yùn)行,我們可以通過下面的例子來初步建立一個(gè)線程的實(shí)際印象
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);//掛起線程,就是讓線程休息一會(huì)兒, //不占用系統(tǒng)資源,因此其它線程可以繼續(xù). //這里的Thread缺省表示主線程 } }catch(InterruptedException e){System.out.println("thread has wrong");} } } |
這只是一個(gè)線程,那么我們?cè)趺磳?shí)現(xiàn)多個(gè)線程呢?又怎樣讓線程做我安排它要做的事情呢?
實(shí)現(xiàn)線程體的構(gòu)造有兩種方法.
第一種方法是通過繼承構(gòu)造線程體.
在Java中專門有一個(gè)Thread類,這個(gè)類里面有一個(gè)函數(shù)run(),里面記錄著線程要完成的操作,就好像通常所說的主函數(shù)main()一樣,run()函數(shù)運(yùn)行完了,線程就結(jié)束了.通過繼承這個(gè)類,我們可以定義我們自己的線程,在run函數(shù)中告訴它該做什么事情.下面的程序就是繼承了一個(gè)SimpleThread類,用兩個(gè)線程來輸出HelloWorld.
public class TwoThread{
public static void main(String args[]){ new SimpleThread("HelloWorld1").start();//創(chuàng)建兩個(gè)線程的實(shí)例,就這么簡(jiǎn)單 new SimpleThread("HelloWorld2").start(); }
} class SimpleThread extends Thread{ file://真正的內(nèi)容在這里 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()); } } |
運(yùn)行的結(jié)果是兩個(gè)線程交替顯示各自的HelloWorld十次,輸出是混在一起的,因?yàn)閮蓚€(gè)線程是同時(shí)運(yùn)行的.
作者:xm4014
今天第一次接觸Java。
雖然以前間或的也看了些書籍,但多是隔靴搔癢,上不了正席,絕不敢說自己懂Java。接觸一門新的技術(shù)和初戀一樣,都是第一次,但不同的是后者一般開始無比甜蜜,結(jié)局卻很痛苦,而前者則往往開始很痛苦,越到后來卻越是有味,簡(jiǎn)直是欲罷不能.現(xiàn)在我就正處于這個(gè)很痛苦的階段,連一個(gè)最簡(jiǎn)單的Helloworld都運(yùn)行不出來,總是提示Excepion in thread "main" java.lan.NoClassDefFoundError. 只好上網(wǎng)去查,去搜.記性又不好,所以搜出來趕緊保存下來,常備無患.
一般來說安裝完JDK之后,一定要按一下步驟配置,才可正確編譯運(yùn)行(假定jdk版本為1.4.0)
1.將jdk1.4.0-安裝在自己機(jī)器的某個(gè)盤符的根目錄下,如:可安裝在C:\jdk下。
***(以下出現(xiàn)的c:\jdk改為你自己安裝JDK的目錄)***
2.如果你的運(yùn)行環(huán)境是win98,則在C盤根目錄下,autoexec.bat文件中,加入下面兩條語句:
set Path=%PATH%;c:\jdk\bin
set CLASSPATH=.;c:\jdk\lib\dt.jar;c:\jdk\lib\tools.jar
保存后,重新啟動(dòng)機(jī)器,就完成了jdk1.4的安裝。
3.如果你的運(yùn)行環(huán)境是win2000的話,則需在“控制面板”的“系統(tǒng)”下,“高級(jí)”選項(xiàng)的“環(huán)境變量”中,添加兩個(gè)用戶變量。
其中一個(gè)用戶變量的名稱為“path”,值為“.;d:\j2sdk1.4.0_01\bin”,
另一個(gè)用戶變量的名稱為"CLASSPATH",值為“.;d"\j2sdk1.4.0_01\lib\dt.jar;d:\j2sdk1.4.0_01\lib\tools.jar”,單擊“確定”即可。即完成了jdk1.4.0的安裝。
至于這樣做的意義何在,我想應(yīng)該是讓Java系統(tǒng)在編譯字節(jié)代碼(.java)的時(shí)候需要一個(gè)什么東東的支持,如果你不告訴它這個(gè)東東放在哪個(gè)地方的話,它就犯傻了?!
看到屏幕上終于顯示出Hello world對(duì)我來說意義重大.這是我近一年來寫的第一個(gè)程序!再次踏上程序之路,簡(jiǎn)直有恍如隔世的感覺,已經(jīng)快找不準(zhǔn)我的位置了.還好原來學(xué)的一些關(guān)于C++和面向?qū)ο蟮钠っ珱]忘光光,所以費(fèi)點(diǎn)周折熟悉了JDK的環(huán)境之后,接下來的事情就好辦多了,心里也踏實(shí)多了.
用String類直接定義字符串變量比起C中討厭的指針,感覺確實(shí)好的多,用慣了Object Pascal的我,如果再回去數(shù)* *,真要瘋掉不可.
數(shù)組的定義和C,C++好像略有不同,記不清了,先記下來再說
int[] number=new int[5]
String[] message=new String[5]
變量這一部分想起來要交待的也就這么多吧。雖然是菜鳥,但我也知道,總是如譚浩強(qiáng)般在語法上面死摳的人簡(jiǎn)直是白癡:大多數(shù)情況下,漂亮的程序根本不需要無謂的點(diǎn)綴,工工整整,思路清晰就可以了.
倒是對(duì)于Java程序的框架我倒想備忘一下,一個(gè)簡(jiǎn)單的java程序好像是應(yīng)該是這樣的框架
class ProgramName
{
public static void main(String[] args)
{
file://程序的主體
}
public static int othermethod()
{
file://其它方法
}
}
整個(gè)程序在一個(gè)大的類中,這個(gè)類的概念應(yīng)該就跟pascal里面的單元差不多的。同pascal一樣,文件名也要與單元名-在這里是類名-一樣.Java對(duì)大小寫要求的非常嚴(yán)格,我語法錯(cuò)了好幾次都是因?yàn)檫@個(gè).
Java程序就是由一個(gè)或者多個(gè)或者很多個(gè)方法在這樣一個(gè)大類當(dāng)中組成的.
在如上的代碼中,定義方法的參數(shù)表示的意思分別為:
public表示此成員函數(shù)是公有的,可以被其他類直接調(diào)用
static表示main成員函數(shù)在ProgramName類的所有對(duì)象中是唯一的,Java將為其分配永久存儲(chǔ)空間
過幾天要去東星軟件筆試程序員,要求挺高的 網(wǎng)上找了篇筆試的文章前段時(shí)間因?yàn)橐獏⒓右粋€(gè)筆試,在準(zhǔn)備期間在網(wǎng)上找到了兩條關(guān)于筆試題目的文章,其中一篇為<<有感:應(yīng)聘Java筆試時(shí)可能出現(xiàn)問題>>,還有一篇忘了名字,讀后深受啟發(fā)。
??????? 在尋找這些答案的過程中,我將相關(guān)答案記錄下來,就形成了以下這些東西。需要說明的是以下答案肯定有很多不完整甚至錯(cuò)誤的地方,需要各位來更正與完善它,千萬不要扔我的雞蛋啊。
?????? 希望本文能夠給即將奔赴筆試考場(chǎng)的同仁些許幫助,更希望更多的人加入到收集整理筆試題與完善答案的這些工作中來,為大家更好的獲得工作機(jī)會(huì)做一點(diǎn)貢獻(xiàn)。
?????? 在此感謝前面兩文的作者的對(duì)筆試題目的收集與整理。
?????? 如有任何意見與建議請(qǐng)通過QQ:6045306,Mail:huijunzi@21cn.com與我聯(lián)系。
Java基礎(chǔ)方面:
1、作用域public,private,protected,以及不寫時(shí)的區(qū)別
答:區(qū)別如下:
作用域?????????? 當(dāng)前類?????? 同一package? 子孫類?????? 其他package
public??????????? √????????????? √????????????????? √???????????? √
protected??????? √????????????? √????????????????? √???????????? ×
friendly????????? √????????????? √?????????????????? ×??????????? ×
private?????????? √????????????? ×?????????????????? ×??????????? ×
不寫時(shí)默認(rèn)為friendly
2、ArrayList和Vector的區(qū)別,HashMap和Hashtable的區(qū)別
答:就ArrayList與Vector主要從二方面來說.
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來一培,而ArrayList卻是原來的一半
就HashMap與HashTable主要從三方面來說。
一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)
二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的
三.值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value
3、char型變量中能不能存貯一個(gè)中文漢字?為什么?
答:是能夠定義成為一個(gè)中文的,因?yàn)閖ava中以u(píng)nicode編碼,一個(gè)char占16個(gè)字節(jié),所以放一個(gè)中文是沒問題的
4、多線程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么?
答:多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類與實(shí)現(xiàn)Runnable接口
同步的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait與notify
5、繼承時(shí)候類的執(zhí)行順序問題,一般都是選擇題,問你將會(huì)打印出什么?
答:父類:
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();
?}
}
輸出結(jié)果:
C:\>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
6、內(nèi)部類的實(shí)現(xiàn)方式?
答:示例代碼如下:
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();
?}
}
輸出結(jié)果:
C:\>java test/OuterClass
InterClass Create
OuterClass Create
再一個(gè)例題:
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();
?? }
說明如下:
一.靜態(tài)內(nèi)部類可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類則不能有靜態(tài)成員。 故 A、B 錯(cuò)
二.靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的靜態(tài)變量,而不可訪問外部類的非靜態(tài)變量;return d1 出錯(cuò)。
故 D 錯(cuò)
三.非靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的非靜態(tài)變量。 故 C 正確
四.答案為C、E
7、垃圾回收機(jī)制,如何優(yōu)化程序?
希望大家補(bǔ)上,謝謝
8、float型float f=3.4是否正確?
答:不正確。精度不準(zhǔn)確,應(yīng)該用強(qiáng)制類型轉(zhuǎn)換,如下所示:float f=(float)3.4
9、介紹JAVA中的Collection FrameWork(包括如何寫自己的數(shù)據(jù)結(jié)構(gòu))?
答:Collection FrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合接口,一個(gè)Collection代表一組Object,即Collection的元素(Elements)
Map提供key到value的映射
10、Java中異常處理機(jī)制,事件機(jī)制?
11、JAVA中的多形與繼承?
希望大家補(bǔ)上,謝謝
12、抽象類與接口?
答:抽象類與接口都用于抽象,但是抽象類(JAVA中)可以有自己的部分實(shí)現(xiàn),而接口則完全是一個(gè)標(biāo)識(shí)(同時(shí)有多重繼承的功能)。
13、Java 的通信編程,編程題(或問答),用JAVA SOCKET編程,讀服務(wù)器幾個(gè)字符,再寫入本地顯示?
答: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實(shí)現(xiàn)一種排序,JAVA類實(shí)現(xiàn)序列化的方法(二種)? 如在COLLECTION框架中,實(shí)現(xiàn)比較要實(shí)現(xiàn)什么樣的接口?
答:用插入法進(jìn)行排序代碼如下
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類實(shí)現(xiàn)序例化的方法是實(shí)現(xiàn)java.io.Serializable接口
Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)Comparable 接口和 Comparator 接口
15、編程:編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。 但是要保證漢字不被截半個(gè),如“我ABC”4,應(yīng)該截為“我AB”,輸入“我ABC漢DEF”,6,應(yīng)該輸出為“我ABC”而不是“我ABC+漢的半個(gè)”。
答:代碼如下:
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中國(guó)43中國(guó)人
0ewldfls=103",4);
??ss.SplitIt();
?}
}
16、JAVA多線程編程。 用JAVA寫一個(gè)多線程程序,如寫四個(gè)線程,二個(gè)加1,二個(gè)對(duì)一個(gè)變量減一,輸出。
希望大家補(bǔ)上,謝謝
17、STRING與STRINGBUFFER的區(qū)別。
答:STRING的長(zhǎng)度是不可變的,STRINGBUFFER的長(zhǎng)度是可變的。如果你對(duì)字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法
Jsp方面
1、jsp有哪些內(nèi)置對(duì)象?作用分別是什么?
答:JSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對(duì)應(yīng)):
request 用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來自GET/POST請(qǐng)求的參數(shù)
?? response 網(wǎng)頁傳回用戶端的回應(yīng)
?? pageContext 網(wǎng)頁的屬性是在這里管理
?? session 與請(qǐng)求有關(guān)的會(huì)話期
?? application servlet 正在執(zhí)行的內(nèi)容
?? out 用來傳送回應(yīng)的輸出
?? config servlet的構(gòu)架部件
?? page JSP網(wǎng)頁本身
?? exception 針對(duì)錯(cuò)誤網(wǎng)頁,未捕捉的例外
2、jsp有哪些動(dòng)作?作用分別是什么?
答:JSP共有以下6種基本動(dòng)作
?? jsp:include:在頁面被請(qǐng)求的時(shí)候引入一個(gè)文件。
?? jsp:useBean:尋找或者實(shí)例化一個(gè)JavaBean。
?? jsp:setProperty:設(shè)置JavaBean的屬性。
?? jsp:getProperty:輸出某個(gè)JavaBean的屬性。
?? jsp:forward:把請(qǐng)求轉(zhuǎn)到一個(gè)新的頁面。
?? jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標(biāo)記
3、JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?
答:動(dòng)態(tài)INCLUDE用jsp:include動(dòng)作實(shí)現(xiàn)
?? 它總是會(huì)檢查所含文件中的變化,適合用于包含動(dòng)態(tài)頁面,并且可以帶參數(shù)
?? 靜態(tài)INCLUDE用include偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁面
?? <%@ include file="included.htm" %>
4、兩種跳轉(zhuǎn)方式分別是什么?有什么區(qū)別?
答:有兩種,分別為:
?
?
? 前者頁面不會(huì)轉(zhuǎn)向include所指的頁面,只是顯示該頁的結(jié)果,主頁面還是原來的頁面。執(zhí)行完后還會(huì)回來,相當(dāng)于函數(shù)調(diào)用。并且可以帶參數(shù).后者完全轉(zhuǎn)向新頁面,不會(huì)再回來。相當(dāng)于go to 語句。
Servlet方面
1、說一說Servlet的生命周期?
答:servlet有良好的生存期的定義,包括加載和實(shí)例化、初始化、處理請(qǐng)求以及服務(wù)結(jié)束。這個(gè)生存期由javax.servlet.Servlet接口的init,service和destroy方法表達(dá)。
2、Servlet版本間(忘了問的是哪兩個(gè)版本了)的不同?
希望大家補(bǔ)上,謝謝
3、JAVA SERVLET API中forward() 與redirect()的區(qū)別?
答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。
4、Servlet的基本架構(gòu)
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、可能會(huì)讓你寫一段Jdbc連Oracle的程序,并實(shí)現(xiàn)數(shù)據(jù)查詢.
答:程序如下:
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的作用?為什么要用?
答:調(diào)用該訪問返回一個(gè)以字符串指定類名的類的對(duì)象。
3、Jdo是什么?
答:JDO是Java對(duì)象持久化的新的規(guī)范,為java data object的簡(jiǎn)稱,也是一個(gè)用于存取某種數(shù)據(jù)倉庫中的對(duì)象的標(biāo)準(zhǔn)化API。JDO提供了透明的對(duì)象存儲(chǔ),因此對(duì)開發(fā)人員來說,存儲(chǔ)數(shù)據(jù)對(duì)象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,使開發(fā)人員解脫出來,從而集中時(shí)間和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因?yàn)樗梢栽谌魏螖?shù)據(jù)底層上運(yùn)行。JDBC只是面向關(guān)系數(shù)據(jù)庫(RDBMS)JDO更通用,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫、文件、XML以及對(duì)象數(shù)據(jù)庫(ODBMS)等等,使得應(yīng)用可移植性更強(qiáng)。
4、在ORACLE大數(shù)據(jù)量下的分頁解決方法。一般用截取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%>
//輸出內(nèi)容
//輸出翻頁連接
合計(jì):<%=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有哪些解析技術(shù)?區(qū)別是什么?
答:有DOM,SAX,STAX等
DOM:處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個(gè)文檔裝入內(nèi)存,適合對(duì)XML的隨機(jī)訪問SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動(dòng)型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個(gè)文件。當(dāng)遇到像文件開頭,文檔結(jié)束,或者標(biāo)簽開頭與標(biāo)簽結(jié)束時(shí),它會(huì)觸發(fā)一個(gè)事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適合對(duì)XML的順序訪問
STAX:Streaming API for XML (StAX)
2、你在項(xiàng)目中用到了xml技術(shù)的哪些方面?如何實(shí)現(xiàn)的?
答:用到了數(shù)據(jù)存貯,信息配置兩方面。在做數(shù)據(jù)交換平臺(tái)時(shí),將不能數(shù)據(jù)源的數(shù)據(jù)組裝成XML文件,然后將XML文件壓縮打包加密后通過網(wǎng)絡(luò)傳送給接收者,接收解密與解壓縮后再同XML文件中還原相關(guān)信息進(jìn)行處理。在做軟件配置時(shí),利用XML可以很方便的進(jìn)行,軟件的各種配置參數(shù)都存貯在XML文件中。
3、用jdom解析xml文件時(shí)如何解決中文問題?如何解析?
答:看如下代碼,用編碼方式加以解決
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文件如下:
? 王小明
? 信息學(xué)院??
? 6258113
? 男,1955年生,博士,95年調(diào)入海南大學(xué)
?
?事件回調(diào)類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內(nèi)容顯示源碼,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("姓名 | " + "" + ? (String)hashTable.get(new String("name")) + " |
");
out.println("學(xué)院 | " + "" + ? (String)hashTable.get(new String("college"))+" |
");
out.println("電話 | " + "" + ? (String)hashTable.get(new String("telephone")) + " |
");
out.println("備注 | " + "" + ? (String)hashTable.get(new String("notes")) + " |
");
out.println("
");
%>
EJB方面
1、EJB2.0有哪些內(nèi)容?分別用在什么場(chǎng)合? EJB2.0和EJB1.1的區(qū)別?
答:規(guī)范內(nèi)容包括Bean提供者,應(yīng)用程序裝配者,EJB容器,EJB配置工具,EJB服務(wù)提供者,系統(tǒng)管理員。這里面,EJB容器是EJB之所以能夠運(yùn)行的核心。EJB容器管理著EJB的創(chuàng)建,撤消,激活,去活,與數(shù)據(jù)庫的連接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....
2、EJB與JAVA BEAN的區(qū)別?
答:Java Bean 是可復(fù)用的組件,對(duì)Java Bean并沒有嚴(yán)格的規(guī)范,理論上講,任何一個(gè)Java類都可以是一個(gè)Bean。但通常情況下,由于Java Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java Bean應(yīng)具有一個(gè)無參的構(gòu)造器,另外,通常Java Bean還要實(shí)現(xiàn)Serializable接口用于實(shí)現(xiàn)Bean的持久性。Java Bean實(shí)際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程訪問的。Enterprise Java Bean 相當(dāng)于DCOM,即分布式組件。它是基于Java的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠(yuǎn)程訪問(跨進(jìn)程、跨計(jì)算機(jī))。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。
3、EJB的基本架構(gòu)
答:一個(gè)EJB包括三個(gè)部分:
? 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的各個(gè)部分都有那些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn)?
答:MVC是Model-View-Controller的簡(jiǎn)寫。"Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實(shí)現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁面產(chǎn)生),"Controller" 是提供應(yīng)用的處理過程控制(一般是一個(gè)Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。
2、應(yīng)用服務(wù)器與WEB SERVER的區(qū)別?
希望大家補(bǔ)上,謝謝
3、J2EE是什么?
答:Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級(jí)應(yīng)用模型(enterpriese application model).在這樣的一個(gè)應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。
4、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。
答:Web Service描述語言WSDL
SOAP即簡(jiǎn)單對(duì)象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級(jí)協(xié)議。
UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn);UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時(shí)也包含一組使企業(yè)能將自身提供的Web Service注冊(cè),以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。
5、BS與CS的聯(lián)系與區(qū)別。
希望大家補(bǔ)上,謝謝
6、STRUTS的應(yīng)用(如STRUTS架構(gòu))
答:Struts是采用Java Servlet/JavaServer Pages技術(shù),開發(fā)Web應(yīng)用程序的開放源碼的framework。 采用Struts能開發(fā)出基于MVC(Model-View-Controller)設(shè)計(jì)模式的應(yīng)用構(gòu)架。 Struts有如下的主要功能:
一.包含一個(gè)controller servlet,能將用戶的請(qǐng)求發(fā)送到相應(yīng)的Action對(duì)象。
二.JSP自由tag庫,并且在controller servlet中提供關(guān)聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用。
三.提供了一系列實(shí)用對(duì)象:XML處理、通過Java reflection APIs自動(dòng)處理JavaBeans屬性、國(guó)際化的提示和消息。
設(shè)計(jì)模式方面
1、開發(fā)中都用到了那些設(shè)計(jì)模式?用在什么場(chǎng)合?
答:每個(gè)模式都描述了一個(gè)在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復(fù)相同的工作。主要用到了MVC的設(shè)計(jì)模式。用來開發(fā)JSP/Servlet或者J2EE的相關(guān)應(yīng)用。簡(jiǎn)單工廠模式等。
2、UML方面
答:標(biāo)準(zhǔn)建模語言UML。用例圖,靜態(tài)圖(包括類圖、對(duì)象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖,
JavaScript方面
1、如何校驗(yàn)數(shù)字型?
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 標(biāo)準(zhǔn)是公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(Common Object Request Broker Architecture),由對(duì)象管理組織 (Object Management Group,縮寫為 OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。 其目的為:
用不同的程序設(shè)計(jì)語言書寫
在不同的進(jìn)程中運(yùn)行
為不同的操作系統(tǒng)開發(fā)
LINUX方面
1、LINUX下線程,GDI類的解釋。
答:LINUX實(shí)現(xiàn)的就是基于核心輕量級(jí)進(jìn)程的"一對(duì)一"線程模型,一個(gè)線程實(shí)體對(duì)應(yīng)一個(gè)核心輕量級(jí)進(jìn)程,而線程之間的管理在核外函數(shù)庫中實(shí)現(xiàn)。
GDI類為圖像設(shè)備編程接口類庫。
javax.microedition.lcdui.Display類
方法
static Display getDisplay(MIDlet midlet) 獲取Display類的實(shí)例
Displayable getCurrent() 獲取目前Displayable類的實(shí)例
void setCurrent(Alert alert,Displayable displayable) 顯示所指定的報(bào)警對(duì)話框的實(shí)例和被指定Displayable類的實(shí)例
void setCurrent(Displayable displayable) 顯示所指定的Displayable類的實(shí)例
boolean isColor() 判斷設(shè)備是否支持彩色
int numColors() 獲取設(shè)備能用的色彩位數(shù)或灰度
void callSerial(Runnable runnable) 重繪圖后,調(diào)用Runnable類的實(shí)例
javax.microedition.lcdui.Displayable類
方法
void addCommand(Command command) 將命令關(guān)聯(lián)到Displayabel類的實(shí)例
void removecommand (Command command ) 撤消關(guān)聯(lián)
void setCommandListener (CommandListener commandlistener) 關(guān)聯(lián)CommandListener到Displayable類的實(shí)例
boolean isShown () 判斷Displayable類實(shí)例時(shí)候在屏幕上顯示
javax.microedition.lcdui.Command類
Command(String label, int commandTYPE, int priority) 創(chuàng)建Command類的實(shí)例,顯示指定的標(biāo)簽,設(shè)置指定的命令類型和優(yōu)先級(jí)
int getCommandType() 獲取命令的命令類型
String getLabel() 獲取命令的標(biāo)簽
int getPriority() 獲取命令的優(yōu)先級(jí)
javax.microedition.lcdui.CommandListener接口
方法
void commandAction(Command command,Displayable dispalyable) 處理Command類的實(shí)例
javax.microedition.lcdui.Item類
方法
String getLabel() 獲取與Item類的實(shí)例關(guān)聯(lián)的標(biāo)簽
void setLabel(String label) 為Item類的實(shí)例指定一個(gè)標(biāo)簽
javax.microedition.ItemStateListener接口
方法
void itemStateChanged (Item item) 處理Item類的實(shí)例的改變
javax.microedition.midlet.MIDlet 類
方法
abstract void destroyApp(boolean unconditional) 關(guān)閉MIDlet
abstract void pauseApp() 暫停MIDlet
abstract void startApp() 激活MIDlet
final void notify Destroyed() 請(qǐng)求停止MIDlet
final void notifyPause() 請(qǐng)求暫停MIDlet
final void notifyRequset() 請(qǐng)求激活MIDlet
final String getAppProperty(string key) 從JAD或JAR文件獲取屬性
javax.microedition.midlet.MIDletStateChangeException類
方法
MIDletStateChangeException 不用測(cè)試生成心得MIDletStateChangeException對(duì)象
MIDletStateChangeException(String string) 生成新的帶消息的MIDletStateChangeException對(duì)象
在應(yīng)用程序即將使用一個(gè)對(duì)象時(shí)在分配這個(gè)對(duì)象,而不是在應(yīng)用程序啟動(dòng)是全部分配。
一旦應(yīng)用程序不再需要一個(gè)對(duì)象,就要將所有對(duì)該對(duì)象的引用賦值為null
總是重用對(duì)象而不是創(chuàng)建對(duì)象。
遵守拇指法則
應(yīng)用程序通常是單線程的。
一次只能運(yùn)行一個(gè)應(yīng)用程序
應(yīng)用程序是事件驅(qū)動(dòng)的
用戶從一個(gè)應(yīng)用程序切換到另一個(gè)應(yīng)用程序,而不是結(jié)束應(yīng)用程序
移動(dòng)小型計(jì)算設(shè)備的使用方式通常是每次只用兩分鐘,每次用30次。
應(yīng)用程序必須在兩分鐘之內(nèi)完成一項(xiàng)任務(wù)。
我還喜歡她嗎?我也不知道,真的真的模糊了…
我記得有段時(shí)間狠狠的喜歡過,也信誓旦旦的承諾過…
雖然在繁忙的學(xué)習(xí)之間會(huì)想起她,雖然是一閃而過,但是心里還是酸酸的。
她很漂亮,至少我一直這樣想的,倒不是說就是一見鐘情的那種。感覺卻是聊天里來的….
似乎這很老套。可就是這樣簡(jiǎn)單的打招呼,親切的問候……似乎就忘不了了.
即使真的喜歡又會(huì)怎么樣呢?想起她就這樣反問自己?!耙姸紱]見過呢”。“先有事業(yè),在有妻室”,“熱血男兒志在四方”,
理由就是這樣一個(gè)接一個(gè)的會(huì)涌上來.
苦苦笑笑 得了吧…
就算認(rèn)識(shí)過,就算真的相愛過,在距離面前…“0”
我知道答案其實(shí)一直一直都沒變過,變的只是周圍的環(huán)境,繁忙的學(xué)習(xí),巨大的工作壓力,讓我漸漸把這個(gè)答案深深埋了起來,再不能象以前一天到晚守在電腦前等她上線,再不能拿著手機(jī)給她發(fā)消息,再不能偷偷打工為她買東東,再不能……………..
好難得周末…能這樣輕松的坐在電腦前..(別忘了明天早起上課..-_-)
把她放在心里…我知道她會(huì)永遠(yuǎn)在自己心里.
馬上就要畢業(yè)了,大學(xué)四年的生活一晃而過,過的好快哦。
讀書的時(shí)候總拼命找時(shí)間玩..總想星期六星期天有時(shí)間可以補(bǔ)回來。呵呵,所以整個(gè)大學(xué)四年都在縫縫補(bǔ)補(bǔ)。
人們總是以為一件事情干兩天肯定要比干一天要做好,以前的我也是如此認(rèn)為,做事慢慢吞吞,總以為花的時(shí)間越多就能做的越好。其實(shí)錯(cuò)了,大家都錯(cuò)了,一天能做好的事情就要花一天做的最好,星期六星期天是拿來放松的,拿來休息的。
并是不忙忙碌碌就能成功。
而成功的人就一定是效率高。
回學(xué)校啦,呵呵,音響放到最響....
室友添了新電腦...嘿嘿 ....以后爽游戲又方便多啦...HOHO
2005 一切都在改變.....我也要加油干起來了~~~
回家啦 ...終于回家了....
大學(xué)生涯最后一個(gè)寒假....happy new year~~~
珍惜擁有....
忘記以前的天真,無憂。。。。。在這一年里即將踏入社會(huì)。我知道現(xiàn)在我是新人,生活法則,社會(huì)規(guī)則,我必須一點(diǎn)一滴的從頭開始。。。。2005 奮斗的一年,那里有一座陌生的城市等我去闖蕩,那里有嶄新的事業(yè)等我去開拓,以后回頭------我必須告訴自己。。。2005年,我為我自己選者的路而驕傲
Thread 線程
它能鎖定任何對(duì)象占用的內(nèi)存(內(nèi)存實(shí)際是多種共享資源的一種),所以同一時(shí)間只能有一個(gè)線程使用特定的內(nèi)存空間。為達(dá)到這個(gè)目的,需要使用synchronized關(guān)鍵字。
瀏覽器最初只是純粹的查看程序,這是由于每次采取一些要求編程的操作時(shí),必須將信息反饋回服務(wù)器,在服務(wù)器那一端進(jìn)行處理。所以完全可能需要等待數(shù)秒乃至數(shù)分鐘的時(shí)間才會(huì)發(fā)現(xiàn)自己剛才拼錯(cuò)了一個(gè)單詞。這就叫作“客戶端編程”。
applet 程序片
時(shí)刻提醒自己注意以下幾個(gè)問題:
(1) 對(duì)象是什么?(怎樣將自己的項(xiàng)目分割成一系列單獨(dú)的組件?)
(2) 它們的接口是什么?(需要將什么消息發(fā)給每一個(gè)對(duì)象?)
在確定了對(duì)象和它們的接口后,便可著手編寫一個(gè)程序。出于對(duì)多方面原因的考慮,可能還需要比這更多的說明及文檔,但要求掌握的資料絕對(duì)不能比這還少。
想象成用遙控板(句柄)操縱電視機(jī)(對(duì)象)。只要握住這個(gè)遙控板,就相當(dāng)于掌握了與電視機(jī)連接的通道。但一旦需要“換頻道”或者“關(guān)小聲音”,我們實(shí)際操縱的是遙控板(句柄),再由遙控板自己操縱電視機(jī)(對(duì)象)。如果要在房間里四處走走,并想保持對(duì)電視機(jī)的控制,那么手上拿著的是遙控板,而非電視機(jī)。
此外,即使沒有電視機(jī),遙控板亦可獨(dú)立存在。
Heap 堆
Java對(duì)象本身永遠(yuǎn)都不會(huì)置入靜態(tài)存儲(chǔ)空間
wrapper 封裝器 Scope 作用域
class ATypeName {/*類主體置于這里}
這樣就引入了一種新類型,接下來便可用new創(chuàng)建這種類型的一個(gè)新對(duì)象:
ATypeName a = new ATypeName();
我們?cè)贘ava里的全部工作就是定義類、制作那些類的對(duì)象以及將消息發(fā)給那些對(duì)象
class DataOnly {
int i;
float f;
boolean b;
}
這個(gè)類并沒有做任何實(shí)質(zhì)性的事情,但我們可創(chuàng)建一個(gè)對(duì)象:
DataOnly d = new DataOnly();
可將值賦給數(shù)據(jù)成員,但首先必須知道如何引用一個(gè)對(duì)象的成員。為達(dá)到引用對(duì)象成員的目的,首先要寫上對(duì)象句柄的名字,再跟隨一個(gè)點(diǎn)號(hào)(句點(diǎn)),再跟隨對(duì)象內(nèi)部成員的名字。即“對(duì)象句柄.成員”。例如:
d.i = 47;
d.f = 1.1f;
d.b = false;
Method 方法
Java的方法只能作為類的一部分創(chuàng)建。只能針對(duì)某個(gè)對(duì)象調(diào)用一個(gè)方法
import的作用是指示編譯器導(dǎo)入一個(gè)“包”——或者說一個(gè)“類庫”
梵天:印度教神話中三大最高神之一。世界的創(chuàng)造者。佛教吸收其為護(hù)法神,稱“大梵天王”
。
濕婆:印度三大神的第三位。又叫“西哇”。是最受崇拜的神之一。是象征“昌盛”和“吉兆”的神。同時(shí)又象征“毀滅”,是起死回生之神。一般被視為“破壞神”。同時(shí)他也是生殖之神,傳到中國(guó)后與藏教密宗中的大歡喜菩薩互相影響。有時(shí)也被人塑成一面目猙獰的怒漢和一極美女子交合的形象。濕婆表現(xiàn)憤怒的一面?zhèn)魅肴毡竞?,作為大黑天十分聞名,是武士和浪人的保護(hù)神。
毗濕奴:三大主神之一,與前兩者并稱為三聯(lián)神。稱謂極多,有一千種以上,常見的為“那羅衍”,“世界之主”等。
因陀羅:雷電之神,眾神之首,后成為天王。被佛教吸收后又叫“帝釋天”,為善見城城主。
吉祥天:即拉克什密。被稱為毗濕奴的妻子。在最古老的神話中與大梵天,俱毗羅,因陀羅聯(lián)系在一起,是佛教的護(hù)法天王。是毗沙天門王之妹,號(hào)稱“功德天王”。毗沙天王是北方天王,是財(cái)富之神,勝利,護(hù)法之神。
釋迦:原名喬達(dá)摩。悉達(dá)多,佛教的創(chuàng)始人。相傳為印度北部小國(guó)王子,后舍棄家庭,權(quán)位,獨(dú)自出走。七年后在菩提樹下頓悟成佛。又被稱為大日如來。佛教中最為崇高的神,曾降伏過中國(guó)的戰(zhàn)斗之神齊天大圣。
天龍八部:即八部眾,說法見于佛經(jīng)?!斗ㄈA經(jīng)。提婆達(dá)多品》中曾提到過:“天龍八部,人與非人,皆遙見彼龍女成佛、”
天:即帝釋天為首的天神。天神的壽命也會(huì)完結(jié),這是因?yàn)榉鸺蚁嘈攀率陆杂袩o常。天神臨死前會(huì)出現(xiàn)“衣裳垢膩,頭上花萎,身體臭穢,腋下出汗,不樂本位”這五種征兆,也就是所謂的“天人五哀”。
阿修羅:阿修羅是與天對(duì)立的一族。他們非常好戰(zhàn),男的極丑,女的極美。阿修羅有美女而無美食。天有美食而無美女。雙方常因此而互相爭(zhēng)斗,場(chǎng)面十分慘烈?!靶蘖_場(chǎng)”的說法即從此來。阿修羅一族被視為戰(zhàn)神,他還有個(gè)化身是火神大摩尼,也就是“拜火教”和中土“明教”的最高神。
龍:龍無論在東西方神話,還是在奇幻文化中都是個(gè)非常歡迎的角色。以其獨(dú)特的外形,強(qiáng)大的力量備受青睞。可以說一說到奇幻,人們就會(huì)想到龍,龍幾乎成了奇幻文學(xué)的代表。東西方的龍雖然有所不同,但它們也有很多相似之處,頭部特征,善飛翔,會(huì)從嘴中吐出物質(zhì)攻擊等。這些驚人的巧合讓人忍不住懷疑是否以前有此一類生物存在。龍的記載在我國(guó)由來以久,大量詳實(shí),準(zhǔn)確,生動(dòng)的記錄貫穿著整個(gè)古代正史,有紀(jì)可考的記錄最后見于民國(guó)初年,讓人十分迷惑。但天龍八部中的龍其實(shí)說的是一種大蟒蛇。
乾達(dá)婆:擁有黃金之翼半人半鳥的精靈。天界的音樂家。
迦樓羅:中國(guó)人很熟悉的一種大鳥,傳入中國(guó)后演變成了金翅大鵬鳥。原型是種翅有種種莊嚴(yán)寶色的神鳥,一天吞噬一條龍王和五百條小龍(哪來這么多龍讓它吃?),五百年自焚一次,然后又從火焰中復(fù)活,鳳凰重生的傳說即來源于此。
其他有代表性的神
巴爾:又名巴盧爾或巴卡爾,出現(xiàn)在不同神話中,名稱也不同。美索不達(dá)米亞一帶的主神,掌管雷電和農(nóng)牧,生殖。也是死而復(fù)生之神。與兄長(zhǎng)穆圖是死敵。起先是善神,后在基督教義中被視為邪神。在《暗黑破壞神二》中登場(chǎng),被視為毀滅之王。
穆圖:也名莫特。死神,冥界之神,混沌之神,干旱和歉收之神。是巴爾的兄長(zhǎng)和主要對(duì)手。出自閃米特族神話。
阿卡特拉姆:凱爾特神話中的勇敢之神,達(dá)努神族努阿達(dá)的別名。曾與邪神巴爾殊死作戰(zhàn)。
須佐之男:日本神話中最早的大神依邪那歧三子女中的最幼者,另兩為就是日本最高神天照大神,和月讀了。他全名為素盞鳴尊,亂暴之神,因其狂暴的性格而被視為破壞神。他斬殺了八歧大蛇,成為神話中的英雄。
伊希斯:埃及神話中神力非凡的巫師,被視為魔法的始祖。
塞特:出自埃及神話,希臘人稱之為緹豐,為惡靈的化身,永遠(yuǎn)與善良作對(duì)。傳說他曾化身黑豬,每月攻擊啖食月亮。
哈奴曼:印度版孫悟空,是印度神話中的神猴。風(fēng)神和母猴所生之子。在英雄敘事詩《羅摩衍那》中登場(chǎng)成為幫助羅摩王子的好幫手。他聰明非凡,力能排山倒海,善于騰云駕霧,變幻形象和大?。ㄟ€說不是孫悟空?),多次救助羅摩王子,是智慧和力量的化身。
塞克爾:埃及神話中的死者之神。以鷹頭木乃伊的形象出現(xiàn),傳說為冥界的判官,常用一架天平來稱量死者的心臟,以決定他的待遇。在古埃及法老陵墓中的壁畫上大量出現(xiàn),在羅。斯托神廟中被膜拜。
奧丁:北歐阿斯神族的至高神,諸神之王,也是死者之王,戰(zhàn)神,權(quán)力之神,魔法之神。曾冒死以一人之力闖入冥界,為人類取得古文字而擁有大量知識(shí),為此失去一只眼睛。他身形高大,身披金甲,騎八足神馬“斯萊普尼斯”,手持名槍“岡尼爾”,居住在“瓦爾哈拉”的神殿中,讓女武神收集死者的魂魄,為終末之戰(zhàn)“饒納諾克”即“諸神的黃昏”做準(zhǔn)備。為舉世聞名的北歐蠻族,維京人所信仰。他們堅(jiān)信如果英勇戰(zhàn)死就可以進(jìn)入“瓦爾哈拉”,所以戰(zhàn)斗是勇猛無比,曾席卷過大半個(gè)歐洲。
女武神(瓦爾基里):侍奉主神奧丁的女神,奉命奔波在戰(zhàn)場(chǎng)上,收集戰(zhàn)死的勇士的靈魂,帶往“瓦爾哈拉”,讓其復(fù)活以應(yīng)付諸神與巨人族的“諸神的黃昏”的最終戰(zhàn)。女武神們各個(gè)武技高超,為人類的保護(hù)神 。著名劇作家瓦格納曾為其譜寫過名曲《女武神的飛馳》(瓦格納以及他的作品和生平會(huì)在以后介紹,他的著名作品《尼伯龍根的指環(huán)》是歌劇版的奇幻小說,有興趣的可以找來聽聽,十分精彩!)
齊格弗里德:德國(guó)著名英雄敘事詩《尼伯龍根之歌》里登場(chǎng)的英雄,他得到了擁有至高力的指環(huán),可以聽懂鳥語。他殺死過巨龍,沐浴過龍血,成為有最強(qiáng)肉體的不死男人。但卻因?yàn)殂逶r(shí)一片樹葉掉在了背上,肩胛骨下的一處成為致命弱點(diǎn)而被人殺死。(詳情請(qǐng)參閱瓦格納的《尼伯龍根的指環(huán)》)
洛基:最初被看作仁慈之神,因?yàn)槠浣艹龅牟拍芎屯饷捕话⑺股褡褰邮埽頌榫奕俗宓乃韵矚g喜歡挑撥其他神爭(zhēng)斗,還殺死了主神奧丁的兒子,被諸神囚禁,在諸神與巨人族的終末戰(zhàn)“諸神的黃昏”時(shí)爆發(fā),加入巨人族陣營(yíng)戰(zhàn)斗,最后帶來了諸神的毀滅。
瑟特:住在火之國(guó)度的巨人,“諸神之黃昏”中率火巨人出戰(zhàn)。
赫爾:主宰地下世界的女神,據(jù)說是洛基的女兒,奧丁賦予她到冥界尼弗爾海姆,統(tǒng)治九界的權(quán)力。
焚里爾:北歐神話中最著名的魔獸,洛基的子女之一,巨大狼形怪物,傳說當(dāng)他張開嘴后上下鄂可以頂住天地,因其性格兇暴而被矮人族囚困,直到終末戰(zhàn)時(shí),他才脫困,并且吞下了太陽和主神奧丁。
托爾:著名的雷電之神,名字即“轟鳴者”的意思,諸神中最具怪力的神,以巨大鐵槌作戰(zhàn)。他的鐵槌也很著名,“托爾的鐵槌”在許多作品中幾乎成為了力量的代表。他還是豐饒之神,主管一切人類所必須經(jīng)歷的儀式,如婚喪嫁娶等?!爸T神之黃昏”中托爾和世界蛇尤蒙岡多同歸于盡。尤蒙岡多是一條自己銜著自己的大蛇,象征無限。
北歐命運(yùn)三女神:掌握“存在”和“未來” 斯克爾特 掌握“必然”和“現(xiàn)在” 威爾珊迪
掌握命運(yùn)和過去 ???(沒找到。)
多瓦夫:矮人中的妖精族(奇怪的組合)。據(jù)說當(dāng)初是蛆蟲,因啃食了最初巨人尤米爾的遺體而獲得了人形和智慧。擁有天才的鍛造本領(lǐng),是武器和工藝品的杰出制造者,也就是奇幻小說中常常出現(xiàn)的矮人族設(shè)定的原形,代表人物很多,如《龍槍》中弗林特?;馉t。他們共同的特點(diǎn)為矮胖的身體,大胡子,手持戰(zhàn)斧,忠誠(chéng)而脾氣暴躁。
BERSERK:巴薩卡,這個(gè)詞源于古代北歐語言,意思是“披著熊皮的人”后為“狂戰(zhàn)士”的稱謂。是奇幻作品中最受歡迎的職業(yè)設(shè)定之一??駪?zhàn)士受主神奧丁的加護(hù),戰(zhàn)斗中會(huì)陷入極度興奮的忘我狀態(tài),以超強(qiáng)的肉體打擊敵人,沒有恐懼,疼痛的感覺。嚴(yán)重者會(huì)陷入癲狂而死。
宙斯:希臘神話中的至高神,掌握雷電,所以又被稱為雷神。在母親蕾亞的支持下,殺了父親克洛諾斯,成為了第三代神王。性格極為好色,常背著妻子赫拉與其他女神 和凡人私通,私生子無數(shù)。
克洛諾斯:前奧林波斯神詆之一,天神烏拉諾和大地女神瑞亞之子,泰坦巨人中的最幼者,推翻父親成為第二代神王,其后卻遭到與父親同樣的命運(yùn)。
波塞冬:海之皇,宙斯的二哥,手持巨大三叉戟,統(tǒng)領(lǐng)海中所有生物。有被描寫為半人半魚的模樣,能呼風(fēng)喚雨。性格兇暴殘忍。
哈帝斯:宙斯,波塞冬,得墨忒爾的兄長(zhǎng),主管冥界,力量很強(qiáng),但性格平和。除了搶奪豐收女神得墨忒爾之女春之女神玻爾塞富涅為妻外,無它惡行。
瑞亞:希臘神話中的大地女神,是奧林波斯神系之前的古神,也是泰坦之母,她與烏拉諾生下了眾多希臘神詆。
帕拉斯。雅典娜:智慧女神和正義戰(zhàn)爭(zhēng)女神,宙斯和墨涅斯之女,她出生時(shí)宙斯頭部劇烈疼痛,之后用大斧劈開后,雅典娜手持長(zhǎng)槍,身披戰(zhàn)甲從中跳出。是很受歡迎的神。因失手殺死好友帕拉斯而改名為帕拉斯。雅典娜。
阿波羅;太陽神,宙斯和勒托之子,月神和狩獵女神阿爾忒彌斯的兄長(zhǎng),希臘十二大神詆之一,又名赫利俄斯。主掌光明,醫(yī)藥,文學(xué),詩歌,音樂等。每天架天馬拉乘的的黃金車巡游天上一周。
阿爾忒彌斯:月神,狩獵女神,純潔之神。所以也被稱為處女的保護(hù)神。阿波羅的孿生妹妹。
阿瑞斯:戰(zhàn)神,是兇殘,狡詐,非理性的,為戰(zhàn)爭(zhēng)而戰(zhàn)爭(zhēng)的神。曾與工匠之神的妻子維納斯私通,被裝進(jìn)一張工匠之神特制的大網(wǎng)中而無法脫身。(維納斯原為羅馬神詆,后為希臘神話所吸收。)
赫爾墨斯:宙斯與阿特拉斯的女兒邁亞所生的兒子。腳生雙翼,速度如飛,成為天界眾神傳令的使者,后為旅人,商人,盜賊的保護(hù)神,經(jīng)常化為凡人下界幫助保護(hù)者。
狄俄涅索斯:酒神,拉丁文名字為巴卡斯,傳說中釀酒的發(fā)明人,形象為一手持酒杯,一手拿松果木神杖,后升為歡樂,文明之神。
赫拉克勒斯:宙斯與凡人的私生子,為神母赫拉所仇視,但在雅典娜的巧妙安排下,赫拉為其哺過乳。出生后既力大無窮,曾于搖籃中捏死過兩條巨蛇。成人后,完成了號(hào)稱不可能完成的十二件大功。因此其后升為大力神。因在完成十二件大功中替人類掃除了眾多妖魔怪獸,并解放了為宙斯囚禁的善神普羅米修斯,所以受人愛戴。富于反抗精神,曾不滿宙斯的專制而反抗神界。
刻耳柏洛斯:地獄的守門狗,三頭而蛇尾的魔獸,以青銅之聲攻擊敵人,是巨人和怪物所生的怪獸。
一、馬太效應(yīng)
《新約 馬太福音》中有這樣一個(gè)故事,一個(gè)國(guó)王遠(yuǎn)行前,交給三個(gè)仆人每人一錠銀子,吩咐他們:“你們?nèi)プ錾猓任一貋頃r(shí),再來見我?!眹?guó)王回來時(shí),第一個(gè)仆人說:“主人,你交給我們的一錠銀子,我已賺了10錠?!庇谑菄?guó)王獎(jiǎng)勵(lì)他10座城邑。第二個(gè)仆人報(bào)告說:“主人,你給我的一錠銀子,我已賺了5錠?!庇谑菄?guó)王例獎(jiǎng)勵(lì)了他5座城邑。第三個(gè)仆人報(bào)告說:“主人,你給我的一錠銀子,我一直包在手巾里存著,我怕丟失,一直沒有拿出來?!庇谑菄?guó)王命令將第三個(gè)仆人的一錠銀子也賞給第一個(gè)仆人,并且說:“凡是少的,就連他所有的也要奪過來。凡是多的,還要給他,叫他多多益善?!边@就是馬太效應(yīng)。看看我們周圍,就可以發(fā)現(xiàn)許多馬太效應(yīng)的例子。朋友多的人會(huì)借助頻繁的交往得到更多的朋友;缺少朋友的人會(huì)一直孤獨(dú)下去。金錢方面更是如此,即使投資回報(bào)率相同,一個(gè)比別人投資多10倍的人,收益也多10倍。
這是個(gè)贏家通吃的社會(huì),善用馬太效應(yīng),贏家就是你。
對(duì)企業(yè)經(jīng)營(yíng)發(fā)展而言,馬太效應(yīng)則告訴我們,要想在某一個(gè)領(lǐng)域保持優(yōu)勢(shì),就必須在此領(lǐng)域迅速做大。當(dāng)你成為某個(gè)領(lǐng)域的領(lǐng)頭羊的時(shí)候,即使投資回報(bào)率相同,你也能更輕易的獲得比弱小的同行更大的收益。而若沒有實(shí)力迅速在某個(gè)領(lǐng)域做大,就要不停地尋找新的發(fā)展領(lǐng)域,才能保證獲得較好的回報(bào)。
二、手表定理
手表定理是指一個(gè)人有一只表時(shí),可以知道現(xiàn)在是幾點(diǎn)鐘,而當(dāng)他同時(shí)擁有兩只表時(shí)卻無法確定。兩只表并不能告訴一個(gè)人更準(zhǔn)確的時(shí)間,反而會(huì)讓看表的人失去對(duì)準(zhǔn)確時(shí)間的信心。你要做的就是選擇其中較信賴的一只,盡力校準(zhǔn)它,并以此作為你的標(biāo)準(zhǔn),聽從它的指引行事。記住尼采的話:“兄弟,如果你是幸運(yùn)的,你只需有一種道德而不要貪多,這樣,你過橋更容易些?!?
如果每個(gè)人都“選擇你所愛,愛你所選擇”,無論成敗都可以心安理得。然而,困擾很多人的是:他們被“兩只表”弄得無所,心身交瘁,不知自己該信仰哪一個(gè),還有人在環(huán)境、他人的壓力下,違心選擇了自己并不喜歡的道路,為此而郁郁終生,即使取得了受人矚目的成就,也體會(huì)不到成功的快樂。
手表定理在企業(yè)經(jīng)營(yíng)管理方面給我們一種非常直觀的啟發(fā),就是對(duì)同一個(gè)人或同一個(gè)組織的管理不能同時(shí)采用兩種不同的方法,不能同時(shí)設(shè)置兩個(gè)不同的目標(biāo)。甚至每一個(gè)人不能由兩個(gè)人來同時(shí)指揮,否則將使這個(gè)企業(yè)或這個(gè)人無所適從。手表定理所指的另一層含義在于每個(gè)人都不能同時(shí)挑選兩種不同的價(jià)值觀,否則,你的行為將陷于混亂。
練級(jí)無至盡,現(xiàn)在網(wǎng)絡(luò)游戲似乎除了練級(jí)還是練級(jí),一切都是為了練級(jí)...
是不是可以在游戲中加入年齡這種概念,即可以把在線時(shí)間換算成游戲中角色年齡,角色年齡只跟角色在線時(shí)間有關(guān),不管角色在線上做什么.而角色的各項(xiàng)技能又和角色年齡有關(guān),在各個(gè)年齡段練習(xí)不同的技能,打怪只是提高自己的技能階級(jí).角色到達(dá)一定年齡階段角色技能會(huì)衰減....還想的不是很成熟..
所有東西都是對(duì)象.
程序就是對(duì)象的組合,對(duì)象之間通過消息聯(lián)系
對(duì)象就是類class的一個(gè)實(shí)例.類的最重要的特征就是能發(fā)什么樣的消息給對(duì)象.!
對(duì)象可以包含對(duì)象.封裝!
interface規(guī)定了可對(duì)一個(gè)特定對(duì)象發(fā)那些請(qǐng)求.
若只是簡(jiǎn)單地繼承一個(gè)類,并不做其他任何事情,來自基礎(chǔ)類接口的方法就會(huì)直接照搬到衍生類。這意味著衍生類的對(duì)象不僅有相同的類型,也有同樣的行為,這一后果通常是我們不愿見到的。
等價(jià)與類似.新類型擁有舊類型的接口,但也包含了其他函數(shù),所以不能說它們是完全等價(jià)的
我們將這種把衍生類型當(dāng)作它的基本類型處理的過程叫作“Upcasting”(上溯造型)。
將一條消息發(fā)給對(duì)象時(shí),如果并不知道對(duì)方的具體類型是什么,但采取的行動(dòng)同樣是正確的,這種情況就叫作“多形性”(Polymorphism)。
在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,由于C++的引入而顯得尤為突出的一個(gè)問題是:所有類最終是否都應(yīng)從單獨(dú)一個(gè)基礎(chǔ)類繼承。在Java中(與其他幾乎所有OOP語言一樣),對(duì)這個(gè)問題的答案都是肯定的,而且這個(gè)終級(jí)基礎(chǔ)類的名字很簡(jiǎn)單,就是一個(gè)“Object”。
上溯造型成一種更“通用”的類型。而是下溯造型成一種更“特殊”的類型