本文目錄一覽:
JAVA如何進階
1. 基礎階段
基礎階段, 可能需要經歷1-2年吧. 這個時段, 應該多寫一些基礎的小程序(自己動手寫的越多越好). 計算機是一門實踐性很強的學科, 自己動手的東西, 記憶非常深刻, 效果要勝過讀好多書. 當然, 學Java基礎的時候, 書籍的選擇也非常重要, 好的書籍事半功倍, 能讓你打個非常好的基礎. 而差的書籍, 很容易將你帶入歧途, 多走很多彎路. 書籍不在多, 而在乎讀得精(有些書, 你讀十遍都不為過). 我記得我學Java的第一本書是的中文版, 網上有很多人都建議不要把這本書作為第一本的入門教程來看, 太難. 我卻想在此極力推薦它, 這本書確實是本經典之作. 而且書中確實講的也是Java中的一些基礎技術, 沒有什麼太難的東西, 只不過比較厚, 學習周期比較長, 所以很多人中途會選擇放棄. 其實, 這本書是一本難得的入門教程, 對Java一些基礎的東西, 講得很全, 而且也很清晰, 更重要的是, 這本書能讓你養成很多好的編程習慣, 例子也很多. 建議你把大部分的例子自己去實現一遍. 我的親身經歷, 我記得當時認真的看了2遍, 花了大概7個月的時間, 不過真的有很好的效果. 另外一個教程, 就是卷一, 卷二的話可以不必要買. 卷一看完, 自己再鑽研一下, 就已經能達到卷二的高度了:). 到那時, 你就會覺得看卷二沒啥意思, 感覺浪費錢了. 還有一個, 就是張孝祥的Java視頻, 看視頻有個好處, 就是比看書的記憶要深刻, 還有很多你可以跟著視頻的演示同步操作. 張孝祥的Java視頻對初學者來說, 確實很有作用. 總結起來: 看這些資料的時候, 一定要多寫例子, 寫的越多越好!
2. 中級階段
中級階段, 是一個更漫長的時期, 能否突破此階段, 跟個人的努力和天資有著很大的關係. 你不得不承認, 同樣一門新技術, 有些人一個月領悟到的東西, 比你一年的都多. 這就是天資, 程序員是一個需要天才的工作. 我想, 很多人聽說李一男吧, 此君就是這樣的人物, 三個月的時間就能解決好大一幫人幾年解決不了的問題, 給華為某部門帶來了很多的收益. 哦, 這是題外話了, 與此篇的主題無關, 只是本人偶爾的感慨而已:). 這個階段, 就需要研究很多專題性的東西了, 比如: IO的實現原理, 多線程和Java的線程模型, 網路編程, swing, RMI, reflect, EJB, JDBC等等很多很多的專題技術, 鑽研得越深越好. 為了更好的提高, 研究的更深入, 你需要經常到網路上搜索資料, 這個時候往往一本書起不來很大的作用. 選一個JDK版本吧, 目前建議選用1.6, 多多研究它, 尤其是源代碼(盡量! 就是盡自己最大的努力, 雖然研究透是不可能滴). 比如說: util, collection, io, nio, concurrent等等包. 可能有人會反對我說, 不是有API文檔嗎, 為什麼還要研究這麼多的源代碼? 錯了, 有API文檔, 你僅僅只是知道怎麼用而已, 而認真仔細的研讀這些大牛的源碼, 你就會深入更高的一個階層, 自己的編碼, 設計都會有很大的提高. 如果有能力和精力, 我建議你把JDK的每一行代碼都熟悉一遍, 絕對只有好處, 沒有壞處! 而且你會有些意外的收穫, 比如, 當你仔細地讀完concurrent包的時候(不多, 好像總共是86個類吧), 你就會對Doug Lea佩服得五體投地. 這個時候最忌碰到難題就去尋找幫助, 去網上找答案! 先把自己的腦袋想破吧, 或者等你的老闆拿著砍刀衝過來要把你殺了, 再去尋求幫助吧. 對於專題的學習, 英文原版的閱讀是非常必要的, 看的越多越好, 多上上IBM的developer, SUN的網站吧, 當然Javaeye也很不錯:), 有很多大牛, 呵呵.
這個時候, 你應該建立自己的代碼庫了, 你應該自己去研究很多有意思的東西了. 從一個200多M的文件中尋找一個欄位, 最壞情況(在文件的末尾咯)也只需要1秒左右的時間, 你知道嗎? 這個階段, 有很多很多類似的有趣的東西可以供你去研究, 你需要更多地關注性能, 規範性, 多解決一些疑難問題. 需要學會所有的調試技術, 運用各種性能工具, 還有JDK附帶的很多工具, 這些你都要熟練得跟屠夫操刀一樣. 也可以看看, 這本書總結的也不錯, 對寫高效穩定的Java程序有些幫助. 也可以看看模式方面的東西, 但是我建議模式不要濫用, 非得要用的時候才用, 模式往往會把問題搞複雜:). 總結起來: 這個階段是一個由點延伸到面的過程, 經過不斷的學習, 演變成全面的深入! Java技術中你沒什麼盲點了, 還能解決很多性能問題和疑難問題, 你就成了一個合格的程序員了! [要想成為優秀程序員, 還得對資料庫和操作系統很精通.]
3. 高級階段
高級階段, 我就不敢妄言了. 呵呵, 我感覺自己也是處於中級階段吧. 也是根據自己的一些經驗, 談談自己的理解吧:
Java進階:SE6調用編譯器的兩種方法[2]
三 從內存中編譯
JavaCompiler不僅可以編譯硬碟上的Java文件 而且還可以編譯內存中的Java代碼 然後使用reflection來運行它們 我們可以編寫一個JavaSourceFromString類 通過這個類可以輸入Java源代碼 一但建立這個對象 你可以向其中輸入任意的Java代碼 然後編譯和運行 而且無需向硬碟上寫 class文件
import java lang reflect *;import java io *;import javax tools *;import javax tools JavaCompiler CompilationTask;import java util *;import java net *;public class test_pilerapi{ private static void pilerJava() throws Exception { JavaCompiler piler = ToolProvider getSystemJavaCompiler(); DiagnosticCollector diagnostics = new DiagnosticCollector(); // 定義一個StringWriter類 用於寫Java程序 StringWriter writer = new StringWriter(); PrintWriter out = new PrintWriter(writer); // 開始寫Java程序 out println( public class HelloWorld { ); out println( public static void main(String args[]) { ); out println( System out println(\ Hello World\ ); ); out println( } ); out println( } ); out close(); //為這段代碼取個名子 HelloWorld 以便以後使用reflection調用 JavaFileObject file = new JavaSourceFromString( HelloWorld writer toString()); Iterable pilationUnits = Arrays asList(file); JavaCompiler CompilationTask task = piler getTask(null null diagnostics null null pilationUnits); boolean success = task call(); System out println( Success: + success); // 如果成功 通過reflection執行這段Java程序 if (success) { System out println( 輸出 ); Class forName( HelloWorld ) getDeclaredMethod( main new Class[] { String[] class }) invoke(null new Object[] { null }); System out println( 輸出 ); } } public static void main(String args[]) throws Exception { pilerJava(); } } // 用於傳遞源程序的JavaSourceFromString類 class JavaSourceFromString extends SimpleJavaFileObject { final String code; JavaSourceFromString(String name String code) { super(URI create( string:/// + name replace( / )+ Kind SOURCE extension) Kind SOURCE); this code = code; } @Override public CharSequence getCharContent(boolean ignoreEncodingErrors) { return code; } }
lishixinzhi/Article/program/Java/hx/201311/27240
北大青鳥設計培訓:java學習有哪些階段?
我想自學java是每一個想要進入這個行業的首選,可自學JAVA,對於初級水平的小白是難上加上。
所以我建議首先學習下HTML相關的知識,其次逐漸深入java語言知識,最後系統重新學習一邊。
今天呢,IT培訓就和大家簡單聊聊JAVA基礎以及學習的6個階段,希望能夠幫助到大家!一.JAVA基礎1.Java編程語言(新版)2.Java進階之設計模式3.JDK核心API4.MySQL基礎課程5.正則表達式基礎6.JDBC入門教程J2SESSH框架7.Java函數式編程8.J2SE網路通信實踐9.Struts框架教程10.Hibernate框架教程11.Spring框架入門教程(新版)12.MyBatis框架基礎入門13.SpringMVC簡易教程二.6個階段第一階段:HTML、DIV+CSS及相關的前端基礎知識語言;第二階段:JavaScript及相關的JQuery、Ajax等交互相關的知識;第三階段:JAVA基礎,面對對象思想以及IO流等JAVA基礎知識;第四階段:JSP及Servlet,以及相關的JDBC連接資料庫等相關的知識;第五階段:Java及JSP、Servlet等相關知識學完後,之後就是資料庫Mysql、Oracle等相關知識;第六階段:三大主流框架Spring、Struts2及Hibernate,抑或是Mybatis等框架,學完框架基本上就OK了,就可以出去找工作了;以上,就是小編為大家整理的自學JAVA知識,文字寫起來看起來就簡單的幾個字,但是實踐起來確實不是那麼容易,當然了如果你很聰明的話除外。
總之,自學的話,需要極強的自控能力,不能3天打魚2天曬網。
只有堅持下來,才能事半功倍。
原創文章,作者:WAEY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145951.html