java進階,java進階路線

本文目錄一覽:

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-hk/n/145951.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
WAEY的頭像WAEY
上一篇 2024-10-29 18:57
下一篇 2024-10-29 18:57

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論