第壹,成為管理者,比如產品研發經理、技術經理、項目經理等。
二是繼續他的技術工作,成為高級軟件工程師和需求工程師。Java語言是面向對象的。Java語言提供了類、接口和繼承等原語。為了簡單起見,只支持類之間的單壹繼承,支持接口之間的多重繼承,支持類和接口之間的實現機制(關鍵字是implements)。Java語言完全支持動態綁定,而C++語言只對虛函數使用動態綁定。總之,Java語言是壹種純面向對象的編程語言。
Java語言是分布式的。Java語言支持互聯網應用程序的開發。在基本的Java應用編程接口中,有壹個網絡應用編程接口(java net),提供了網絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
Java語言是健壯的。Java的強類型機制、異常處理和垃圾自動收集是Java程序健壯性的重要保證。丟棄指針對Java來說是明智的選擇。Java的安全檢查機制使得Java更加健壯。
Java語言是安全的。Java通常用於網絡環境。為此,Java提供了壹種安全機制來防止惡意代碼攻擊。除了Java語言的很多安全特性之外,Java對通過網絡下載的類有壹個安全防護機制(ClassLoader),比如分配不同的命名空間防止用相同的名字替換本地類,檢查字節碼,為Java應用提供壹個安全管理機制(Class SecurityManager)來設置安全防護。
Java語言是架構中立的。Java程序(帶有Java後綴的文件)在Java平臺上被編譯成與架構無關的字節碼格式(帶有class後綴的文件),然後可以在任何實現這個Java平臺的系統上運行。這種方法適用於異構網絡環境和軟件分發。
Java語言是可移植的。這種可移植性來自於架構的中立性。此外,Java還嚴格規定了每個基本數據類型的長度。Java系統本身具有很強的可移植性,Java編譯器用Java實現,Java的運行環境用ANSI C實現。
Java語言是編譯和解釋的。如上所述,Java程序在Java平臺上被編譯成字節碼格式,然後可以在任何實現這個Java平臺的系統上運行。在運行時,Java平臺中的Java解釋器解釋並執行這些字節碼,執行過程中需要的類在join階段加載到運行時環境中。
Java是高性能的。與那些解釋型高級腳本語言相比,Java確實是高性能的。事實上,隨著JIT(Just-In-Time)編譯器技術的發展,Java的運行速度已經可以和優化後的本地代碼相媲美。
Java語言是多線程的。在Java語言中,線程是壹個特殊的對象,它必須由Thread類或其子類創建。創建線程通常有兩種方式:壹種是通過使用Thread(Runnable)類型的構造函數將帶有Runnable接口的對象包裝成線程;另壹種是從thread類派生壹個子類,重寫run方法,用這個子類創建的對象就是壹個線程。值得註意的是,Thread類實現了Runnable接口,所以任何線程都有它的run方法,run方法包含了線程想要運行的代碼。線程的活動由壹組方法控制。Java語言支持多線程的同時執行,並提供了多線程之間的同步機制(關鍵字是synchronized)。
Java語言是動態的。Java語言的設計目標之壹是適應動態環境。Java程序需要的類可以動態加載到運行環境中,也可以通過網絡加載。這也有利於軟件升級。此外,Java中的類有壹個運行時表示,可以檢查運行時的類型。Java語言的優秀特性使得Java應用程序極其健壯可靠,這也降低了應用系統的維護成本。Java對對象技術的全面支持和Java平臺中的嵌入式API可以縮短應用系統的開發時間,降低成本。Java可以編譯壹次,然後在任何地方運行,這使它能夠提供壹個可以在任何地方使用的開放結構,以及在多個平臺之間傳輸信息的低成本方式。特別是Java企業API為企業計算和電子商務應用系統提供了相關技術和豐富的類庫。
Java和C/C++的區別熟悉C語言和C++語言的讀者壹定想明白這個問題。事實上,Java確實繼承了C語言和C++語言的很多成分,甚至可以看作是類C語言發展和衍生的產物。比如Java語言的變量聲明、運算符形式、參數傳遞、流程控制,都和C語言、C++語言壹模壹樣。盡管如此,Java與C語言和C++語言還是有許多不同之處,主要表現在以下幾個方面:
(1) Java中的內存分配是動態的。它采用面向對象的機制,並使用運算符new為每個對象分配內存空間。而且實際內存會隨著程序的運行而變化。程序運行過程中,Java系統會自動掃描內存,將長時間不用的空間作為“垃圾”收集起來,使系統資源得到更充分的利用。根據這種機制,程序員不必關註內存管理問題,使得Java程序的編寫變得簡單明了,避免了內存管理中的錯誤導致的系統問題。在C語言中,內存由malloc()和free()庫函數分配和釋放,而在C++語言中,內存由運算符new和delete分配和釋放。在C和C++的機制中,程序員必須非常小心地處理內存的使用。壹方面,如果釋放的內存再次釋放或者釋放未分配的內存,會造成崩潰;另壹方面,如果長期不用或者不再使用的內存不釋放,會浪費系統資源,甚至造成資源枯竭。
(2) Java不在所有類之外定義全局變量,而是在壹個類中定義壹個公共靜態變量來完成全局變量的功能。(3) Java不使用goto語句,而是使用try-catch-finally異常處理語句代替goto語句來處理錯誤。(4) Java不支持頭文件,但C和C++語言都使用頭文件定義類原型、全局變量、庫函數等。這種頭文件結構使得系統的操作和維護相當復雜。
(5) Java不支持宏定義,而是使用關鍵字final來定義常量,C++中使用宏定義來定義常量,不利於程序的可讀性。
(6) Java給每個數據類型分配壹個固定的長度。比如在Java中,int的類型總是32位,但是在C和C++中,同樣的數據類型對於不同的平臺分配了不同的字節,這也是int的類型,在PC中是兩個字節,也就是16位,而在VAX-11中是32位。這使得C語言不可移植。
(7)不同類型的轉換。在C和C++中,可以通過指針進行任意類型轉換,這往往會導致不安全。在Java中,運行時系統應該檢查對象的類型兼容性,以防止不安全的轉換。
(8)結構和接頭處理。在C和C++中,結構和聯合的所有成員都是公共的,這帶來了安全問題。但是,在Java中,根本不包含結構和聯合,所有內容都封裝在類中。
(9) Java不再使用指針。指針是C和C++中最靈活也最容易出錯的數據類型。指針對內存地址的操作往往會導致不可預知的錯誤,同時,指針對壹個內存地址進行顯式類型轉換後,可以訪問C++中的壹個私有成員,從而破壞安全性。但是Java對指針有完全的控制權,程序員不能直接進行任何指針操作。
(10)避免平臺依賴。用Java語言編寫的類庫可以在其他平臺的Java應用中使用,不像C++語言必須依賴Windows平臺。
(11) Java在B/S開發上遠遠優於C++。自從sun被甲骨文收購後,Java的發展前景變得撲朔迷離,很多程序開發者都很困惑。2010年4月9日,被稱為Java之父的JamesGosling在個人博客上宣布從甲骨文離職,這給Java的前景蒙上了壹層迷霧。但進入5月後,壹切開始變得明朗。首先,在Java的後續支持上,Oracle宣布了壹系列關於Java的相關計劃。隨後Java之父JamesGosling在宣稱Java不會消亡後,大贊甲骨文對Java的貢獻。在Oracle的活動發布網站上,已經連續發布了多項關於Java的推廣活動。
版本介紹
2010 5月12日,甲骨文主要產品經理DaveHofert將講述JavaSE商業應用的改進與創新。根據宣傳資料,在這次演講中,DaveHofert將會提到以下幾個問題:
商業版和社區版平臺支持的差異。
如何獲得專家幫助,幫助企業增強Java應用?
對於老版本的安全補丁問題。
可用的發布工具和更新。
6月10、2018、19、20、27日,Oracle和Sun專家將分別在赫爾辛基、斯圖加特、布達佩斯和倫敦與用戶見面,並在會上與用戶共同探討Java的發展路線。討論的主要問題包括Oracle將如何繼續投資和改進Java技術,還將告知用戶JavaSE、JavaME專家團隊、JavaFX和JDK7的最新消息,以及OracleBerkeley DB的相關信息。
2010年5月3日,離開Oracle近壹個月的Java之父JamesGosling在博客上表達了對NetBeans 6.9和FX1.3發布的關註。這兩個項目最新版本的發布,可以證明甲骨文已經開始兌現當初的承諾。在他早期的博客中,JamesGosling也透露他不會放棄自己的Java事業,只是需要和甲骨文解決壹些法律問題。
這些跡象都表明,甲骨文絕不會輕易放棄Java這塊巨大的蛋糕,甲骨文也逐漸學會了尊重開源社區。首先,在商業版JDK方面,Oracle將繼續深挖Java的商業利益,並進壹步與其固有產品相結合。在社區版本方面,Oracle將與Java開發人員討論和開發Java技術。這裏需要特別提到的壹個產品是OracleBerkeleyDB,它是壹個由Oracle支持的開源非關系數據庫產品。在NOSQL大行其道的今天,如果Oracle能夠將BerkeleyDB與Java深度融合,將會給Java帶來更多的生機和活力。從JamesGosling的表現來看,似乎已經和甲骨文達成了某種諒解,存在進壹步合作的可能。
Java開發
在日新月異的IT技術領域,Java已經不年輕了。十年來,Java借助開放、跨平臺的特性和互聯網的蓬勃發展,改變了C/C++壹統天下的局面,形成了Java、C、C++三足鼎立的格局。特別是Java稱霸編程語言排行榜10年,幫助Sun奠定了在IT技術和開源領域的地位,這些都說明了Java在開發領域的重要性。
在未來的發展方向上,Java在Web、移動設備、雲計算方面有著非常廣闊的前景。盡管面臨著來自網絡的Ruby on Rails等編程平臺的挑戰,Java仍然是事實上的企業Web開發標準。就Java對新開發者的吸引力而言,這麽多年來,Java壹直面臨著基於腳本的編程語言不成熟的挑戰。比如PHP和Ruby,盡管努力了很多年,也沒有看到它們比Java更有競爭力。另壹方面,隨著雲計算和移動領域的擴展,越來越多的企業開始考慮將自己的應用部署在Java平臺上。無論是本地主機,公有雲,還是Java,都是目前最合適的選擇。
事實上,Java技術的開放性、安全性和巨大的社會資源,以及其跨平臺的特性,即“壹次編寫,隨處運行”,也使得Java技術成為智能手機軟件平臺事實上的標準。采用Java技術後,編寫應用程序和提供服務的人不必關心接收他們服務的手機用的是什麽操作系統和芯片,只要按照Java的要求編寫程序即可;同樣,手機的制造商也不用擔心將來誰來提供增值服務。同時,在甲骨文技術投入的保障下,Java也將是企業在雲應用上避開微軟平臺,在移動應用上避開蘋果的最佳選擇。例如,VMware宣布了壹項名為VMforce的服務,該服務將在雲計算機中部署Java應用程序,谷歌應用程序引擎將繼續支持Java。都是微軟基於提供的Azure雲平臺的競爭對手。Net和開源PHP語言。另外,進入傳統桌面應用仍然是Java未來努力的方向之壹。
JAVA作為商業應用的主流語言,在3G和物聯網時代煥發了新的活力!
在互聯網時代,JAVA語言壹直是使用最廣泛的服務器端語言。隨著3G和互聯網時代的到來,JAVA語言不會“過時”。相反,JAVA語言在新的業務領域會有更加輝煌的發展前景。
3G和互聯網的發展不僅帶動了智能手機制造、電信運營、RFID產業、嵌入式設備等硬件或系統軟件產業的發展。更重要的是,3G和互聯網在商業領域創造了更多更新的應用,而這些領域的核心編程語言依然是JAVA!
在TTS4.0課程體系中,基於智能手機平臺的“航空公司移動服務門戶”項目和基於全球定位、訂單實時跟蹤、RFID倉儲管理等諸多互聯網新技術的“新壹代物流管理系統”項目就是這些新業務應用領域的典型代表。
未來趨勢
對於Java來說,2010是不平凡的壹年。自從年初Oracle完成對Sun的收購後,大家對Java的未來充滿了擔憂。5438+02年6月在北京召開的JavaOne大會可以說是甲骨文收購Sun後的第壹次正式大會,大家可以從JavaOne上了解到更多Java未來的發展。2011這壹年將是Java的新開始。
Java已經走過了它的15年,在日新月異的it技術領域,它已經不年輕了,但它從未停止過變革和創新的步伐。Java不僅僅是壹種計算機語言。很多時候,我們稱之為平臺,社區。下面從Java SE、Java EE、Java ME、JavaFX等方面對2011的Java技術發展進行展望。
Java SE
從甲骨文公布的Java未來戰略可以看出,甲骨文的目標是加強並繼續拓展Java在新領域的應用,並將Java平臺納入新的部署架構,加大對Java社區的投入,讓社區更多地參與進來。開發者比較關註的Java SE 7將在2011的夏天準備好。其中,JCP已經批準了JSR 334、JSR 335、JSR 336和JSR 337,支持Java語言和API規範的改進,如string中的switch、multi-catch、泛型實例創建中的精確重擲、Lambda表達式(閉包)等。而Java SE 8將在SE 7發布後的壹至壹年半內準備就緒。
模塊化虛擬機(Modular VM ):虛擬機可以分成小塊供應用程序使用,並根據需要推送到互聯網上。因此,當VM不在目標機器上時,Java應用程序的啟動時間更短,下載時間更短。
額外的語言支持:Java平臺支持用不同語言編寫的應用程序,未來將增加更多的語言支持,包括對動態語言的支持。這就是所謂的達芬奇機或者多語言虛擬機。請參考JSR-292。
增強的多核支持:新的和現有的Java應用需要工具、庫和內置設施來更有效地利用多核硬件的優勢。Java的線程模型可以很容易地創建並行執行任務的線程,但是如何將單個任務拆分成多個片段進行並行執行呢?
其他改進包括持續的性能改進,以及許多語言增強,包括添加閉包、支持switch語句中的字符串和多塊異常捕獲。閉包是壹個有爭議的函數,它是通過使用匿名Java內部類實現的。
Java EE
Oracle長期以來壹直是Java的支持者,也是最大的JCP成員之壹。早在10多年前就開始參與Java EE規範的編寫,所以Oracle成為Java中間件市場的大鱷應該不足為奇。
Java EE展望
模塊化,開發標準:Java EE 6通過Profile的定義實現了模塊化的Java EE,允許廠商根據具體需求創建更小的Java EE棧子集,解決了成本和Java EE使用的復雜問題。通過模塊化設計和定義標準,有助於簡化Java EE,使其得到更廣泛的應用。
Java EE 6指定了兩種配置文件:Web配置文件(Servlet、JSP和JSF)和Java EE企業配置文件。顯然,可以定義更多類型的配置文件,例如,定義電信服務器配置文件以支持會話發起協議(SIP)。
UI和RIA:HTML仍然是Java EE應用的隱式UI協議,通常由Java Servlet、JSP和JSF生成。考慮到制作出來的網頁是靜態的,可以使用Ajax技術,但這超出了Java EE的範圍。
雖然Oracle在這方面還沒有具體的計劃,但是將來Java EE和JavaFX集成的時候,Ajax的問題就解決了。
Java我
Java作為Oracle首選的移動環境,未來這個棧的默認呈現方式將是HTML、CSS和Javascript。Java ME將包括WebKit引擎、JavaScript。引擎和Java/JavaScript。大橋。換句話說,未來運行新版Java ME的手機將可以訪問瀏覽器之外的Web服務,而不會出現任何性能問題。這些引擎將直接插入Java ME虛擬機和Java FX。
甲骨文的Java ME引擎將利用當代圖形硬件加速器擅長的(60幀/秒)2D和3D渲染(在Windows環境下,微軟的Direct X、OpenGL或未來“更好”的技術)。Java ME將針對ARM7和ARM9芯片組進行優化,包括Broadcom、Samsung、NEC、德州儀器以及其他授權的手機組件制造商,還將內置API,充分利用手機設備的支付、呼叫和定位功能。
JavaFX
隨著JavaFX和Java的集成並運行在JVM上,其富媒體處理和二維、三維渲染功能也將可供運行在JVM上的任何其他編程語言使用,這意味著Groovy、Scala和JRuby也可以用於集成JavaFX的功能。
JavaFX outlook:
創建基於可視組件的設計範例
為JavaFX應用程序創建豐富的UI擴展庫。
提高JavaFX在所有平臺上的性能。
增強跨設備移植JavaFX應用程序的能力。
與Java、JavaScript和HTML 5無縫集成。
支持新興設備和UI範例(例如多點觸控)