很多人干IT這一行都沖著「收入高」這一點的,因為只要學會一點HTML、DIV+CSS,要做一個頁面開發人員並不是一件難事,而且做一個頁面開發人員更容易找到工作,收入比普通的工作還要高一些,所以成為了很多高校畢業生的選擇。如果您只是抱著這樣一個心態來入行的話,那閣下可真的要小心。因為干IT這一行競爭本來就比較激烈,特別是頁面設計這方面,能夠開發的人很多,所以為了節省成本在大部分公司都會在需要的時候才招聘這類人員,在沒有訂單的時候一些小公司還可能找各類的借口或者以降薪的手段去開除這類員工。而在招聘信息上常常會看到「招聘頁面設計師,條件:30歲以下……歡迎應界畢業生前來應聘」這樣一條,因為這一類工員對技術上的要求並不高,找應界生可以節約成本。所以在下覺得「IT行業是吃青春飯的」這句話只是對著以上這類人所說的,如果閣下缺乏「進取之心」,而只抱著「收入高,容易找工作」這樣的態度而入行,那「IT行業是吃青春飯」將會應驗了。
㈡ Java學習路線是怎樣的
Java環境搭建、Java流程式控制制語句-for循環、switch選擇判斷、循環嵌套、數組拷貝、多維數組、final關鍵字、構造函數的調用、類的訪問許可權和路徑、面向對象高級特性、Java異常處理、Set,Map,List介面及介面實現類、Java線程、同步阻塞、JavaIO流、文件的操作,復制,讀寫,刪除等。
MySQL安裝、管理、創建資料庫、MySQLUPDATE
查詢、Mysql高級操作、JDBC、JDBC資料庫連接操作,JDBC動態Sql處理、Servlet3.0 網頁重定向、Servlet3.0
新增的註解支持、AJAX、responseText屬性詳解等。
Struts2異常處理、Struts2+Log4j集成、Struts2和JSON實例、Hibernate5、Hibernate集合映射、Hibernate組件映射、Spring4.0、SpringAOP+
AspectJ框架、Spring 與其它Web框架集成、Spring Hibernate支持等。
SpringMVC、Spring MVC生成JSON數據、MyBatis、MyBatis 環境配置及入門、Mybatis set標簽、Mybatis trim標簽、Shiro、Shiro快速入門教程、Shiro Web應用等。
SpringBoot、全局異常處理、過濾器監聽器、EHCache緩存、SpringBoot Quartz定時任務、Vue、Vue.js 安裝、模板語法、計算屬性、事件處理器、Vue.js 自定義指令、Vue.js 路由等
ActiveM環境搭建、生產者和消費者、消息持久化操作、RSA數字加密演算法、Codebar條形碼生成器、zxing二維碼生成器、HighCharts統計圖、Echarts統計圖、網路播放器ckplayer、嵌入式網路播放器,可以瀏覽器和移動端隨意使用
分布式服務框架的理解,Dubbo架構設計詳解及其核心要點,框架運行原理分析、SpringData數據訪問、Lucene搜索引擎、Lucene的全文搜索伺服器介紹、索引建立方式、Solr海量數據搜索引擎、Socket網路通信、實現RMI遠程對象通訊、使用JMS消息服務、Kafka分布式消息系統、WebService與RestfulWS等
Spring Security安全框架、實現Web應用安全控制、緩存應用與EhCache框架、OSCache與JBossCache框架、MyBatis與Hibernate緩存機制、NoSQL應用與SQL調優、MongoDB
NoSQL資料庫、Redis內存資料庫、實現RedisSession共享、SQL語句的優化、實現資料庫讀寫分離、WEB應用集群及性能優化、Maven項目管理工具、Web伺服器負載均衡、實現Nginx與Tomcat集群、使用LoadRunner測試工具、性能優化之內存調優、代碼優化與重構的方法等。
㈢ Java 程序員的發展路線一般有哪些有什麼建議
幫助困惑的年輕員工分析未來出路是我的工作的一部分。雖然自己也不乏困惑之處,但至少可以拿出培訓過的知識來簡單做下介紹。當然詳細情況會因為公司的不同而有所不同,職位的名稱也會有些差異。重在領會精神。 首先,作為程序員,如果想在技術道路上多走一走,只懂一門語言是遠遠不夠的。所以,這里我就不局限於Java程序員,而是用泛指的程序員來進行說明。 程序員,首先最容易而且常常是自然過渡的下一個階段就是——軟體設計師,負責進行軟體的詳細設計以及概要設計。 在從事設計師工作的時候,多多少少都會接觸到一些需求分析的工作以及技術實現方案可行性的判斷工作。這里就會出現一個發展的岔路: 如果今後希望多從事需求分析相關工作,那麼下一步會做IT顧問(在某些地方可能是產品經理),負責與客戶進行磋商並挖掘客戶的需求甚至是潛在需求。 做IT顧問的時候,常常會配合產品銷售人員進行工作。如果對產品銷售有興趣,完全可以漸漸轉型為銷售人員。大多數企業的大部分利潤都會分配到銷售部門,那裡是賺錢最多的地方,但也是賺錢最難的地方。產品銷售人員的待遇常常與績效掛鉤,所以即便從事同樣的工作,差距會很大。相對來說,後方的IT人員之間的差異會小些,收入會少些,承擔的風險也小些。 銷售人員的工作如果能做到明星級,有時就可能直接被高層看重,一步登天進入公司的決策層甚至成為公司的核心人物。進而在後期成為CxO(x ∈ [I, E, F, T, ...])級別的人物執掌公司的生殺大權。再發展下去……跟喬布斯那樣,可以得個癌症死一下。永遠成為一個傳奇。 現在回到設計師遇到的分支的另一條線——技術實現的可行性判斷。如果對這一脈感興趣,基本是希望走技術路線,那麼仍然有兩個分支—— 一個是技術專家路線:對某一方面的技術極其熟識,只要進入這個領域,無所不知無所不曉(一定程度上)。比如Java領域,上到Java EE框架的各種應用方法,下到內存分配的詳細機理,都了如指掌。也就是說,當架構師說,這次的軟體要基於Java實現的時候,剩下的一切問題你都可以去擺平。 技術專家做到高處不勝寒的程度,就可以成為一個計算機科學家了。如果是在例如IBM、微軟、Google等這樣具有自己研究部門的公司,下一步就是進入公司的研究部門,成為計算機科學家,去做一些人類文明史上尚無先例的工作,開創一個時代。順便得一兩個諾貝爾獎什麼的,把獎牌扔家裡給孩子當玩具。再發展下去……百年之後,跟那個被蘋果砸了腦袋的大鼻子以及那個頭發亂蓬蓬的老頭一樣,教科書上出現你的名字,各個學校的牆上掛出你的照片。 剛才說技術路線有兩個分支,另一個則是架構師。真正的架構師並不是如很多人想像的那樣是技術大牛。相反,可能反而是某個行業的業務大牛。因為架構師是將物理世界轉化為數字世界魔術師。其實架構師內部也分不同級別和不同傾向性,總體來說架構師都是要在項目的技術方面做決策的。來決定哪種技術、硬體、框架等最適合客戶的需求和當時的實際情況。我一直覺得這些抉擇真的是挺難的。在程序員階段遇到的最常見的接近架構師工作的抉擇,常常就是實現一個演算法,到底是應該存儲一些緩沖內容來犧牲存儲空間賺速度還是犧牲速度性能來節省空間。 架構師做厲害了,有幾個選擇——一個是因為很了解業務,直接轉到相關業務的公司,做那邊的CTO等職位。比如電信行業的架構師,直接跑到電信公司做技術方案的大總管。另一個就是仍舊留在IT行業,做資深顧問,然後回到最初的那個分支——做銷售、做領導、做CxO、得個癌症成為傳奇…… 另外,與上面各個分支平行的一條線。無論你做什麼事情,在公司里都會被組織成項目。這時候就需要項目管理人員。如果你對統括大局,承擔責任有興趣,可以走這條線。從程序員直接或者在上面分支中的任何階段轉為項目經理。一個項目好了,最風光的是項目經理;一個項目爛了,最倒霉的也是項目經理。項目經理就是把項目里的各個大牛安排妥當,讓整個項目成功。 項目經理做好了,就可能進入公司決策層,回到第一條線,做CxO、得個癌症成為傳奇…… 再另外,還有一條與上面都平行的線。有些公司會把工作績效好,並懂得關心他人的人提升為人事經理。從而走上關懷員工、面試招人的道路。(我現在是掉到這個坑裡的同時在兼顧架構師方向。)做好了,會進入公司決策層,做CxO、得個癌症成為傳奇…… 我現在能想到的就是這些。選擇還是不少的,前途還是光明的。只是要多小心癌症。 最後,祝你成功!
㈣ 從java初級程序員走到CTO的成長路徑是什麼樣的
從一個初級程序員晉升到CTO,首先你要吃透自己主要語言(java),同時在去熟悉其他比較主流的語言,當你技術達到一定等次了,就可以去挑戰試試了,但是過程中沒有任何捷徑可走。加油吧!
㈤ Java軟體工程師的發展路徑
Java軟體工程師的未來發展方向大致分為兩類:
一是成為管理人員,例如產品研發經理,技術經理,項目經理等;
二是繼續他的技術工作之路,成為高級軟體工程師、需求工程師等。 Java語言是一個面向對象的。Java語言提供類、介面和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。Java語言全面支持動態綁定,而C++ 語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象程序設計語言。
Java語言是分布式的。Java語言支持Internet應用的開發,在基本的Java應用編程介面中有一個網路應用編程介面(java net),它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。
Java語言是安全的。Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網路下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、位元組代碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。
Java語言是體系結構中立的。Java程序(後綴為java的文件)在Java平台上被編譯為體系結構中立的位元組碼格式(後綴為class的文件),然後可以在實現這個Java平台的任何系統中運行。這種途徑適合於異構的網路環境和軟體的分發。
Java語言是可移植的。這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSI C實現的。
Java語言是編譯解釋型的。如前所述,Java程序在Java平台上被編譯為位元組碼格式,然後可以在實現這個Java平台的任何系統中運行。在運行時,Java平台中的Java解釋器對這些位元組碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。
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企業應用編程介面(Java Enterprise APIs)為企業計算及電子商務應用系統提供了有關技術和豐富的類庫。
和C/C++的差異熟悉C語言和C++語言的讀者一定想搞清楚這個問題,實際上,Java確實是從C語言和C++語言繼承了許多成份,甚至可以將Java看成是類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語言造成不可移植性,而Java則具有跨平台性(平台無關性)。
(7) 類型轉換不同。在C和C++中,可通過指針進行任意的類型轉換,常常帶來不安全性,而在Java中,運行時系統對對象的處理要進行類型相容性檢查,以防止不安全的轉換。
(8) 結構和聯合的處理。在C和C++中,結構和聯合的所有成員均為公有,這就帶來了安全性問題,而在Java中根本就不包含結構和聯合,所有的內容都封裝在類裡面。
(9) Java不再使用指針。指針是C和C++中最靈活,也最容易產生錯誤的數據類型.由指針所進行的內存地址操作常會造成不可預知的錯誤,同時通過指針對某個內存地址進行顯式類型轉換後,可以訪問一個C++中的私有成員,從而破壞安全性。而Java對指針進行完全地控制,程序員不能直接進行任何指針操作。
(10)避免平台依賴。Java語言編寫的類庫可以在其它平台的Java應用程序中使用,而不像C++語言必須依賴於Windows平台。
(11)在B/S開發方面,Java要遠遠優於C++。 自從sun被甲骨文收購以後,Java的發展前景就變得撲朔迷離起來,很多程序開發者都感到很迷惑。2010年4月9日,被稱為Java之父的JamesGosling又在個人博客上宣布離開Oracle,這一事件更為Java的前景增加了一層迷霧。但是在進入5月份之後,一切開始變得明朗起來。首先是Oracle在Java的後續支持方面,宣布了一系列關於Java的相關計劃。然後是Java之父JamesGosling繼聲明Java不會死去之後又盛贊Oracle對Java所做的貢獻。在Oracle的活動發布網站上,連續發布了多個關於Java的推廣活動。
版本簡介
2010年5月12日,Oracle主要產品負責人DaveHofert將大談對JavaSE商業應用的改進和革新。根據宣傳資料,在這次演講中,DaveHofert將提到以下問題:
商業版與社區版本之間平台支持的差異。
如何獲得專家幫助,以幫助企業增強其Java應用。
對於舊版本的安全修補問題。
可使用的發布工具和更新。
2010年6月18、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發布的關心。這兩個項目最新版本的發布,可以證明Oracle已經開始兌現當初的承諾。JamesGosling在其早期的博客中,也透露了不會放棄Java事業,只是需要解決一些與Oracle之間的法律問題。
這一切跡象表明,Oracle絕對不會輕易放棄Java這塊巨大的蛋糕,並且Oracle也開始逐漸學會了對開源社區的尊重。首先在JDK的商業版本方面,Oracle將會繼續深入挖掘Java的商業利益,與其固有產品進行更深入的整合。在社區版本方面,Oracle將與Java開發者一起探討和研發Java的技術。這里需要特別提到的一個產品是OracleBerkeleyDB,該產品是Oracle一直支持的一個開源非關系資料庫產品,在NOSQL大行其道的今天,如果Oracle能夠將BerkeleyDB與Java進行深入整合,將會為Java帶來更多的活力和生命。從JamesGosling的表現來看,他似乎與Oracle之間已經達成某種諒解,並且有進一步合作的可能性。
java發展
Java在日新月異的IT技術領域內不算年輕,在過去的十幾年中,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的要求去寫程序就好了;同樣,生產手機的廠商也不必顧慮將來誰來提供增值服務。同時在Oracle的技術投資擔保下,Java也將是企業在雲應用方面迴避微軟平台、在移動應用方面迴避蘋果公司的一個最佳選擇。比如VMware就宣布了一個稱為VMforce的服務,該服務將在雲計算機中布置Java應用,Google應用引擎也將一如既往的支持Java。他們都是微軟提供的,基於.Net和開源PHP語言基礎上的Azure雲平台的競爭對手。此外,進軍傳統的桌面應用仍是Java未來一個努力的方向之一。
JAVA作為主流的商業應用的語言在3G、物聯網時代下煥發出新的生機!
在互聯網時代,JAVA語言已經是使用最廣泛的伺服器端語言。隨著3G、互聯網時代的到來,JAVA語言並不會「過時」,相反,JAVA語言會在新的業務領域有著更輝煌的發展前景。
3G、互聯網的發展不僅僅帶動了「智能手機製造業」、「電信運營業」、「RFID產業」、「嵌入式設備」等硬體或系統軟體行業的發展;更重要的是:3G、互聯網開創了更多、更新的商業領域應用,而這些領域的核心編程語言仍然是JAVA!
在TTS4.0 課程體系中的基於智能手機平台的「航空公司移動服務門戶」項目和基於全球定位、實時訂單跟蹤、RFID倉儲管理等諸多互聯網新技術的「新一代物流管理系統」都是這些新商業應用領域的典型代表。
未來趨勢
對Java來說,2010年是不平凡的一年,從Oracle在年初完成對Sun的收購,使大家對Java的未來充滿了關注,而12月份在北京進行的JavaOne大會,可以說是Oracle在收購Sun之後的第一次正式大會,大家可以從 JavaOne上更多了解了Java未來的發展。而2011年,將成為Java新的開始。
Java走過了它15年的歷程,在日新月異的IT技術領域不算年輕,但它一直沒有停下變革、創新的腳步。Java已經不單單是一種計算機語言,很多情況下,我們稱它是一個平台,一個社區。下面從Java SE、Java EE、Java ME、JavaFX幾個方面,展望Java技術在2011年的發展。
Java SE
從Oracle公布的Java未來戰略我們可以看到,Oracle目標是加強和繼續擴大Java在新領域的應用,並將Java平台納入新的部署架構,加大對 Java社區的投資,允許社區更多地參與。開發人員比較關注的Java SE 7將會在2011年夏天就緒,其中JCP已經批准了JSR 334、JSR 335、JSR 336和JSR 337等,支持改進Java語言和API規范,比如switch in string、multi-catch、泛型實例創建中的precise rethrow、Lambda表達式(閉包)等。而Java SE 8也將在SE 7發布之後的一年到一年半的時間就緒。
模塊化的VM:可以將VM拆分成小塊由應用程序使用,並按需推向Internet,這樣的結果是Java應用程序的啟動時間更短了,當VM不在目標機器上時,下載的時間也更短了。
額外的語言支持:Java平台支持用不同語言編寫的應用程序,未來將會添加更多的語言支持,當然也包括對動態語言的支持,這就是所謂的達芬奇機或多語言虛擬機,請參考JSR-292。
增強的多核支持:需要藉助工具、庫和內置設施幫助新的和現有的Java應用程序更有效地利用多核硬體的優勢,Java的線程模型可以輕松地創建並行執行任務的線程,但你如何將一個單一的任務拆分成多片進行並行執行呢?
其它改進包括持續的性能改進,以及許多語言方面的增強,包括增加的閉包,在switch語句中對Strings的支持,以及多塊異常捕獲,閉包是一個有爭議的功能,它是通過使用匿名的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生成,考慮到生產的Web頁面是靜態的,可以使用Ajax技術,不過它已經超出了Java EE的范疇。
雖然Oracle沒有明確這方面的具體計劃,但未來Java EE和JavaFX集成時將會解決Ajax問題。
Java ME
作為 Oracle 首選的移動環境的 Java,這個堆棧未來默認的呈現方式將會是 HTML, CSS 和 Javascript。Java ME 將包含 WebKit 引擎,JavaScript. 引擎,和 Java/JavaScript. 橋,換言之,未來運行新版 Java ME 的手機,將能夠訪問瀏覽器以外的 Web 服務,而不會有任何性能問題。這些引擎將直接插入 Java ME虛擬機和插入 Java FX。
Oracle 的 Java ME 引擎,將利用當代圖形硬體加速器所擅長的(60 frames/秒)二維和三維渲染(在 Windows 環境下,微軟的 Direct X,還有 OpenGL 或未來「更好」的技術)。 Java ME 將會針對 ARM7 和 ARM9晶元組進行優化,包括 Broadcom,三星,NEC,德州儀器,以及其他取得授權的手機部件製造商,還將內置充分利用手機裝置的支付,通話,和定位等功能的 API。
JavaFX
隨著 JavaFX 和 Java 的整合,並運行於 JVM 之上,它的富媒體處理及二維和三維渲染功能,也將能提供給任何在 JVM 上運行的其他編程語言,這意味著,例如 Groovy, Scala 和 JRuby 等也都能用來整合 JavaFX 的能力。
JavaFX展望:
基於可視化組件創建一個設計範式
為JavaFX應用程序創建一個豐富的UI擴展庫
提升所有平台的JavaFX性能
增強跨設備移植JavaFX應用程序的能力
與Java,JavaScript和HTML 5無縫集成
支持新興設備和UI範式(如多點觸摸)
㈥ Java工程師以後發展路徑是什麼
最近有些網友問我如何自學 Java 後端,還有些是想從別的方向想轉過來,但都不太了解 Java 後端究竟需要學什麼,究竟要從哪裡學起,哪些是主流的 Java 後端技術等等,導致想學,但又很迷茫,不知從何下手。我就以過來人的經歷,寫在這篇博客里,不一定都對,但都是我根據自己的經歷總結出來的,供你們的參考。
Java 基礎
Java 是一門純粹的面向對象的編程語言,所以除了基礎語法之外,必須得弄懂它的 oop 特性:封裝、繼承、多態。此外還有泛型、反射的特性,很多框架的技術都依賴它,比如 Spring 核心的 Ioc 和 AOP,都用到了反射,而且 Java 自身的動態代理也是利用反射實現的,這里我特意寫了一篇Java動態代理原理分析。此外還有 Java 一些標准庫也是非常常見,比如集合、I/O、並發,幾乎在 Web 開發中無處不在,也是面試經常會被問到的,所以在自學 Java 後端之前,不妨先打好這些基礎,另外還有 Java8 的一些新特性,也要重點關注,比如 Lambda 表達式、集合的 Stream 流操作、全新的 Date API 等等,關於新特性,我也寫了幾篇關於這方面的博客,請自行找吧,就不貼出來了。
關於書籍推薦,我是不建議初學者一開始就拿著「Java 編程思想」啃的,因為當初我就是那個當天下午決定自學 Java,晚上就抱著這本書啃的人,說實話,我當時真的不懂它在說啥,因為我沒有一點的面向對象語言編程的基礎,而這本書又寫得太博大精深了,在當時的我來說,完全是天書,但是我認為它仍然是 Java 界的聖經,每讀一次都有所收獲。我在這里推薦你們一開始先看「Java 核心技術」,這本書講得比較通俗易懂,初學者比較能接受。
關於視頻推薦,我當初就是聽某客的畢向東老師講的 Java 基礎教程,畢老師講的實在是太生動有趣了,不知不覺把我帶進 Java 的坑裡無法自拔,有時候我會聽他視頻時笑出聲來,也許是我那段自學階段最有趣的時刻了。
資料庫
關於 sql 方面:SQL 教程、MySQL 教程
我是了解了一些基礎語法之後,就直接跟著視頻的老師做一些表操作實戰練習了,比如單表查詢、多表查詢等。我建議學 sql 切勿眼高手低,需多加練習,不要只看懂了就行,因為工作中寫得一手簡練的 sql 是非常重要的。在這里我說下我在項目一直秉承著 sql 語句是能避免多表查詢就避免多表查詢,能夠分開多條語句就分開多條語句,因為這里涉及到多表查詢性能和資料庫擴展的問題。
關於 JDBC 方面:JDBC 教程、JDBC 獲取連接對象源碼分析
你需要弄懂 JDBC API 的用法,其實它只是一組規范介面,所有資料庫驅動只要實現了 JDBC,那麼我們就可以通過標準的 API 調用相應的驅動,完全不用知道驅動是怎麼實現的,這就是面向介面編程的好處。而且對於 JDBC 我是直接看視頻去理解的,跟著視頻做了一個基於 Apache Dbutils 工具做了一個具有事務性的小工具,我特意用思維導圖總結了一下:
Web 基礎
曾經開源中國創始人紅薯寫了一篇文章「初學 Java Web 開發,請遠離各種框架,從 Servlet 開發」,我覺得他說的太對了,在如今 Java 開發中,很多開發者只知道怎麼使用框架,但根本不懂 Web 的一些知識點,其實框架很多,但都基本是一個套路,所以在你學習任何框架前,請把 Web 基礎打好,把 Web 基礎打好了,看框架真的是如魚得水。
關於 Http 協議,這篇文章就寫得很清楚:Http協議
關於 Web 基礎這方面數據推薦,我當時是看的是「Tomcat 與 Java Web 開發技術詳解」,很詳細地講解了整個 Java Web 開發的技術知識點,但現在看來,我覺得裡面講的有一些技術確實有點老舊了,不過可以了解一下 Java Web 開發的歷史也是不錯的。所以在 Web 基礎這方面我都是看某客的崔老師講的「超全面 Java Web 視頻教程」,講得很詳細很生動,還有實戰項目!
關於 JSP,你只要了解它其實就是一個 Servlet 就行了,關於它的一些標簽用法,我認為可以直接忽略,因為現在互聯網幾乎沒哪間公司還用 JSP,除了一些老舊的項目。現在都是流行前後端分離,單頁應用,後端只做 API 介面的時代了,所以時間寶貴,把這些時間重點放在 Servlet 規范上面吧。
關於 Tomcat,它是一個 Web 容器,我們寫的後端項目都要部署到Web容器才能運行,它其實是一個遵循 Http,通過 Socket 通信與客戶端進行交互的服務端程序:Tomcat結構及處理請求過程
Web 主流框架
Java Web 框架多如牛毛,等你有一定經驗了,你也可以寫一個 Web 框架,網上很多說 Spring、Struts2、Hibernate 是 Java 三架馬車,我只想說,那是很久遠的事情了,我嚴重不推薦 Struts2、Hibernate,相信我,一開始只需要上手 Spring、SpringMVC、Mybatis 就可以了,特別是 Spring 框架,其實 Spring 家族的框架都是很不錯的。
但是提醒一點就是,千萬不要沉迷於各種框架不能自拔,以會多種用法而沾沾自喜,導致知其然而不知其所以然。
Spring其核心思想就是 IOC 和 AOP:
談談對 Spring IOC 的理解
Spring 面向切面編程
SpringMVC 它的思想是全部請求統一用一個 Servlet 去做請求轉發與控制,這個 Servlet 叫 DispatcherServlet:
SpringMVC 初始化過程
SpringMVC 處理請求過程
Mybatis 它可實現動態拼裝 sql,避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集:
mybatis 入門教程
Mybatis 深入淺出系列
Web 框架進階
使用了 SSM 框架後,你會覺得框架也不過這么回事,如果你對 Spring 有過大概了解,你也會產生想寫一個「山寨版」Spring 的心思了,一個輕量級 Web 框架主要具備以下功能:
可讀取用戶自定義配置文件,並以此來初始化框架;
具備 Bean 容器,管理項目的類的對象生命周期;
具備依賴注入,降低類之間的耦合性;
具備 AOP 功能,使項目可進行橫向編程,可不改變原有代碼的情況增加業務邏輯;
具備 MVC 框架模式。
其實除了 SSM 之外,Web 框架可謂是百家齊放,其中以 Spring 全家桶最為耀眼,在這里我極力推薦兩個 Spring 家族框架:SpringBoot 和 SpringCloud。
SpringBoot 彌補了 Spring 配置上的缺點,再也不用為繁雜的 xml 費勁精力了,堪稱是 Java 後端開發的顛覆者,推薦書籍「Java EE 開發的顛覆者:SpringBoot實戰」
SpringBoot 構建 web 項目
SpringBoot 自動化配置源碼分析
自定義 SpringBoot Starter
spring-boot-starter-tutorial
SpringCloud 是一個微服務架構,能夠將項目按照業務分成一個個微服務,每個微服務都可獨立部署,服務之間互相協調。當一個項目越來越大時,隨之而來的是越來越難以維護,此時將項目拆分成若干個微服務、單獨維護、單獨部署,也可以降低項目不同業務間的耦合度。推薦書籍「Spring Cloud 與 Docker 微服務架構實戰」,這本書將 Docker 與微服務完美地結合在一起,堪稱完美!
Spring Cloud 中文官網
史上最簡單的 Spring Cloud 教程
我寫的有關於 Spring Cloud 的博客:
SpringCloud微服務架構之服務注冊與發現
SpringCloud微服務架構之服務消費者
SpringCloud微服務架構之斷路器
SpringCloud微服務架構之服務網關
其它技術
Redis:一個高性能的 key-value 資料庫,當有並發量很高的請求時,將數據緩存在 Redis 中,將提高伺服器的響應性能,大大減輕資料庫的壓力。
redis 中文官網
redis 教程
Git:世界上最先進的分布式版本控制系統,建議所有初學者從命令行開始使用 Git!關注 stormzhang 公眾號「googdev」,回復「github」,即可免費獲取一份 GitHub 教程電子書,我覺得寫得很不錯。
Git 官網
最全 Git 教程
Git 的一些常用命令
Maven:一個用於構建項目的工具,將項目間的依賴通過 xml 完美地組織到一起,可通過編譯插件將項目編譯成位元組碼文件。還有類似的 Gradle 也是不錯的選擇。
maven 的 pom.xml 文件詳解
linux:至少要求常用的命令會用,能夠在 linux 環境下部署項目。
Linux 命令大全
最全的 SSH 連接遠程終端教程
Docker:簡直是項目部署神器啊,來不及解釋了,看我 Docker 系列博客,開啟 Docker 之旅吧!推薦書籍「Docker 技術入門與實戰」,中國首部 Docker 著作!
Docker 實戰(一)
Docker 實戰(二)
Docker 實戰(三)
docker-deploy-tutorial
開發工具
工欲善其事,必先利其器,以下是我推薦的一些開發工具:
Intellij IDEA:Java 開發最好的 IDE,這個是公認的,我一開始是用 Eclipse 的,後來用了 Intellij IDEA,才發現 Eclipse 就是一坨屎,所以我以過來人勸你們不要使用 Eclipse,直接 Intellij IDEA!
IntelliJ IDEA 使用教程
Iterm2:macOS 最好用的終端!
Iterm2 使用指南
Chrome:人生苦短,請用 Chrome,來不及解釋了,快上車!
Postman:很好用的一個介面調試工具。
㈦ JAVA程序員的道路該怎麼走
你能把servlet+jsp+javabean+tag搞得很精通,
理解MVC原理
玩轉主流設計模式,工廠模式,單例模式,裝飾模式...
能結合模式理解java類庫
理解java的反射機制,動態代理,IO流,文件流,多線程,玩轉集合類
就不錯了,到哪裡都不愁找不到工作。什麼SSH框架不過是這些東西的包裝罷了,你自己都可以寫一個出來。
㈧ 淺談如何找到Java 正確的學習路徑
Java語言是較為熱門的計算機編程語言,直觀地講,Java語言在所有編程語言當中難度不是最大的,但用途卻很廣泛。從Android開發、網站伺服器編程到如今的物聯網嵌入式程序和大數據運算分析,都可以看到Java的身影。Java是一門面向對象的編程語言,同時也是計算機、互聯網應用最為廣泛的生態。它對C++語言語法方面進行了改進,能夠具有跨平台、可移植、安全、健壯等特點,能夠用更加貼近人們的日常思維方式進行較為復雜的編程,可以說是最實用的靜態編程語言。
在大型資料庫Oracle的應用上,Java可作為二次開發的語言進行開發設計;在分布式大數據分析架構中,Java也可以用來寫大數據的演算法程序;同時Java還有很多其他的應用,比如智能電視以及其他智能穿戴設備的編程。
對於熱愛編程的朋友來說,Java是一門值得學習的語言,那麼Java的學習線路圖是怎樣的?首先先要從了解Java各個版本的含義開始:
JavaSE(Java Standard Edition):標准版,定位於個人計算機上的應用。這個版本是Java平台的核心,它提供了非常豐富的API來開發一般個人計算機上的應用程序,包括用戶界面介面AWT及Swing,網路功能與國際化、圖像處理能力以及輸入輸出支持等。在上世紀90年代末互聯網上大放異彩的Applet也屬於這個版本;
JavaEE(Java Enterprise Edition):企業版,定位在伺服器端的應用。JavaEE是JavaSE的擴展,增加了用於伺服器開發的類庫。如:JDBC是讓程序員能直接在Java內使用的SQL的語法來訪問資料庫內的數據;Servlet能夠延伸伺服器的功能,通過請求—響應的模式來處理客戶端的請求;JSP是一種可以將Java程序代碼內嵌在網頁內的技術;
JavaME(Java Micro Edition):微型版,定位在消費性電子產品的應用上,JavaME是JavaSE的內伸,包含J2SE的一部分核心類,也有自己的擴展類,該版本針對資源有限的電子消費產品的需求精簡核心類庫,並提供了模塊化的架構讓不同類型產品能夠隨時增加支持的能力。
在了解Java各個版本的定義之後,就可以按照一定的學習路線開始Java之旅了。
JavaSE部分:
新手最初學習的時候先要從JavaSE開始學起,所包含的內容主要分為:面向對象概念的理解、Java基本語法的學習,Java桌面圖形界面應用程序的開發,掌握常用的Java API等(關鍵是要學會怎樣查閱)。
重點:Java基本語法(循環結構,數據類型,數組,運算符等)、Swing,awt,事件機制、文件輸入輸出流處理等;
難點:面向對象思想的理解(介面、類等)、線程、socket網路編程等。
JavaEE部分:
在學習了JavaSE之後,你可以嘗試著慢慢過渡到JavaEE。當然,學習JavaEE也需要很多其他技術的支撐,比如資料庫技術,網頁編程技術等等。JavaEE有三個必學的框架,如果你說你學了JavaEE,但又不會這三個框架的話,是不應該的,這三個框架分別是Struts、Spring和Hibernate,雖然這三個框架應用很廣,但不代表這三個框架就代表了JavaEE,JavaEE還有很多其他的東西,比如EJB,作為一款重量級框架,雖然這個應用慢慢的再被其他框架所取代,但EJB3.0的出現也給它帶回一些生機。尚學堂陳老師提到,當前JavaEE流行的框架是SSM框架,即Spring、SpringMVC、MyBatis三個開源框架,他是對之前SSH框架的改進。
不過前面介紹到得這些都不是JavaEE的基礎,是屬於框架應用級別的.要真正把上面說到的知識掌握好,還是的學習JavaEE最核心的東西:JDBC、JSP、servlet和JavaBean,後面三個也是學習SSH的基礎(StrutsSpringHibernate的簡稱)。鑒於JavaEE的內容太過復雜,建議大家最初只學習: JSP,servlet和JavaBean,等這個基礎掌握好再把SSH學習了,再對其他JavaEE技術有個大致的了解就可以出去找工作了。當然,找工作的前提除了把Java學習好,還會有一些其他的技術也是必須要掌握的。
還有比較重要的內容是資料庫技術:
資料庫幾乎是程序中不可或缺的一部分,在整個軟體開發中更是占據了重要作用。資料庫在整個軟體中扮演的是地基的角色,你要修房子,就要先打好地基,你要做軟體,就要先設計好的資料庫。目前資料庫幾乎都是關系型資料庫,代表的有:SQL Server/MySQL等。
綜上所述,Java的學習路線也並不難,把基本的Java語法融會貫通,能夠在實際項目中熟練應用框架,並能夠對資料庫進行增刪改查等操作,隨著開發經驗的增長,技術也會不斷地提升。
㈨ Java程序員如何加快升級之路
能把客戶需要的功能搞出來就算是高手啦,什麼代碼規不規范、資料庫設計的合理不合理,都得服從功能。把功能搞得讓用戶滿意,系統使用起來方便順手,符合用戶日常工作習慣,那就是好程序員。你的代碼再簡潔再規范,對用戶都關系不大,你雖然節約了伺服器資源,程序運行效率較高,但是用戶基本感覺不到。如果功能做不到位,為用戶著想的不夠,用戶是完全有感受的,比如多欄位錄入問題,用戶的習慣和期望是每輸入完成一個欄位後回車焦點就轉到下一個文本框,但是不少程序員開發的管理系統都沒做到這點,而是輸完一個欄位後必須右手離開鍵盤去操做滑鼠,用滑鼠把游標切換到下一個文本框,這種程序代碼既使再規范又能怎麼樣?還有就是一些程序員喜歡畫蛇添足,原本很簡單的需求,編程時卻把功能搞得很啰嗦,比如注冊、登錄問題,要這個要那個的,把用戶搞得很煩。
㈩ java程序員的成長路線是什麼是不是我圖片上這樣的一個順序
看圖說話。
1、個人覺得,你列出的諸如JSP,CSS,STRUTS等技術只是從小到大,從近到遠,應用范圍的進階而已。
2、然而程序員的進階,我覺得往往是其對某一方面專精的程度,而不是學到的廣度。諸如底層驅動工程師,JAVA應用工程師,資料庫工程師等等。
3、工作時,各個團隊有專精的任務,個人也只擔任很少的部分。所以我覺得要有針對性的尋找適合自己的位置。
最後,建議找到自己最感興趣的那塊,專精於此,祝你成功!