日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java程序员学习路线以及我的学习经验

發布時間:2024/7/5 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java程序员学习路线以及我的学习经验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文作者為優知學院創始人陳睿(mike),作者有10年以上技術&產品經驗,曾任百度研發經理、攜程定制旅游CTO。

這是一篇完整的java程序員學習線路圖,一共分為六個階段。

我以java為例,展示完整的學習步驟。

最后,還有我的學習經驗思考。

希望,看完此文,你完全可以自學成為一名真正牛逼的程序員。

java程序員學習線路流程

第一步:Java語言基礎

從最簡單的開始,hello world開始Java之旅

1.編程基礎

  • 常量與變量

  • 數據類型

  • 運算符

  • 流程控制語句

  • 方法

  • 數組

  • 2.面向對象

  • 面向對象思想

  • 類與對象

  • 成員變量和局部變量

  • 封裝

  • this關鍵字

  • 構造方法

  • 3.集合

  • 集合概述

  • 集合特點

  • ArrayList集合

  • HashMap集合

  • 常用集合優劣比較

  • 4.輸入/輸出 IO

  • 字符輸入流

  • 字符輸出流

  • 字符緩沖輸入流

  • 字符緩沖輸出流

  • 復制文件

  • 集合與文件中數據相互讀寫

  • 5.練習階段

    屬于你自己的helloword

    第二步:java語言高級

    再結合java高級部分,里面的部分內容,這個階段你不一定能理解很徹底。但有一點,如果你今后想進入高階俱樂部,這些內容你必須掌握牢固。

    舉個栗子,如果你面試通過進入了公司,我一定會在早期仔細review你的代碼。代碼的功力是欺騙不了人的,不同人寫一個接口,呈現的結果也是千差萬別(所以才有了規范)。

    1.面向對象

  • 繼承

  • 多態

  • 重寫(Override)

  • 重載(Overload)

  • 封裝

  • 接口

  • java包 package

  • 2.異常處理

  • 異常概述

  • 異常分類

  • 異常處理方案

  • 自定義異常

  • 3.多線程

  • Java線程:概念與原理

  • Java線程:創建與啟動

  • Java線程:多線程的實現方案

  • Java線程:線程生命周期

  • Java線程:線程池

  • Java線程:線程狀態的轉換

  • Java線程:線程的同步與鎖

  • Java線程:線程的交互等等

  • 線程的幾個主要概念

    在多線程編程時,你需要了解以下幾個概念

    • 線程同步

    • 線程間通信

    • 線程死鎖

    • 線程控制:掛起、停止和恢復

    4.輸入與輸出IO

  • 文件和I/O

  • 讀寫文件

  • Java 流(Stream)

  • 文件(File)

  • 緩沖流

  • 5.泛型(Generic )

  • 泛型的使用場景

  • 泛型類型

  • 泛型方法

  • 泛型通配符?

  • 6.網絡編程

  • 網絡機制

  • Socket原理機制

  • UDP、TCP傳輸等

  • 7.反射(reflection)

  • 類加載機制原理

  • 反射構造方法、字段、方法

  • Properties配置文件

  • 8.注解(annotation)

  • 注解的使用和原理

  • 三種內置annotation

  • 自定義annotation

  • 注解類的反射調用

  • 動態代理類如何處理

  • 9.Java高級特性和類庫

  • java類加載器class loader

  • java 程序運行的基礎知識,java編譯后的bytecode的整個運行機制,這一點對應.net的IL(intermediate language)。

  • 理解Java nio,關于這一點網上有非常多的教程,這一條需要重點掌握,對于高并發的掌握很重要。

  • java juc(java.util.concurrent)等等

  • 10.JVM原理和調優

    JVM最重要的三個部分必須要非常清楚,內存劃分、class加載機制以及GC策略。搞清楚這三部分不僅僅是為了面試,也是為了讓你對于Java有更深刻的理解,這對于你的Java生涯非常有幫助。

    內存劃分簡單說分為三個部分,Young Generation(年輕代)、Old Generation(年老代)以及Perm Generation(永久代)。其中的Young Generation(年輕代),又分為Eden、From和To,其中From和To又統稱為Survivor Spaces(幸存區)。

    關于classloader機制的學習,可以結合tomcat去學習,了解清楚tomcat的classloader機制,看tomcat是如何保證各個APP之間的類隔離的。如果可能的話,看一下tomcat中classloader的源碼,當中也包含了與tomcat類加載機制相似的部分。

    至于GC,需要清楚GC Roots都有哪些,以及如何判斷一個對象可以被回收。此外,GC的算法和策略也要有大概的了解。

    第三步:java web階段

    1.前段技術掌握

  • html

  • css

  • js

  • jquery

  • bootstrap

  • 2.動態網頁技術

  • Java Servlet API

  • Velocity

  • FreeMarker

  • JSP等常用模板引擎

  • 比如,淘寶前端層使用的是velocity模板,部分公司采用jsp、freemarker等,基本類似。

    3.linux服務器基本命令

    在個階段,也可以結合自己的情況,學習linux系統底層原理。

    第四步:java框架階段

    1.SSH(struts2+spring+hibernate)

    2.SSM(springmvc+spring+mybatis)

    備注:如果你仔細,網上有部分叫SSI,I為ibatis,后來ibatis改名為mybatis了。

    框架組合,我首推SSM,比SSH靈活強大。

    框架的優缺點,我會再單獨寫文。

    如果你還有興趣,可以自己搭建Lucene、solr框架,以及memcached/ redis、activeMQ、hadoop等等搜索、分布式緩存、異步消息、數據等。

    我一般建議自己搭建,從學習效果再到理解深度都不一樣。有興趣,就開始自己搭建。

    第五步:開發工具階段

    1.web調試工具

  • firefox

  • firebug

  • web developer

  • yslow

  • httpwatch

  • ietester等

  • 這些都是開發必用。

    2.集成開發工具

    eclipse(首推) ,STS,myEclipse,Idea

    eclipse里的插件太多,推薦幾個必裝插件:

    JadClipse 、run-jetty-run(很牛的熱部署調試)、veloctiy、freemarker IDE、Subclipse、m2eclipse、mybatis Editor、 Easy Explorer等等。

    3.版本控制工具

    svn、git(首推)

    4.構建工具

    maven、nexus搭建maven私服

    建議自己搭建一套nexus maven私服,成為你們公司的代碼倉庫員。

    5.java調試工具

    • jProfiler(性能跟蹤)

    • jClarity(性能監控和日志分析)

    • Visualvm(性能分析和調優)等

    java調試還有很多,以上偏向性能調優和分析

    第五步:項目實踐階段(淘寶店鋪裝修)

    所謂的項目實踐階段,其實就是把以上的內如付諸于實踐。聽一萬遍還不如自己動手一試。

    項目實踐的重要性,也許比你以上的學習步驟還來得重要得多,而且學習速度也更快。

    如果大家有興趣,我可以給大家分享,關于淘寶階段的有技術挑戰的項目,從需求收集MRD->需求文檔(PRD)->需求評審->寫技術設計方案->設計方案評審->寫UC(User Case 用戶用例)->UC評審->寫TC(Test Case測試用例)->TC評審->編碼…

    當然,以上流程步驟,現在已經有部分變動,但是,萬變不離其宗。

    備注:

    1.淘寶是所有公司里,要寫UC的一家公司,其實就是開發寫測試用例,開發寫得好,測試根本不需要寫測試用例。

    2.很多同學不太會寫設計方案,設計方案其實最好的方式就是借鑒,一個好的設計方案模板很管用。技術設計方案模板和代碼規范,其實都是大部分人不斷實踐后沉淀下的結晶。

    我的學習經驗

    首先,自己得有信心。

    我之前也僅是表象相信這件事,我也是經歷幾次跨界學習之后,才從本質認識到這句話的重要性。

    如果你從早期就不相信你能做到,基本你也很難做到,更難做好。大部分學習新技能,一看一聽再看,徹底被嚇退了,從學習氣勢上就已敗下。如果這樣的信心沒建立起來,其實也不要緊,但至少需要具備這樣的思維能力。學習的信心最后也是通過不斷的學習積攢起來的。

    其實學習本身根不是事,反而是你要學什么,這件事反而變得極其重要了。

    要想學好,先從氣場上就得暫得先機。

    其次,凡事講究方法。

    自信是第一條,但是,光有自信肯定是不行的。

    方法論很重要,我比較喜歡研究方法論。關于技術、產品的方法論,如果你是老讀者,我之前寫了很多類似的方法論。如果你想了解,那就勤快一點,翻翻老文,這里我就不多講了。

    總之,項目實踐帶動理論,自認為效果最好。

    再次,專注是最好的老師。

    現在回想起來,只有我早期在newegg、淘寶的階段是最專注技術的階段,專注有時候真是一種享受。后面進入百度、攜程開始,由于帶團隊,還要管產品業務,每天一小會,每周兩大會,特別是在攜程階段,技術、產品、測試都管、還有部分運營。所以,珍惜你現在的編碼階段吧,對技術的提升其實也在這個階段。

    最后,興趣能引導你走得更好。

    以上的內容,我認為都是平行階段。如果你想有更大的發展或者造化,我堅信一定是興趣引導的階段,也只有這樣,才能把自己的潛能最大化。

    你可能也喜歡:

  • 史上最全java架構師技能圖譜(上)

  • 總結

    以上是生活随笔為你收集整理的java程序员学习路线以及我的学习经验的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。