[第155期] Java手機(jī)應(yīng)用開(kāi)發(fā)常見(jiàn)問(wèn)題解析
通過(guò)搜索引擎搜索Java手機(jī)開(kāi)發(fā),你會(huì)發(fā)現(xiàn)大部分都是招聘信息。這也說(shuō)明了目前國(guó)內(nèi)急需Java手機(jī)開(kāi)發(fā)人才!而Java開(kāi)發(fā)本身就讓人感覺(jué)有一定難度,也許你還在犯嘀咕:我適不適合搞Java開(kāi)發(fā)?搞Java手機(jī)開(kāi)發(fā)有前途嗎?Java手機(jī)開(kāi)發(fā)難嗎?我在Java開(kāi)發(fā)中遇到些問(wèn)題,是怎么回事呢?
技術(shù)門診是51CTO社區(qū)品牌欄目,每周邀請(qǐng)一位客座專家,為廣大技術(shù)網(wǎng)友解答疑問(wèn)。從熱門技術(shù)到前沿知識(shí),從技術(shù)答疑到職業(yè)規(guī)劃。每期一個(gè)主題,站在最新最熱的技術(shù)前沿為你引航
本期門診特邀請(qǐng)高級(jí)軟件工程師、項(xiàng)目經(jīng)理李寧與大家交流Java開(kāi)發(fā)的問(wèn)題。上面所提到的以及其他延伸的Java問(wèn)題,都可以和李寧進(jìn)行交流、討論。
姓名:李寧
擅長(zhǎng)領(lǐng)域:Java、Android/Ophone
高級(jí)軟件工程師、項(xiàng)目經(jīng)理、東北大學(xué)計(jì)算機(jī)專業(yè)碩士。十多年軟件開(kāi)發(fā)經(jīng)驗(yàn)。領(lǐng)導(dǎo)并參與開(kāi)發(fā)中學(xué)教務(wù)管理系統(tǒng)、印刷物資公司管理系統(tǒng)、網(wǎng)上評(píng)卷系統(tǒng)等十幾個(gè)大中型項(xiàng)目。個(gè)人作品:多功能日歷(Android版)、新浪微博客戶端(Android)。國(guó)內(nèi)知名媒體專欄文章100余篇。著有《Java Web開(kāi)發(fā)技術(shù)大全》、《Java Web開(kāi)發(fā)速學(xué)寶典》。新書《Android/OPhone開(kāi)發(fā)完全講義》和《開(kāi)心無(wú)敵:基于Web和Android的SNS開(kāi)發(fā)》(書名暫定)將在近期出版。
參與最新技術(shù)門診:http://doctor.51cto.com/
精選本期網(wǎng)友提問(wèn)與專家解答,以供網(wǎng)友學(xué)習(xí)參考。
李寧 如果在windows下,可以通過(guò)右鍵我的電腦的系統(tǒng)屬性設(shè)置JAVA_HOME以及其他的環(huán)境變量,在Linux的設(shè)置的地方很多,如在/etc/profile文件中設(shè)置
Q:請(qǐng)問(wèn)專家:如何設(shè)置Java 2(JDK1.2)的環(huán)境變量?
Q:再問(wèn)一個(gè):哪些Java集成開(kāi)發(fā)工具支持Java 2? 希望專家解答,謝謝!
李寧 你是說(shuō)JDK1.2嗎?這個(gè)版本比較老,不過(guò)目前象eclipse、netbeans等開(kāi)發(fā)工具都可以用老版本的jdk,還有比較簡(jiǎn)單的jcreator也是一樣。
Q:專家您好!請(qǐng)問(wèn),在Java applet中如何實(shí)現(xiàn)一個(gè)模式對(duì)話框? 謝謝!
李寧 Dialog d = new Dialog( getParentWindow(comp),title);
Q:專家您好!請(qǐng)問(wèn)要從事j2me的手機(jī)游戲開(kāi)發(fā)應(yīng)該看那些書?我學(xué)過(guò)一些java,現(xiàn)在要搞手機(jī)游戲,那些書比較好?謝謝!
李寧 搞游戲首先應(yīng)了解一下游戲的原理。至于看哪些書,這個(gè)不太好回答,因?yàn)檫@些因人而異。不過(guò)可以找一些簡(jiǎn)單的j2me游戲的例子,直接看一下代碼,代碼是最好的指導(dǎo)老師。
Q:Android 中如何引用核心的資源?謝謝專家!
李寧 不知核心資源主要指的是什么,是系統(tǒng)內(nèi)核的資源(圖像、主題嗎)?
Q:import java.io.File;
李寧 File只能打開(kāi)本地文件,如果是遠(yuǎn)程的文件(如http、ftp等),需要使用與HTTP、FTP等相關(guān)類庫(kù)先從網(wǎng)絡(luò)上下載(可以是內(nèi)存流形式),然后再使用read來(lái)讀取。
李寧 漏洞經(jīng)常會(huì)有的,尤其是現(xiàn)在軟件做得越來(lái)越復(fù)雜,雖然這次漏洞可能會(huì)使window用戶造成一定的危害,但對(duì)大多數(shù)人并沒(méi)有什么問(wèn)題。以后還會(huì)出現(xiàn)很多這樣的漏洞的。我們要做的是只能盡量使用防火墻和防毒軟件了。
Q:專家您好!我是Java學(xué)習(xí)的新手,問(wèn)一個(gè)小問(wèn)題:方法名是否可以與構(gòu)造器的名字相同?
李寧 可以的,甚至參數(shù)也可以一樣。因?yàn)闃?gòu)造方法沒(méi)有返回值,所以編譯器可以區(qū)分哪個(gè)是普通方法,哪個(gè)是構(gòu)造方法。
Q:請(qǐng)問(wèn)李老師,Java手機(jī)程序員主要是從事手機(jī)游戲的開(kāi)發(fā)嗎?
李寧 手機(jī)程序一般包括手機(jī)應(yīng)用(包括web游戲)和手機(jī)游戲。
Q:李老師,您好:近幾個(gè)月,JAVA在編程語(yǔ)言的排行榜不斷下滑,不再是往日的第一,再加上風(fēng)傳甲骨文決定不再實(shí)行JAVA開(kāi)源,是不是標(biāo)志著JAVA已經(jīng)到了盛極而衰的時(shí)刻。
李寧 記得十多年前計(jì)算機(jī)行業(yè)還不發(fā)達(dá),計(jì)算機(jī)專業(yè)并不象現(xiàn)在這么熱。那時(shí)的熱門專業(yè)是機(jī)械、電子等傳統(tǒng)專業(yè),然而,誰(shuí)能想到進(jìn)入21世紀(jì)以來(lái)計(jì)算機(jī)和互聯(lián)網(wǎng)領(lǐng)域會(huì)發(fā)展如此之快呢?相反象機(jī)械等傳統(tǒng)專業(yè)已遠(yuǎn)不如計(jì)算機(jī)熱了。 技術(shù)也是一樣,沒(méi)人知道未來(lái)會(huì)是什么樣子,就算現(xiàn)在選一種非常熱門的技術(shù),誰(shuí)又能保證在自己學(xué)到一定程度時(shí)仍然會(huì)很熱門呢!因此,學(xué)什么并不重要,重要的是能在最段的時(shí)間內(nèi)掌握。現(xiàn)在的IT技術(shù)更新如此之快,單純靠會(huì)Java、C#、C++這些語(yǔ)言已經(jīng)很難找到好的工作了,關(guān)鍵是要掌握快速學(xué)習(xí)技術(shù)的方法。
另外一點(diǎn)就是Sun雖然被Oracle收購(gòu),但目前Java已經(jīng)開(kāi)源,而且支持Java的不只Oracle一家,IBM和Google是Oracle的兩個(gè)強(qiáng)大的競(jìng)爭(zhēng)對(duì)手。IBM和Google的很多產(chǎn)品都使用Java開(kāi)發(fā),他們不會(huì)允許Oracle自己獨(dú)霸Java。再有就是Java實(shí)際上是一種規(guī)范,就象C++一樣,只是一種標(biāo)準(zhǔn),誰(shuí)根據(jù)這種語(yǔ)言都可以設(shè)計(jì)出Java編譯器和解析器的。象Google不是在android中自己設(shè)計(jì)了一個(gè)新的Java虛擬機(jī)嗎!所以Java至少在可預(yù)見(jiàn)的未來(lái)仍然會(huì)成為開(kāi)發(fā)語(yǔ)言的生力軍。當(dāng)然,除了Java,再多會(huì)一些其他的語(yǔ)言和技術(shù)也會(huì)使自己如虎添翼。
Q:李老師你好:我正在考慮是否去學(xué)習(xí)JAVA,Java現(xiàn)在雖然很強(qiáng)勢(shì),但您預(yù)計(jì)一下Java在未來(lái)的市場(chǎng)中會(huì)強(qiáng)盛持續(xù)多久!
李寧 很多初學(xué)者都會(huì)提出這樣的問(wèn)題。實(shí)際上,任何人預(yù)測(cè)的未來(lái)都是不可信的,未來(lái)只有時(shí)間他老人家才能準(zhǔn)確無(wú)誤地回答我們。雖然未來(lái)無(wú)法精確預(yù)測(cè),但可以肯定地說(shuō),現(xiàn)在任何一種語(yǔ)言都不具有絕對(duì)的優(yōu)勢(shì)來(lái)取代其他的語(yǔ)言。Java已經(jīng)有15年的歷史了,與Java相關(guān)的產(chǎn)品成千上萬(wàn)。Java的開(kāi)發(fā)人員也相對(duì)較多。而且現(xiàn)在還沒(méi)有出現(xiàn)能完全取代Java的技術(shù),或者說(shuō)在短期內(nèi)不可能出現(xiàn)這樣的技術(shù),因此,Java至少還會(huì)存在很長(zhǎng)的時(shí)間,也就是說(shuō),必須為新的技術(shù)留出足夠長(zhǎng)的孕育期才不會(huì)出現(xiàn)斷檔。
Q:Java的前景怎么樣!我們學(xué)校最近有個(gè)CSTP的軟件培訓(xùn)工程,來(lái)我校講坐,在他的講述下,感覺(jué)前景很好!
李寧 Java至少在可預(yù)見(jiàn)的未來(lái)仍然會(huì)屬于最熱門的語(yǔ)言之一。但并不是Java流行或熱門,學(xué)它就萬(wàn)事大吉,關(guān)鍵并不在于語(yǔ)言本身,而在于誰(shuí)在使用它。在于學(xué)得怎樣。只有Java能力(并不是指會(huì)一大堆a(bǔ)pi,這毫無(wú)意義,而在于分析問(wèn)題解決問(wèn)題的能力)達(dá)到了一定的高度,才能獲得足夠的精神和物質(zhì)享受。
Q:請(qǐng)問(wèn)專家:如果在Netscape或IE瀏覽器中運(yùn)行Java applet時(shí)出現(xiàn)了錯(cuò)誤,如何確定錯(cuò)誤范圍?
李寧 運(yùn)行applet錯(cuò)誤的情況可能有三個(gè):1、applet的路徑不對(duì),仔細(xì)檢查代碼中的路徑。2、jre安的不對(duì),客戶端未完裝正確的jre。3,瀏覽器關(guān)閉了外部插件,重新打開(kāi)即可。 當(dāng)然,還可能是程序本身的錯(cuò)誤。需要一個(gè)個(gè)來(lái)排除。
Q:請(qǐng)教專家:如何設(shè)置Java WebServer的CLASSPATH,以包含用戶的class文件?
李寧 一般的web server都有一個(gè)lib或類似的目錄,把jar或class文件放到該目錄就可以了。或設(shè)置操作系統(tǒng)的classpath也可以。當(dāng)然,也可以在啟動(dòng)webserver的腳本文件中添加設(shè)置classpath的代碼。
Q:請(qǐng)問(wèn)專家:我在eclipse想運(yùn)行helloworld.java程序,把所需的jar包都已經(jīng)加入到工程中了,我在運(yùn)行helloworld.opt時(shí)編譯錯(cuò)誤,helloworld.opt文件如下:
李寧 我沒(méi)用過(guò) Java Card SDK 2.2.1,但你可以參考如下的這篇文章http://forums.sun.com/thread.jspa?threadID=5432495
Q:初入編程,了解甚少,java是開(kāi)發(fā)軟件吧,javascript是web開(kāi)發(fā),他們有關(guān)系嗎,學(xué)java的話是不是一定要吧JavaScript也學(xué)好,本人喜歡軟件開(kāi)發(fā),不喜歡web的開(kāi)發(fā),現(xiàn)在都懶的去學(xué)web,不知道有沒(méi)聯(lián)系,如果學(xué)習(xí)java的話還要學(xué)習(xí)其他方面的什么知識(shí)?謝謝了!
李寧 java可以做移動(dòng)、企業(yè)和桌面應(yīng)用。學(xué)移動(dòng)要學(xué)java me、學(xué)企業(yè)要學(xué)java ee,也有部分涉及到web的,學(xué)桌面主要學(xué)java se。
Q:JAVA中用STRUTS框架能把所有的動(dòng)作寫在一個(gè)ACTION里嗎,求專家指點(diǎn)迷津!
李寧 從技術(shù)上沒(méi)問(wèn)題,但最好不要這樣做。應(yīng)為成不同的Action,這樣使程序更容易維護(hù)。
Q:專家您好,對(duì)于初學(xué)者推薦看那幾本書?謝謝
Q:請(qǐng)問(wèn)編寫java有一套比較實(shí)用的思維模式嗎?
李寧 思維模式模式都是私有的,只有適合自己的才是最好的。
Q:dephi 轉(zhuǎn)java 怎么樣?
李寧 這個(gè)不太好回答。為什么要轉(zhuǎn)呢?可以將java作為第二語(yǔ)言,沒(méi)有必要放棄delphi.
Q:李老師我想問(wèn)問(wèn)Java的發(fā)展趨勢(shì)是什么?為什么好多人研究Java而不能得到高薪的工作,這點(diǎn)很讓人郁悶。
李寧 Java和高薪并不畫等號(hào)。這就象都是做生意的,可不一定都能開(kāi)上寶馬,有很多開(kāi)公司的還不如上班掙的多,而且還很累。想高薪,就要看看自己能為自己所服務(wù)的企業(yè)帶來(lái)什么。如果自己是這個(gè)企業(yè)的老板,那么會(huì)給與自己同樣水平的人多少薪水呢? 光研究Java是沒(méi)有什么實(shí)際的價(jià)值的,要看可以用java做出什么,所做出的東西有多少人用。幾年前張小龍用delphi做的foxmail賣了2000萬(wàn),就是因?yàn)閒oxmail有數(shù)百萬(wàn)的用戶。如果我們做的軟件擁有龐大的用戶群,無(wú)論是為企業(yè)做的,還是為自己做的,都會(huì)得到另自己滿意的回報(bào)。
查看更多精彩門診:http://doctor.51cto.com/