{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

自學java?

tuniutechtuniutech 回答0 收藏1
問題描述:現有興趣學習一下java,各路大仙給點建議和指導。感謝各位不吝賜教
收藏問題

10條回答

gaosboy

gaosboy

回答于2022-06-28 14:34

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

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

希望對于想通過java自學的朋友有幫助。

java程序員學習線路流程

第一步:Java語言基礎

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

1.編程基礎

  1. 常量與變量

  2. 數據類型

  3. 運算符

  4. 流程控制語句

  5. 方法

  6. 數組

2.面向對象

  1. 面向對象思想

  2. 類與對象

  3. 成員變量和局部變量

  4. 封裝

  5. this關鍵字

  6. 構造方法

3.集合

  1. 集合概述

  2. 集合特點

  3. ArrayList集合

  4. HashMap集合

  5. 常用集合優劣比較

4.輸入/輸出 IO

  1. 字符輸入流

  2. 字符輸出流

  3. 字符緩沖輸入流

  4. 字符緩沖輸出流

  5. 復制文件

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

5.練習階段

屬于你自己的helloword

第二步:java語言高級

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

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

1.面向對象

  1. 繼承

  2. 多態

  3. 重寫(Override)

  4. 重載(Overload)

  5. 封裝

  6. 接口

  7. java包 package

2.異常處理

  1. 異常概述

  2. 異常分類

  3. 異常處理方案

  4. 自定義異常

3.多線程

  1. Java線程:概念與原理

  2. Java線程:創建與啟動

  3. Java線程:多線程的實現方案

  4. Java線程:線程生命周期

  5. Java線程:線程池

  6. Java線程:線程狀態的轉換

  7. Java線程:線程的同步與鎖

  8. Java線程:線程的交互等等

線程的幾個主要概念

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

  • 線程同步

  • 線程間通信

  • 線程死鎖

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

4.輸入與輸出IO

  1. 文件和I/O

  2. 讀寫文件

  3. Java 流(Stream)

  4. 文件(File)

  5. 緩沖流

5.泛型(Generic )

  1. 泛型的使用場景

  2. 泛型類型

  3. 泛型方法

  4. 泛型通配符?

6.網絡編程

  1. 網絡機制

  2. Socket原理機制

  3. UDP、TCP傳輸等

7.反射(reflection)

  1. 類加載機制原理

  2. 反射構造方法、字段、方法

  3. Properties配置文件

8.注解(annotation)

  1. 注解的使用和原理

  2. 三種內置annotation

  3. 自定義annotation

  4. 注解類的反射調用

  5. 動態代理類如何處理

9.Java高級特性和類庫

  1. java類加載器class loader

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

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

  4. 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.前段技術掌握

  1. html

  2. css

  3. js

  4. jquery

  5. bootstrap

2.動態網頁技術

  1. Java Servlet API

  2. Velocity

  3. FreeMarker

  4. 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調試工具

  1. firefox

  2. firebug

  3. web developer

  4. yslow

  5. httpwatch

  6. 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(性能分析和調優)等

優知學院是IT人的進階站,提供系統的互聯網產品&技術的入門指南以及進階干貨。

評論0 贊同0
  •  加載中...
Tonny

Tonny

回答于2022-06-28 14:34

學習 JavaSE

HTML+CSS

js+jQuery

學習JavaEE:jsp+servlet

數據庫:MySQL+Oracle(建議先學MySQL)

框架SSH(Struts2+Spring+Hibernate)

SSM(Spring+SpringMVC+mybatis)

大致就是這些了,相信小伙伴們學完這些,學習能力已經有了很大的提升,即使在以后的 Java 工作學習中,遇到自己沒有接觸過的新技術。也可以通過自己的努力,把新的技術學到手。

在這份學習路線中,第一階段的 JavaSE 和 第二階段的 HTML+CSS+JS 順序是可以顛倒的,因為兩者并沒有什么必然的前置關系。

最后說一句:

我們生活在黃金年代,社會在快速的發展,你不想被淘汰,就要學習,而我們北大青鳥提供最新的知識,以幫你應對變化的世界,讓你與時俱進。

評論0 贊同0
  •  加載中...
wwolf

wwolf

回答于2022-06-28 14:34

java當然可以自學的,自學只是比較辛苦而已。如果你真的下定決心要自學了!那你就做好每天早六晚十的生活,不然你可能很難學會!

說了可以自學,下面我就分享自學的知識了。根據我分享的這套學習線路圖,你可以學習,學好了找份工作是很容易的哦!

java學習線路圖

這個學習線路圖我分為了幾個階段,每個階段能學到什么,能做什么,具體知識點請往下看,每個階段知識點我都整理出來了,更適合學習!

java語言入門

可掌握的核心能力:

掌握Java開發環境基本配置;

掌握運算符、表達式、流程控制語句、數組等的使用;

熟練使用Idea開發工具;

掌握Java基本面向對象知識;

掌握常用類String、ArrayList等的使用。

配套視頻:

畢向東Java基礎教程(適合初學者入門的Java基礎視頻)

java語言進階

可掌握的核心能力:

深入理解Java面向對象相關知識點;

掌握開發中常用類如集合、IO流、時間日期等操作;

掌握Java異常處理機制,熟悉Java多線程開發;

掌握網絡基礎知識,了解Socket原理,TCP、UDP協議;

掌握java基本語法完成單機程序的編寫;

熟悉Java新特性,如Lambda、Stream流等操作

配套視頻:

Java快速入門教程(Java基礎班全套教程)

Javaweb

可掌握的核心能力:

掌握Java JDBC、連接池操作,熟練操作mysql數據庫;

熟悉web開發中常用知識如 HTML5、CSS3、JavaScript、BootStrap、jQuery等;

掌握JavaWeb開發核心技術 Servlet、Listener、Filter等;

熟悉Linux服務器,并安裝開發常用軟件tomcat、mysql、nginx等;

掌握同步及異步操作的JavaWeb開發,具備B/S結構軟件開發能力,完成基本的JavaWeb項目;

熟悉基本的項目管理工具Maven的使用。

配套視頻:

JavaWeb教程_JavaWeb入門教程

項目一

可掌握的核心能力:

掌握企業中最常用SSM框架開發,開發出結構清晰、可復用性好、維護方便的企業級應用程序;

掌握AngularJS框架;

掌握Spring security框架;

掌握dubbox分布式調用技術;

掌握zookeeper分布式應用協調服務;

掌握Freemarker模板引擎;

掌握全文檢索解決方案;

掌握spring boot1.x框架的基本應用;

掌握CAS實現單點登錄;

掌握CORS實現跨域;

掌握微信掃碼支付;

掌握電商秒殺解決方案;

掌握SpringTask實現任務調度;

掌握MavenProfilel實現開發與生產環境切換;

了解電商開發中相關業務模塊如商品、訂單基本操作;

了解電商開發中相關術語SPU和SKU等;

積累互聯網電商項目開發經驗。

配套視頻:

Java教程|Springmvc由淺入深教程

Java教程|Mybatis由淺入深教程

Maven教程_Maven視頻教程

項目二

可掌握的核心能力:

熟悉基本的Java爬蟲開發,掌握webmagic爬蟲框架使用;

掌握httpClient的使用;

掌握spring data jpa框架;

掌握Spring boot2.x框架;

掌握Spring Cloud框架;

掌握MongoDB數據庫使用;

掌握RabbitMQ消息中間件使用;

掌握Elasticsearch分布式搜索引擎;

掌握Rancher實現容器部署管理;

掌握Grafana實現服務的實時監控;

熟悉NodeJs環境,使用Npm和cnpm管理包資源;

熟悉ESlint進行前端語法校驗;

熟悉axios的使用;

掌握vuejs框架的基本使用;

掌握瀑布流組件使用;

掌握前端頁面分享功能的實現;

掌握企業級DevOps解決方案,熟悉Docker、Jenkins、git等;

了解spark mllib als 機器學習算法庫實現智能分類;

了解DL4J深度學習框架實現智能推薦。

配套視頻

2018年Vue.js深入淺出教程

深度掌握Springboot實踐技術教程

微服務初級課程

配套視頻

SpringBoot教程_SpringBoot視頻教程

微服務高級課程

可掌握的核心能力:

ServiceComb改造十次方項目;

了解Kubernetes作用及為什么使用Kubernetes;

會使用K8S API完成基本操作;

理解微服務引擎CSE的功能;

能夠實現ServiceComb項目接入CSE;

能夠實現學成在線項目接入CSE;

理解云容器引擎CCE的功能;

能夠使用容器鏡像服務上傳鏡像;

能夠將學成在線微服務部署到CCE;

能夠測試微服務治理常用策略;

能夠理解Mesher的作用;

能夠完成學成在線使用Mesher接入CSE。

視頻未更新,更新后上傳

框架架構高級

可掌握的核心能力:

能夠理解ORM框架;

使用Socket進行系統之間通信;

掌握在Java中開啟多線程的三種方式;

掌握使用Netty實現通信;

掌握Netty常用的傳輸方式及ByteBuff的使用方法;

理解及時通信框架的架構;

掌握Protobuf數據格式及在Java中應用Protobuf;

掌握使用Netty實現服務端、客戶端;

理解虛擬機client與Server的運行模式;

學習垃圾回收的算法;

掌握jps、jstat、jinfo、jstack、hprof等命令的使用;

掌握圖形化監控工具JConsole工具的使用;

掌握Mission Control虛擬機診斷工具的使用;

掌握壓力測試工具JMeter的使用;

掌握調整參數測試Tomcat的性能;

掌握“雙親模式”的原理以及解決方案。

好客租房項目

可掌握的核心能力:

能夠實現房源信息更新的通知;

實現用戶信息、房東、審核等功能;

能夠實現API文檔與模擬數據接口開發;

能夠實現收藏、分享、舉報、聯系房東、預約看房、在線簽約功能;

掌握微信小程序開發;

實現日志數據的清理以及推薦。

大數據轉型Hadoop3

大數據hadoop教程入門

目前有幾個階段還未有視頻更新,有視頻了我會繼續上傳哦!如果有特別想要我放出的視頻,也可以留言噠!

評論0 贊同0
  •  加載中...
silencezwm

silencezwm

回答于2022-06-28 14:34

謝邀。現身說法,我就是靠自學Java進去bat的,而且據我觀察,BAT里很多人的JAVA也是自學的。

我在讀大學期間,JAVA是選修課,老師是一個只會念課件的老頭,最后的考試也是背背題庫就可以通過。當年太年輕,不知道Java的重要性,等到要找工作的時候才知道自己當初有多么傻。于是發奮圖強,自學Java,最終拿到了心儀公司的offer,職位就是JAVA開發工程師。

至于我的同事呢,我們項目組有兩位很厲害的大神,都不是計科出身,反而是電子方向的。他們出于對編程的興趣,自學了Java(還有其他編程語言),最終成功加入了我們公司。目前看來,非專業背景,在實際工作中沒有給他們帶來任何困擾。

那么接下來,我們就聊聊,怎樣才能更好的自學Java。

從論壇上獲取最新信息

當你決定要自學java后,不妨多逛逛相關的論壇,貼吧。這樣做主要有兩個目的:

1 通過閱讀論壇上的信息,能夠補充自學過程中的遺漏。舉個例子,通過自學,你知道java里的常用隊列有ArrayList和LinkedList,但是這二者有什么區別,在什么場景適合使用呢,書里可能沒有說。而在論壇里,你會看到大家對此的討論,因此明白ArrayList是基于動態數組的,而linkedlist是基于鏈表的;此外前者讀寫快,后者增刪快等等。

這些,都是在面試中常見的問題,所以大家才會樂于在論壇上討論,對于完善你的知識體系,也是很有幫助的。

2 多多接觸樂于分享的答主,從而擴充自己的人際圈子。網上的答主也是很樂于得到別人的肯定的,在你來我往的帖子交流中,一些專業水平很高的答主很有可能注意到你,如果有機會能夠得到他們的推薦與指點,那么別說你的java水平能夠得到提升,甚至有可能加入他們所在的公司,一步到位解決了你的就業問題。

閱讀編程書籍

無論你是否選擇通過閱讀的方式來學習Java,Java工具書都是必不可少的,因為在實際工作中,也難免會遇到需要查閱書籍來確定問題的情況。

首先推薦Java書籍界的圣經《Thinking in Java》,中文版《JAVA編程思想》,也被我稱為立志成為java開發工程師的信仰之源。

這本書適合任何水平的java愛好者與從業者。它不僅深入淺出,從0基礎開始介紹java,更是著重培養讀者的獨立思考能力。它不是教你成為一個普通的碼農,而是將“匠人精神”的堅持也融合了進去。網上甚至有人稱呼這本書為JAVA界“上古卷軸”。這是一本可以反復閱讀,每次閱讀都會有新理解的書籍,早已經超越了工具書的范疇。如果能夠完整讀懂其中三分之一,相信你已經可以去任何公司面試JAVA開發工程師的職位了。

如果覺得上面的JAVA圣經有點難啃,那么我再推薦一本風格輕快的《head first java》,這是一個系列,還有其他《head first servlet》等等,以后如果想尋找其他語言的工具書的話,不妨試試關鍵字head first+語言名。

這本書里舉了很多的例子來幫助初學者理解java一些比較晦澀難懂的概念與名詞,語言也是十分幽默,不像其他大部頭一樣,讓人讀著讀著就想睡覺。里面還有一些實戰部分,如果能夠跟著做下來,真的是讓人受益匪淺。

市面上還有很多其他的java開發書籍,像什么七天學會java,十四天上手J2EE等等。個人對這類書籍持保留態度,各位看官可以根據自身情況,謹慎選擇。

學習免費的視頻資源

隨著互聯網的普及,越來越多的知識都可以通過網絡來獲取,這也降低了學習的門檻。

不妨在網易公開課,慕課網,牛客網,甚至是B站等網站上,尋找學習資源。畢竟只要輸入關鍵字,就能搜到其他人認真構思的課程與教案,同時免去了你為自己計劃學習進度與學習深度的工作。

在這個過程中,最好找到一個同行者,與你一同學習。這樣即可在有問題時互相溝通,也可互相督促,避免獨自學習產生懈怠感,拖慢甚至放棄學習。

以上是我推薦的自學java的方法,如果你覺得有點道理,或者從中收獲到了一點信息,請點個贊給我呀,如果有進一步的想法交流,歡迎在下面給我評論。

我是蘇蘇思量,頭像是我本人,來自BAT的java開發工程師,歡迎關注我,經常回答科技類的話題,與大家分享我的所見所想。

評論0 贊同0
  •  加載中...
wudengzan

wudengzan

回答于2022-06-28 14:34

<Java 學習路線圖全匯總>


很多小白學習Java沒有系統的規劃 ,學習內容很零散 , 這里推薦一套系統的學習視頻給你 , 這套視頻分六大階段,每一階段都逐漸加深,教程已經整理的非常完善,基本上按照此套流程,一階段,一階段學習來,肯定會入門,逆襲成為大牛。


第一階段 :


對應的Java基礎教程視頻


1、畢向東老師的java入門教程 : 視頻鏈接

2、小白的福音java入門教程 : 視頻鏈接

3、java快速入門教程 : 視頻鏈接


此三個教程異曲同工,內容知識點相差不大,可以只學習其中一個哦!



第二階段:



Java教程


(1)輕松掌握JavaWeb視頻教程


(2)5天玩轉mysql視頻教程


(3)超全面的JavaWeb視頻教程


(4)階段案例--JavaWeb網上圖書商城完整



第三階段



Java教程

(1)Hibernate5框架

(2)Struts2框架

(3)Spring框架

(4) Spring2.5視頻教程


第四階段


Java教程推薦:

(1) Springmvc由淺入深全套視頻教程

(2)Mybatis由淺入深全套視頻教程


第五階段



Java教程推薦:

(1)Java學科巴巴運動網視頻教程106集

(2)巴巴運動網續集視頻教程


以上就是Java學習路線圖的內容,具體配套視頻有需要的小伙伴可以找我,碼字不易,給自學的小伙伴提供一下學習路線 , 有用請點贊分享一下吧!

評論0 贊同0
  •  加載中...
mo0n1andin

mo0n1andin

回答于2022-06-28 14:34

1. 經典書籍要看,例如《Java權威指南卷一》,一定要堅持動手寫代碼,這樣可以學習和了解基本語法,另外就是面向對象思想。

2. 參與項目開發,真實的,網上經典練習的都可以,期間逐漸學習了解git,tomcat,mysql,redis這些項目中常用的技術。

3. 多線程,找一些并發編程的經典書籍,邊學邊實踐。

4. 了解一些虛擬機知識,對jdk/bin下面的jps,jmap,jstack,jstat熟練使用。

5. 了解,設計模式,算法,為深入研究某一領域做準備。

5. 深入學習某個技術,開始了解開源軟件的源碼,推薦spring,尤其是啟動和初始化的源碼。

6. 拓展視野,無線,云計算,大數據方面的知識,都可以去了解和動手,個人比較推薦的是容器化,例如docker,k8s。

7. 嘗試寫作,個人推薦將寫作的過程與極客時間的學習過程結合,只有感受到寫作的不容易,才能主動想到極客時間的大師們的知識儲備有多么全面,啟發思考“為什么我寫不出這樣的文章,我還差什么”,補全自己的短板。

8. 貫穿以上七個階段的,是堅持學習linux知識體系。

評論0 贊同0
  •  加載中...
wujl596

wujl596

回答于2022-06-28 14:34

個人意見,如果你沒有自學能力,請放棄選擇編程,這條路,不適合你。作為IT培訓從業者,我明確的告訴你,培訓機構也只是帶你快速入門,降低你轉行的時間成本及機會成本,如果你沒有做好終身學習的職業規劃,請繞道。


你問我為啥,那我就簡單粗暴的告訴你:在IT行業,尤其程序員,公司隨時可能有新項目,隨時需要學習新技術,學習新的編程語言,新框架。我們幫得了你一時,但幫不到你一輩子。

這和你問的培訓和自學,完全沒有沖突。如果你學習能力強,自律性高,完全可以不參加培訓自學入門。

優點:省錢;缺點:耗時長,不系統,容易鉆牛角尖。


培訓也需要自學,即使有一對一輔導,課后還是需要不斷的練習和思考,這點尤其重要,一個班的同學,一樣的老師,一樣的時間,最后的水平差距就在于個人的主觀能動性,所以培訓也需要主動學習,這就是我要表達的意思。優點:周期短,學習成體系,有老師及時答疑;

缺點:花錢,容易遇到坑。


最后,我想告訴你的是,去參加培訓之前,先自己在網上找資源試學一段時間,看看自己的興趣及能否堅持下來。至于培訓機構的選擇,最好去找度娘(不看培訓機構做的廣告,看口碑)。


希望以上回答能對你有所幫助

評論0 贊同0
  •  加載中...
trigkit4

trigkit4

回答于2022-06-28 14:34

如果你是一只編程小白,還是建議你找一個靠譜的學習機構。很多人都說自學,自學的要求其實是很高的,你要有相當好的自主力和自制力,枯燥的代碼,繁雜的程序邏輯最好有個人帶你入門。任何一種語言都是不斷在更新的,有了一定的學習方法是一大助力。

評論0 贊同0
  •  加載中...
darkbaby123

darkbaby123

回答于2022-06-28 14:34

類似的問題也回答過很多,其實我最早也是個Java小白,只在本科課堂上上過一門非常基礎的Java課程,沒多久就忘光了,直到研究生期間重拾Java,才開始真正的Java學習旅程。對于學習Java,我也經歷了很多個階段,一開始,我主要通過自己找視頻、找入門書籍的方式來學習Java,接著又通過做項目、參與實習工作等方式來鞏固自己的Java技能,研究生期間我開始系統地學習Java,主要通過看書、看博客、自己寫博客等方式逐漸熟悉Java這門語言,到最后終于符合了能拿到Java大廠offer的水平。所以題主也不必著急,學習Java是一條漫長的道路,需要花時間、精力,用心去慢慢學習。接下來還是分享一下我的一篇文章《Java工程師學習指南》本文將會更系統地總結學習Java的學習過程。在下是某985小碩,在2018年的校園招聘中拿到BAT頭條網易滴滴亞馬遜的offer。我用了兩年的時間從一個小白成長成為了能夠進入BAT的JAVA工程師,下面我也會分享一下我零基礎自學Java的心得體會和學習路線,一路走來也遇到很多困難,也踩了很多坑,同時我自己也探索了很多的學習方法,總結了很多心得體會,我寫過一個Java工程師學習指南,我把它分為了四個部分,第一步是打好Java基礎,掌握Java核心技術,第二步是掌握Java Web技術棧,能夠做一些項目,第三步是掌握Java方面的進階技術,包括網絡編程、并發編程、JVM等,第四步是掌握后端進階技術,比如分布式、緩存、消息隊列等技術。按照這樣的一個脈絡,我覺得能夠掌握這里面的絕大部分內容,并且有過相應的一些實踐,那么可以算是學好了Java。當然,學好Java只是一個開始,要真的干好活,做好項目,以及其他各方面的技術工作,則是在學好Java的基礎去延伸和展開的。

最近開了個微信公眾號【Java技術江湖】致力于分享Java技術文章,將會記錄我兩年時間里學習Java的經驗心得,以及在ucloud的技術之路,有興趣的朋友可以了解關注一下。

接下來就是具體的四篇文章,建議大家按順序閱讀,有點長,收藏的時候記得點贊或者評論哈。筆芯!Java工程師學習指南入門篇最近有很多小伙伴來問我,Java小白如何入門,如何安排學習路線,每一步應該怎么走比較好。原本我以為之前的幾篇文章已經可以解決大家的問題了,其實不然,因為我之前寫的文章都是站在Java后端的全局上進行思考和總結的,忽略了很多小白們的感受,而很多朋友都需要更加基礎,更加詳細的學習路線。所以,今天我們重新開一個新的專題,分別按照四篇文章講述Java的學習路線(分別是入門篇,初級篇,中級篇,高級篇),筆者也打算趁此機會,回憶一下自己的Java學習歷程。今天我們要講的是,小白同學如何入門Java。先聲明一點,文章內容不會詳細到每一步怎么操作,只會提供大致的思路和方向,給大家以啟發,如果真的要一步一步指導操作的話,那至少需要一本書的厚度啦。本文所述的方法不一定適合所有人,如有錯誤敬請諒解。01 前期準備工作開發環境搭建這一步我們往往會直接跳過,但既然是面向小白的教程,這里就提一下吧。首先你需要一臺電腦,然后安裝好JDK和JRE,JDK提供的是Java開發工具,也就是一些必備的jar包,JRE則是Java的運行環境組件,我們熟悉的JVM就在這里面。安裝好這兩個東東之后,一般還要配置一下環境變量,否則有一些目錄可能無法被正確找到。IDE選擇和安裝IDE指的就是本地開發編輯器,沒有了它,你就只能直接在記事本這類工具里敲代碼了。IDE最大的好處就是整合了大量的工具和功能模塊,讓你非常輕松地完成開發。以前大家都用eclipse,不過eclipse已經不流行了,現在我推薦你直接用intellij idea作為你的第一個代碼編輯器。如果是用過eclipse的同學,基本上也可以無痛切換。intellij idea可以直接在官網上下載,試用版30天,如果想要永久使用,網上也有一些辦法滴。關于jar包jar包是什么,其實就是將一堆class格式文件打包,Java中把它稱為jar包,這些jar包在編譯器中能被直接識別,讓開發者使用。對于新手來說,可能只需要用到JDK自帶的一些API,但是如果你要引用外部jar包,可能就會遇到一些困難了。對于idea來說,導入外部jar包有兩種辦法,一種是手動導入jar包,一種是使用maven。后者會在Java Web相關的文章中講起。手動導入jar包其實也不難,你需要先下載好jar包,然后在對應的項目下選擇導入jar包即可,具體的方法這里就不展開說了,因為在網上都找得到。02 學習Java基礎的幾種方法了解基礎語法學習一門語言,最開始要做的事情就是學習它的語法。我最早學習Java語法是在Runoob,這個網站可以讓你對任意一門語言完成最快速的語法入門,當然,這只是相當于你瀏覽了一遍基礎語法。想要真正掌握Java語言基礎,光看基礎語法還遠遠不夠,我在大三第一次接觸Java課程,聽老師講面向對象三大特征聽得一頭霧水,連數組的初始化方式都理不清楚,但這些內容都是我們需要掌握的。所以,為了學好Java基礎,我們還需要看視頻或者看書進行學習。看視頻視頻的話,可以到極客學院或者慕課網聽Java基礎課程,當然也可以看我分享的Java視頻課程。大家也都知道,現在Java的培訓班非常多,基本上學的東西也都大同小異,不過它們的有些課程還不錯,大家有渠道的話也可以去看一看。看視頻的好處是你可以更好地接收知識,同時也會耗費你更多實踐,所以,有時候你也可以選擇看書。看書看書的話,對于小白來說不推薦太復雜的書,比如《Java編程思想》這種書,新手千萬不要看。我個人建議,你只需要先看看《Java入門到精通》這種類型的書就足夠了,因為這個部分的學習只是為你后面的學習開個頭,你以后可能還要回過頭來重新研究這些內容。現在市面上介紹Java基礎的書籍實在太多了,質量參差不齊,內容同質化嚴重,筆者看過的其實也不多。給大家一個建議,你只需要挑一兩本書來看即可,這里推薦兩本最簡單的吧,《head first java》和《Java從入門到精通》。看博客這里再推薦另一種學習方式,就是看博客,博客比起書籍來說,更適合對于某個技術點的學習,你可以很容易地在網上找到這個知識點相關的原理,實現方法,以及代碼范例。我的博客里沒有講解特別基礎的東西,如果你看一些比較基礎的文章,可以到Runoob等網站上查看。如果你有一個很明確的知識點想要學習,相信搜搜引擎會給你更好的答案。代碼實踐除此之外,一般的Java書籍或者視頻課程都會要求你相應完成一些練習題,這部分內容你需要自己在電腦里使用IDE完成。在IDE里,你可以很好地熟悉Java語言的使用,基本代碼的實現,同時可以嘗試各種各樣的API,并且測試一些語言特性,比如繼承,封裝,多態等等。另外,這也是你熟悉IDE的一個好機會,因為在公司里做開發可能要用到IDE各種各樣的功能,提前熟悉好IDE絕對是有益無害的。03 Java入門必備知識點梳理在Java入門階段,你可能需要接觸到以下這部分知識,不管你是從通過哪種方式學習,這些內容都是你學習Java基礎時繞不過的重點。Java基礎知識這部分內容是你必須要掌握的內容,在入門階段你需要把這些基礎打扎實,以便于在學習后面的內容時可以更上一層樓。如何把基礎打扎實呢,最好的辦法就是在IDE上把書上或者視頻上的每個例子都實現一遍,當然有的時候你也可以自己寫一些有意思的例子。1 基本數據類型比如int,double,char,以及其包裝類。熟悉基本數據類型的使用,了解每種類型所占的字節數,以及它們和包裝類之間的相互轉換。2 流程控制比如for循環,if else,while循環等等如果是學過c語言的同學,這部分可以跳過了。3 字符串類型String的使用字符串類型是Java中很重要的類型,它不是基本數據類型,但卻很常用,熟悉和實踐String相關的api,開始你對字符串的學習吧。4 數組數組的初始化方式有哪些,二維數組應該怎么寫,把數組當成方法參數又該怎么處理?5 類和對象Java中最重要的兩個概念:類和對象,它們有什么用呢,有什么區別和聯系呢,請在代碼中實踐它們吧。Java核心技術對于這部分內容,我相信很多小白只能了解它們的基本使用方法,但是并不明白其背后的一些原理:比如為什么接口和抽象類有這些區別,多態的意義是什么,為什么要有反射。新手在學習這部分內容時,只需要知道怎么用就可以了。當然,你最好把這些特性都實現一遍,以加深印象。至于為什么有這些特性,這些特性背后的原理是什么,不是我們現在討論的內容,這些內容我們將在初級和中級篇中講述。因為,要了解這些原理,你得了解JVM,了解并發技術的基礎,了解網絡基礎,甚至更多。顯然,這不是你現在能做到的。1 接口和抽象類寫一些接口,同時寫一些實現類去實現這些接口,并且了解一下為什么我們需要接口,為什么子類需要實現接口里的方法。同理,去實現一些抽象類吧。然后,看看它和接口有什么不同。2 繼承,封裝和多態如何理解繼承,子類和父類之間有什么聯系呢。封裝是一種保護代碼的方式,有哪些方式可以實現封裝呢。多態一般分為重載和重寫,它們分別怎么使用?3 異常處理Java中的異常處理主要用于捕獲和處理錯誤,請你寫一些try catch代碼塊去捕獲錯誤吧。4 集合類集合類是我們經常需要打交道的東西,List,Map,Set等等,趕快去熟悉API,然后寫一些測試例子吧。5 IO輸入流和輸出流IO輸入流和輸出流可以操作文件,網絡數據等內容,如何在Java代碼中完成這么復雜的操作呢,其實只需要簡單的幾個api就可以了。6 多線程為了讓系統資源最合理地分配和調度,我們需要多線程,多線程會讓程序變得有趣,也會帶來很多問題,使用Thread和相關API,去嘗試這些有趣的事情吧。可選內容:1 反射(了解即可,不是入門必須)2 枚舉類型和泛型(了解即可,不是入門必須)3 網絡通信(了解基本的socket使用即可,需要網絡基礎)4 數據庫操作(了解基本的JDBC即可,需要數據庫基礎)04 總結總而言之,對于一個Java小白來說,入門Java可以分為這幾步:
1 首先搭建好Java開發環境 2 通過Runoob等一些網站熟悉Java的基本語法 3 通過看書看視頻等方式熟悉Java基礎知識,通過代碼實踐加深理解 4 通過看書看視頻等方式初步了解Java核心技術,通過代碼實踐加深理解。
本文主要是為大家提供一個學習的思路,以及推薦一些學習方法,如果你能夠按照這樣的步驟去學習,并且配合上一些適合你自己的學習方法來完成學習計劃,相信你可以很好地完成對Java的入門。Java工程師學習指南初級篇最近有很多小伙伴來問我,Java小白如何入門,如何安排學習路線,每一步應該怎么走比較好。原本我以為之前的幾篇文章已經可以解決大家的問題了,其實不然,因為我之前寫的文章都是站在Java后端的全局上進行思考和總結的,忽略了很多小白們的感受,而很多朋友都需要更加基礎,更加詳細的學習路線。所以,今天我們重新開一個新的專題,分別按照四篇文章講述Java的學習路線(分別是入門篇,初級篇,中級篇,高級篇),筆者也打算趁此機會,回憶一下自己的Java學習歷程。今天我們要講的是,小白同學如何入門Java。先聲明一點,文章內容不會詳細到每一步怎么操作,只會提供大致的思路和方向,給大家以啟發,如果真的要一步一步指導操作的話,那至少需要一本書的厚度啦。本文所述的方法不一定適合所有人,如有錯誤敬請諒解。01 Java Web項目指南jav在上一篇文章中,我們講到了入門Java的幾個步驟,先搭建好環境,然后熟悉基本語法,接著熟悉Java的一些核心技術,并且在代碼中進行實現。如果你已經完成了這部分內容的學習,應該會感覺自己對Java已經有一定了解了,可以輕松地寫出一些Java代碼,比如實現多線程輸出數字,再如操作IO流等等。當然,這些代碼通常只是一些demo,我們在實際的項目中可能并不會這么簡單地使用這些技術,我們可能會同時使用集合類,多線程,以及操作數據庫的API。所以,在今天的初級篇中,我們就來談談怎么做項目吧。Java Web項目對于大部分Java新手來說,最適合他們入門的項目就是Java Web了。因為Java天然適合做Web應用,并且生態完善,更有很多開源的工具和框架去支撐這些應用,比如Spring,Hibernate,SpringMVC等等。那么,如何開始著手做一個Java Web項目呢。個人認為最好的方式就是看視頻了。因為,看書的話,很多內容比較過時,并且一般不會提供源代碼。也有一些大佬喜歡推薦開源的項目(在GitHub上面的項目),但是對于小白來說,如果沒有很完整的文檔去指導他們,那也是毫無意義的。曾幾何時,Java Web的項目還在使用JSP + Servlet進行開發,后來出現了Struts2,再后來,出現了我們現在也一直在用的SpringMVC,說實話,不論使用哪種開發框架,你都需要先花一些時間去學習相關的技術,否則你會發現,即使是看視頻,你也不知道里面在講什么。要想做好一個JavaWeb項目,你不僅需要一個好的項目課程,還需要足夠的知識儲備,下面就讓我們來理一理這些內容把。知識儲備Java基礎部分的內容咱們上次說過了,這里就不再重復啦~下面我們分別來說說其他幾方面的知識儲備把02 前端知識推薦資源:在w3cschool學習html,css和js,支持在線測試代碼。既然是做Web,就難免要涉及到前端技術,不過,現在前后端分離已經是一種趨勢,所以,如果你對前端不感興趣,也沒必要花太多時間去學習。對于大部分同學來說,你最好要了解html的基本標簽和格式,自己能夠寫一些簡單頁面,CSS的話,也可以稍微接觸一些。相對于前面兩個服務于樣式的技術,我們倒是更應該去學習一下JavaScript,了解它的一些基本語法,以及ajax的使用,因為在前后端交互時,ajax是非常重要的。所以,做一個Java Web項目,你不需要花太多時間在寫前端頁面上,如果有源代碼可以直接使用,當然,對于一些需要修改的前端頁面,你得怎么去做修改它,因為有時候你需要使用JSP,JSP既包括前端代碼也包括Java代碼,如果你完全看不懂前端代碼的話,那就很尷尬了。03 Java Web常用技術JavaWeb的技術棧其實比較龐大,所以我們不要求面面俱到,只是希望你能夠熟悉一下項目中可能用到的技術。下面列舉一些常見的技術,大家最好要了解一下。1 JSP和Servlet推薦資源:《JavaWeb入門到精通》,慕課網、極客學院等網站上的JavaWeb基礎課程這是Java Web開發最原始的形態,現在很少直接使用了,但是后來的各種框架其實也是建立在servlet之上來做的。你們需要了解這兩個技術分別是用來干什么的,最好能寫一些demo來實踐。對于JSP,有時候你可能還要學習jstl等標簽語言,因為這些標簽可以讓你更方便地往JSP中插入Java代碼。2 Spring和SpringMVC推薦資源:《Spring實戰》,慕課網、極客學院等網站上的SpringMVC基礎課程。事實上,除了上述資源之外,你也可以直接到官網上查看快速開始文檔。Struts2早已被時代拋棄,Spring則是當今的霸主,你需要了解Spring如何使用,以及SpringMVC如何使用,并且學會在項目中使用它。由于SpringBoot最近很火,并且搭建方式比SpringMVC更簡單,你也可以先學習SpringBoot,以便更快速地搭建起你的第一個Java Web項目。3 MySQL推薦資源:《Sql必知必會》,Runoob上的MySQL基礎教程,慕課網、極客學院等網站上的視頻課程一個JavaWeb應用一定要有數據啊,所以我們需要用到數據庫,其實搭一個mysql數據庫是非常簡單的,但是對于初學者來說最麻煩的就是寫sql了,所以,先學會建表,熟悉sql,對你以后做項目也是大有裨益的。4 Hibernate和Mybatis推薦資源:Runoob上的Hibernate和Mybatis基礎教程,慕課網、極客學院等網站上的視頻課程當你學會了使用sql去查詢數據,可能還不足以讓你在項目中很方便地處理數據,因為我們還需要一個步驟,就是把數據庫的數據轉化成Java里的對象。orm框架就是為了解決這一問題而出現的,它可以讓一張表和Java類一一對應,讓數據查詢變得非常方便。Hibernate和Mybatis都是orm框架,只不過現在mybatis越來越火了。所以,你需要了解這一技術,因為它會廣泛地運用到大部分Java Web項目中。5 Maven推薦資源:《maven實戰》,易百教程里的maven教程,慕課網、極客學院等網站上的視頻課程剛才咱們已經說過了Spring,orm框架,以及MySQL等方面的技術了。實際上,一個簡單的Java Web項目也只需要這些東西了。但是,有一個問題,就是:一個項目里用到這么多技術,所需要的jar包也會很多,我們如何管理這些jar包呢。如果直接導入所需jar包,那當jar包更新或者需要替換時,每次都要手動操作,非常麻煩。另外,當jar包很多時,項目打包后的war格式文件也會很大,不利于傳輸。為了解決上述問題,maven應運而生了。maven通過pom.xml文件來指定所需的jar包,并且自帶了很多構建相關的功能,比如編譯,打包,運行單元測試等等,因為它本身就是一個構建工具。當然,新手可能還難以理解這些概念,你必須要知道的是,大部分Java Web項目需要用maven來管理,你需要學會maven的基本用法,最基本的用法就是:學會修改pom.xml文件。6 Tomcat推薦資源:慕課網、極客學院等網站上的視頻課程。對于小白來說,Tomcat相關的技術是非常復雜的,畢竟它是一個應用服務器啊,事實上這個時候,你只需要學會如何安裝Tomcat即可。畢竟,它在項目中的作用就是提供一個運行環境而已。正常來說,你只要下載解壓Tomcat的壓縮包即可。由于現在的IDE都支持集成Tomcat,所以一般情況下你都可以在IDE中配置好你的Tomcat路徑,然后設置好你的項目路徑,IDE會自動把你的工程代碼部署到Tomcat服務器上。如果你使用想跳過IDE直接部署工程到Tomcat上,也可以直接編譯工程并且打包得到war格式的文件(這個步驟可以使用maven來完成),然后拷貝war文件到Tomcat下的特定目錄即可。上述兩種部署方式的詳細步驟請到搜索引擎尋找答案。7 Git和GitHub推薦資源:廖雪峰的Git教程,GitHub官網,慕課網、極客學院等網站上的視頻課程。既然要做項目,為什么不把它發布在GitHub上。當你熟悉了Git指令之后,你可以很方便地發布你項目中的每一次更新,并且同步到GitHub上,這樣既可以讓你更好地管理項目版本,又可以讓你GitHub更加活躍,為你未來的面試加分。所以,趕緊學好Git指令,然后開啟你的項目之旅吧。04 其他常用組件除了上面幾種必備的技術之外,有時候我們在項目中還會用到其他東西,在這里我們把它們叫做組件。這里只做簡單的介紹,至于具體怎么使用,在網上都可以很容易地找到相關文章。1 日志系統當項目代碼比較多的時候,容易發生錯誤,日志可以很好地記錄代碼運行時的錯誤,常用的日志系統有log4j,logging等等,另外你還需要了解一下slf4j。2 單元測試日志系統可以記錄代碼問題,單元測試則是為了避免代碼出錯,常用的單元測試組件主要是JUnit,建議你找個文檔看一看,然后下載下來玩一下。3 JSONJSON逐漸成為前后端數據交互的標準格式,為了在項目中使用JSON的API,你也需要導入它的jar包,一般我們都會使用ucloud提供的fastjson,趕快下載來玩一玩吧。當然,常用的Java Web組件還有很多,比如HTTPClient,再比如一些加密工具,一些壓縮工具等等,這里就不再一一列舉了。05 推薦項目課程現在網上的項目課程那么多,哪一款更適合你呢?其實我看過的視頻課程也不是很多,早先在慕課網和極客學院看過一些項目課程,覺得比較一般,對新手來說不太友好。我的一些同學看過一些培訓機構的課程,專業講師錄的項目課程可能會稍微好一點。在我公眾號后臺回復“Java”可以領取某機構的視頻課程,不過我不是打廣告的,這個機構也沒有給我錢啦。當然,你也可以自己去找一些你感興趣的項目課程,后續我也會收集更多的視頻課程來分享給大家。PS:如果找不到我說的這些資源,也可以微信私我。老規矩,公眾號后臺回復“少俠”可以勾搭作者。06 總結今天的內容就到這里了,與其說是初級篇,反而更像是“項目篇”呢。因為學完基礎內容之后,做項目是最好的復習和實踐方式了。所以這篇文章圍繞著做項目來展開,也就不足為奇了。今天我們主要講的是,做好一個JavaWeb項目,需要哪些知識儲備,需要了解哪些技術,并且我也推薦一些比較精品的視頻課程。后面我還會寫一篇文章,專門講一講怎么做項目,會更加詳細,更加側重怎么去做,敬請期待吧。總結以下今天說的幾個要點吧:
1 Java基礎知識儲備 2 前端知識儲備 3 了解和使用JavaWeb常用技術 4 JavaWeb常用組件介紹 5 視頻課程推薦
俗話說的好,磨刀不誤砍柴工,相信你看了本文之后,可以更好地做好知識儲備,然后開始Java Web的項目實踐,希望你能夠順利地完成你的第一個項目。▼更多精彩內容想了解Java后端學習路線?你只需要這一張圖!Java工程師修煉之路(校招總結)你不可錯過的Java學習資源清單Java基礎知識點總結Java秋招面經大合集筆者在今年秋招中成功拿到BAT頭條網易等大廠的研發offer,期間總結了很多經驗和技巧,我把它們寫成文字,做成專題,發表在公眾號上,希望讓更多有需要的朋友看到。關注微信公眾號【程序員江湖】后,可以在后臺回復“Java”即可領取精品Java學習資源(不斷更新中),學習資源包括基礎,實戰以及求職等內容。1、后臺回復“少俠”,可以獲取我的微信,有什么問題都能聊。 2、如果你想要加入微信交流群,那么可以在后臺回復“江湖”。 3、如果你想要到我的技術博客看更多的Java后端技術文章,請回復“練級”。Java工程師學習指南中級篇最近有很多小伙伴來問我,Java小白如何入門,如何安排學習路線,每一步應該怎么走比較好。原本我以為之前的幾篇文章已經可以解決大家的問題了,其實不然,因為我寫的文章都是站在Java后端的全局上進行思考和總結的,忽略了很多小白們的感受,而很多朋友都需要更加基礎,更加詳細的學習路線。所以,今天我們重新開一個新的專題,分別按照四個部分講述Java的學習路線,筆者也打算趁此機會,回憶一下自己的Java學習歷程。今天我們要講的是第三部分,Java工程師學習指南(中級篇)。先聲明一點,文章里面不會詳細到每一步怎么操作,只會提供大致的思路和方向,給大家以啟發,如果真的要一步一步指導操作的話,那至少需要一本書的厚度啦。當然,本文提到的大部分內容都能在我的博客中找到對應的一些文章。所以也歡迎大家去我博客找到你們需要的資源。本文中的方法不一定適合所有人,如有錯誤還請諒解。上期回顧在上一篇文章中,我們主要討論的是如何做一個Java Web項目,以及前期需要哪些方面的基礎。最后,我還推薦了幾個比較不錯的視頻課程,以便給大家參考。當然,跟著視頻課程做完一個項目,你只是照葫蘆畫瓢又練習了一遍,可能其中有很多東西你并不太理解,比如你可能不知道為什么代碼要分層,為什么要用maven進行線上編譯,為什么Tomcat啟動時會輸出那么多的日志。有疑問很正常,因為一個Java Web項目涉及的技術還是很多的,如果要理解這些技術的原理,光靠一個項目課程是遠遠不夠的。所以,在你體驗了Java Web項目的開發流程以后,你應該花些時間去了解相關技術原理了,今天我們要講的也是這部分內容。對于即將參加校招的同學來說,最重要的也是這部分內容,你需要了解JVM虛擬機原理,Java并發原理,并且熟悉JDK的部分源碼,了解這些API的底層實現。除此之外,還有很多,下面我們分別來談一談。PS:文中多次提到我的博客,是因為我的博客里整理了多個技術專欄,基本上包含了下面所說的內容。關注公眾號后,在公眾號后臺回復“練級”即可獲得我的技術博客地址,以及其他相關的資源。01 計算機基礎知識計算機基礎課程(非科班)如果你不是計算機專業的同學,那你可能要注意一下了。在學習下面這些內容之前,你最好要學習一下計算機基礎課程。這里我們說的計算機課程是:數據結構,操作系統,計算機網絡。數據結構:這門課應該算是三門課程比較簡單的一門了,推薦《數據結構與算法(Java語言描述)》,看書結合代碼實踐,把基本的數據結構算法寫一寫就可以了。操作系統:關于操作系統我看了很多本書,但是沒有感覺特別好的,所以如果有時間的話可以先看另外一本書《深入理解計算機系統》,這本書講了很多計算機的基本概念,不局限于操作系統。然后可以看一看湯小丹寫的《操作系統》,或者你們學校的教材。計算機網絡:網絡方面的書也非常多,推薦看一下《計算機網絡:自頂向下方法》,另外還有一本《TCP/IP 詳解:卷一》也是備受推崇的書。除此之外,我還要推薦一下劉欣老師的書《碼農翻身》,書中用一些有趣的故事來講解操作系統和計算網絡的一些復雜概念,有助于大家理解這部分內容。02 JVM虛擬機JVM虛擬機為什么把JVM放在第一位,因為它是最基礎也最重要的一塊內容。所有的Java代碼都運行在JVM上,事實上,JVM在操作系統中只是一個進程。為了了解Java代碼的運行方式,底層引擎的執行原理,以及內存的分配情況,我們必須要學習JVM虛擬機。推薦資源:《深入理解JVM虛擬機》很高興地告訴你們,學習JVM你只需要把這本書吃透即可,當然,看一遍可不夠,筆者前后至少看了三遍,有條件的話最好把書中的實例都跑一跑。另外,JVM也是面試必考的內容,所以,相應地去準備一些面試題也是很有必要的,如果你基本掌握了這本書的內容,相信你不會懼怕任何JVM面試題。03 設計模式與源碼閱讀設計模式為什么在這里提到設計模式呢,因為設計模式是Java編程規范的經典總結,并且在JDK源碼中經常使用,由于我們后面會講到JDK源碼方面的學習,所以對于設計模式,建議大家先學習一下,最好的學習方式就是看書結合實踐,把一些常用的設計模式自己實現一下。推薦資源:《head first 設計模式》JDK源碼(主要指集合類源碼)接下來下場的選手是:JDK源碼。不過對于大部分人來說,只要能夠掌握集合類,字符串這些源碼就可以了,其他部分的源碼主要集中在JUC并發包里,而這些內容我們會放在Java并發技術里來講。為什么我們需要掌握集合類源碼呢,其一是因為面試喜歡考,其二是因為集合類的源碼實現都比較經典,難度也不算太大,并且運用了很多優化方法,所以了解它對于學習Java的同學來說大有裨益。推薦資源市面上并沒有哪本書專門來講JDK源碼的,所以這部分內容的學習資源主要是兩個部分,一是JDK源碼本身,而是一些技術博客。1 對于JDK源碼,直接看可能比較有難度,不推薦新手這么做。 2 講解源碼的文章質量參差不齊,所以我只推薦幾個我自己比較熟悉的,一個是importnew。一個是我的博客。另外,我之前分享的一篇文章《你不可錯過的Java學習資源》中也推薦了很多大牛和博客,大家也可以去看看。Spring源碼說實話,Spring源碼的復雜度遠高于集合類的源碼,這也是因為Spring運用了很多的設計模式,并且有著非常繁雜的類關系。所以,我不建議大家直接去讀Spring源碼,因為即使是看Spring源碼解析的書籍,你也會感到很吃力。所以,我推薦的方式是,看書+看一些比較好的源碼解析文章。另外要告訴大家的是,Spring的源碼很多,并不是所有內容都需要你掌握的,大家都知道Spring最常用的特性就是IOC和AOP,所以看源碼解析時,最重要的也是這兩個部分了。另外,看完Spring的源碼解析以后,別忘了看SpringMVC的源碼解析,學習方法也是一樣的,找重點內容看即可。推薦資源:《Spring源碼深度》,我的博客專欄04 Java并發技術Java并發技術相信你為了搞定集合類源碼和Spring源碼花了不少功夫了,接下來輪到Java并發技術出場了。我們在入門篇其實已經談到了多線程,但是也僅僅停留在使用Thread或者Runnable實現簡單的多線程demo。實際上,為了理解Java并發技術的底層實現,我們還需要知道JMM模型,了解synchronized和volatile的底層實現,同時還要明白Java中的多線程和操作系統的多線程和什么聯系和區別。除此之外,我們經常談到的線程安全,有哪些實現方法,也是這部分內容的要點。學習并發技術,我建議分為三個步驟
1 首先熟悉Java的多線程基礎知識,比如Thread的使用,線程的狀態轉換,以及一些api的使用方式。 2 了解一些理論基礎,比如JMM,操作系統的多線程實現。這部分內容推薦通過看書和看博客來學習。 3 了解并使用JUC的一些API,然后開始看JUC的一些源代碼。這個階段是最重要也是最困難的。
推薦資源: 書籍:《Java并發編程藝術》,《Java并發編程實戰》 網站:我的博客專欄,并發編程網,importnew,《你不可錯過的Java學習資源》05 Java網絡編程Java網絡編程在搞懂Java并發編程技術之后,相信這部分內容也難不倒你。當然,前提是你對計算機網絡有一定了解,因為網絡編程涉及到TCP和HTTP相關的知識點。在學習這部分內容的時候,你首先要了解socket的使用以及原理,然后再去了解NIO的相關API,多寫一些客戶端和服務端通訊的demo,以便熟悉這些內容。為了更好地理解網絡編程,你還要去了解UNIX網絡編程模型。除此之外,如果你想要更好地理解Java網絡編程,你還需要去了解Tomcat的實現原理。同時,Netty也是值得你去學習的一部分內容,最好有機會去用一用這一網絡編程框架,學有余力的同學還可以考慮看看它的源碼(筆者沒有看)。推薦資源:我的技術博客,《Java網絡編程》,《你不可錯過的Java學習資源》05 Java8Java的版本一直在更新,但目前在用的主要還是Java8和Java7,等再過幾年可能這部分的內容就過時了。但是目前看來,對Java8的學習和了解還是很重要的,畢竟面試也喜歡考。對這部分內容學習的最好方式就是:看文章+代碼實踐推薦資源:《Java8實戰》06 總結今天的內容貌似有點多,大家會不會感覺有點吃不消呢。沒關系,因為這部分內容確實需要花很多時間去學習。對于一個在校的Java學習者來說,可能沒有機會接觸到多么高大上的項目,所以對內功的修煉顯得格外重要。看書,寫demo,讀源碼,看似簡單的事情實際上需要花費大量時間和精力,這個過程是需要你靜下心來,慢慢沉淀的,在學習的過程中你也可以和筆者一樣,寫一些總結和博客,以便更好地回顧自己的學習歷程。總結以下今天所講的內容吧:
1 計算機基礎課程:數據結構,網絡和操作系統 2 JVM基本原理 3 設計模式,JDK源碼,Spring源碼 4 Java并發技術,JUC源碼 5 Java網絡編程 6 Java8
關注微信公眾號【程序員江湖】后,可以在后臺回復“資料”即可領取3T精品學習資源(不斷更新中),學習資源包括基礎,實戰以及求職等內容。1、后臺回復“少俠”,可以獲取我的微信,有什么問題都能聊。 2、如果你想要加入微信交流群,那么可以在后臺回復“江湖”。 3、如果你想要到我的技術博客看更多的Java后端技術文章,請回復“練級”。
評論0 贊同0
  •  加載中...
lufficc

lufficc

回答于2022-06-28 14:34

我要死了,給孩子留遺言,猜我會留什么?只一句話:Repetition is the mother of all learning. 重復是學習之母。他們將來長大,學知識,技巧、愛情、事業、交流....倘若不怕重復,不怕犯錯誤,那就大有希望靠近幸福了。


給你推薦一個Java的學習路徑,核心是動手實戰,策略是重復練習。從Java基礎、JDK、JDBC、正則表達式等基礎開始,進階到 J2SE 和 SSH 框架學習。通過使用 Java 語言實現日記本,個人相冊、編輯器、通訊錄等,實踐 Java 編程基礎,SSH 項目實戰以及Java Web 應用開發。


吐槽一下:頭條不能插入外鏈這一點真是讓人下體疼啊....以下練習教程鏈接大家可以在實驗樓微信公眾號(實驗樓)回復關鍵字“Java路徑”直接獲取到,不需要任何別的操作。


JAVA基礎

  1. Java編程語言(新版

2. Java進階之設計模式

3. JDK 核心 API

4. MySQL 基礎課程

5. 正則表達式基礎

6. JDBC 入門教程

J2SE & SSH框架

7. Java 函數式編程

8. J2SE網絡通信實踐

9. Struts框架教程

10. Hibernate框架教程

11. Spring框架入門教程(新版)

12. MyBatis 框架基礎入門

13. Spring MVC 簡易教程

基礎項目

  1. Java開發簡單的計算器

使用 Java 語言完成一個簡單的計算器。將使用到 Java Swing 圖形組件等等。帶你深入學習如何制作 Swing 圖形化界面以及為 UI 組件設置事件響應邏輯。


2. Java 實現日記軟件

做一個簡單的 Java 日記軟件,可以實現用戶的注冊、登錄以及對日記的各種操作。同學們可以用自己做出的日記軟件來記錄自己的生活。涉及了包括 Swing 界面編程、文件和IO流操作、JDOM 解析 XML 文檔等方面的知識點。


3. Java實現在線協作文檔編輯

多人在線協作文檔編輯器是一個很常用的功能,適合小組內的文檔編輯;使用java編寫代碼,應用非常流行的spring mvc框架,引入ckeditor插件,并加入localStorage緩存技術,最終利用Eclipse完成。非常適合Java學習者用于練手。


4. 自己的Java編輯器

使用 Eclipse 開發,配合 Java 語言完成一個 Java 編輯器。它的主要功能:1、Java代碼的編輯 2、編譯及運行Java程序。


5. SSM 框架整合實例

SSM(Spring+Spring MVC+MyBatis)是媲美于 SSH 框架的輕量級 Java EE 框架。


6. Java 編寫數獨計算器

使用Java實現數獨游戲的核心算法,在感受數獨的魅力中通過Java編寫桌面程序完成數獨計算器,完成對Java基礎知識點的學習和鞏固。


7. Java實現簡單的支付平臺業務流程

模擬支付平臺上買家付款到支付平臺,賣家從支付平臺取款的簡單業務流程,最終結果以控制臺輸出形式展現。通過此流程,詳細了解 Java 線程與同步。


8. 基于 Servlet 的簡單驗證碼圖片生成

通過在后臺的 Servlet 生成驗證碼圖片,傳遞到前臺 HTML 頁面展示。通過本教程的練習可以進一步熟悉 Servlet、Random 函數、StringBuffer 、OutputStream 等等,掌握基礎的驗證碼生成。


9. SSM + easyUI 搭建簡易的人事管理系統

SSM(Spring + Spring MVC + MyBatis)框架是媲美于 SSH 框架的輕量級 Java EE 框架。easyUI 是一組基于 jQuery 的 UI 插件集合體,它的目標就是幫助 web 開發者更輕松的打造出功能豐富并且美觀的 UI 界面。


好啦就先上這些吧,要是有幫助的話,后面就再更新。希望你學習進步。

評論0 贊同0
  •  加載中...

相關問題

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<