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