自學java?
你可以在各種網上學院自己學習Java甚至其他技術領域 推薦你來阿里雲大學學習 裡面有最全面的Java 從零基礎開始,還有學前自測試題可以讓你清楚本身已經掌握的知識 連結:(
https://edu。aliyun。com/roadmap/java?utm_content=g_1000055355
)下面在給你附帶一張Java學習路線圖:
“這是一篇完整的java程式設計師學習線路圖,一共分為六個階段。
我以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(效能分析和調優)等
優知學院是IT人的進階站,提供系統的網際網路產品&技術的入門指南以及進階乾貨。
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教程入門
目前有幾個階段還未有影片更新,有影片了我會繼續上傳哦!如果有特別想要我放出的影片,也可以留言噠!
學習 JavaSE
HTML+CSS
js+jQuery
學習JavaEE:jsp+servlet
資料庫:MySQL+Oracle(建議先學MySQL)
框架SSH(Struts2+Spring+Hibernate)
SSM(Spring+SpringMVC+mybatis)
大致就是這些了,相信小夥伴們學完這些,學習能力已經有了很大的提升,即使在以後的 Java 工作學習中,遇到自己沒有接觸過的新技術。也可以透過自己的努力,把新的技術學到手。
在這份學習路線中,第一階段的 JavaSE 和 第二階段的 HTML+CSS+JS 順序是可以顛倒的,因為兩者並沒有什麼必然的前置關係。
最後說一句:
我們生活在黃金年代,社會在快速的發展,你不想被淘汰,就要學習,而我們北大青鳥提供最新的知識,以幫你應對變化的世界,讓你與時俱進。
很多新手在學習Java時,遇到第一個問題可能就是安裝jdk後,在電腦上配置環境變數。配置環境變數的確有些難度,如果你在這裡遇到問題,可以私信我
自學Java肯定要上網找一些Java教程。小編就找了很多影片,發現Java影片教程好壞分差很大。有些教程只是講解一部分知識,有些教程講解內容的門檻較高,不適合初學Java的童鞋。小編建議看看
下載API文件,並經常看看它。雖然對很多初學Java的人來說,API文件有些天書的感覺,但是如果我們慢慢去了解的話,還是可以入門的。另外,任何一個Java程式猿必然離不開API文件,所以,還是接受它吧。
自學Java,一定不能手懶,不僅要去學習,還要自己去實踐,只有自己去實踐了,才能有程式碼感,才能真正理解包、類、方法、變數還有一些關鍵字的內在意義。所以,應該邊學邊自己動手寫程式碼。
自學Java,更應該想明白為什麼要學習Java。對於非專業的人來說,學習一門程式語言是很難的,所以我們更應該想清楚為什麼要學習Java,更早的確定自己的目標,這樣,我們才不會漫無目的,才有前進的動力。
類似的問題也回答過很多,其實我最早也是個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的經驗心得,以及在阿里的技術之路,有興趣的朋友可以瞭解關注一下。
接下來就是具體的四篇文章,建議大家按順序閱讀,有點長,收藏的時候記得點贊或者評論哈。筆芯!
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 JSON
JSON逐漸成為前後端資料互動的標準格式,為了在專案中使用JSON的API,你也需要匯入它的jar包,一般我們都會使用阿里提供的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 Java8
Java的版本一直在更新,但目前在用的主要還是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後端技術文章,請回復“練級”。
學習java貴在堅持,更要有目標,下面分享給你的這個學習路線圖是2019年最新的學習路線圖。
這個學習線路圖我分為了幾個階段,每個階段能學到什麼,能做什麼,具體知識點請往下看,每個階段知識點我都整理出來了,更適合學習!
基礎篇
1。java基礎入門
本套java基礎入門教程包含四個重點知識點,全套免費影片教程。
知識點:
環境搭建:(重點掌握)
常用DOS命令及快捷鍵、EditPlus的安裝、通用文字編輯快捷鍵、安裝JDK、第一個Java程式的開發、Java註釋、public class和class的區別。
基礎語法:(重點與理解)
重點:變數、方法初步、運算子、資料型別、控制語句。
理解:識別符號、關鍵字、字面量、方法過載/overload、方法執行是的記憶體變化、package與import。(方法過載/overload、方法遞迴、package與import裡也包含重點)
IntelliJ IDEA工具的使用(重點)
陣列初步:(重點與理解)
重點:一堆陣列、可變長引數、二堆陣列。
理解:陣列資料結構詳解、演算法。
十一天階段練習題
網盤連結:
連結:https://pan。baidu。com/s/1vf4ktCOO96_CTgnPInBCSg
提取碼:u6ll
2。javase
本套javaSE進階影片教程包含八個知識點,全套影片教程免費
面向物件:(重點)
類的定義、物件的建立和使用、構造方法、當例項變數是一個引用的時候、封裝性、this關鍵字、方法呼叫時引數的傳遞、空指標異常、累的繼承、多型、final關鍵字、內部類……
陣列高階特性:(重點)
陣列複製及擴容、陣列工具類Arrays的應用。
常用類:(重點及理解)
重點:
String、StringBuilder StringBuffer、Integer、Date。
掌握:
BigDecimal、列舉型別、隨機數Random
集合:(重點及理解)
重點:
UML演示Collection繼承結構圖、Collection介面常用方法、Collection的通用迭代、UML演示Map繼承結構圖、Map介面中常用方法、Hashtable集合的子類Properties、TreeMap集合、泛型、Collections集合工具類。
理解:
集合概述、List集合、HashMap集合、HashMap、Hashtable、ConcurrentHashMap的區別、增強for迴圈。
反射機制:(重點及理解)
重點:
獲取Class的三種方式、透過反射機制呼叫無引數構造方法建立物件、類載入。
理解:
透過反射機制訪問物件的Field、透過反射機制呼叫物件的Method。
Annotation:(重點及理解)
重點:
JDK內建註解:@Override、總結註解在開發中有什麼作用。
理解:
自定義註解、反射機制讀取註解。
異常:(重點及理解)
重點:
異常繼承結構圖、處理異常、finally語句塊、final、finalize、finally有什麼區別、異常在實際開發中的作用。
理解:
異常概述、方法覆蓋與異常。
Java新特性:(重點及理解)
Java7特性重點:
switch支援String、泛型自動型別推斷
理解:可catch多個異常,異常之間使用“|”分隔
Java8特性重點:Lambda表示式、介面中的預設方法和靜態方法、新的Date API。
javaweb前端
本套Web前端的知識點包含六個部分
javaSE:(重點及理解)
重點:
IO流、多執行緒以及執行緒的同步面試題。
理解:
NIO、網路程式設計。
MySQL:(重點及理解)
重點:
登入MySQL、基本命令、初始化測試資料、簡單查詢、條件查詢、排序操作、分組函式、分組查詢、單表DQL總結、連結查詢、子查詢、union&union all、limit、表、事務、檢視、DBA命令、資料庫設計三正規化、34道SQL作業題。
理解:
MySQL安裝與完美解除安裝、DBMS、SQL、DB、表的概述、SQL的分類、常用命令、資料處理函式、儲存引擎、索引。
JDBC:(重點及理解)
重點:
JDBC程式設計六步、使用Statement完成增刪改、連線資料庫的資訊在屬性資原始檔中配置、安裝PowerDesigner工具,設計使用者表、Statement和PreparedStatement區別、PreparedStatement演示增刪改、PreparedStatement演示模糊查詢、JDBC事務、悲觀鎖for update和for update nowait、java。util。Date和java。sql。Date的區別與相互轉換、封裝DBUtil工具類。
理解:
介面在開發中的作用、驅動配置、Statement演示登入時的SQL注入問題、PreparedStatement解決SQL注入。
HTML:(重點及連結)
重點:
第一個HTML、實體符號、表格、圖片、超連結、列表、表單、HTML中元素的id屬性、div和span。
理解:
HTML概述、基本標籤、背景顏色和背景圖片。
CSS:(重點及理解)
重點:
HTML中嵌入CSS樣式的三種方式、邊框、隱藏、字型、文字裝飾、列表、設定滑鼠懸停效果、內邊距和外邊距、佈局float、定位、滑鼠小手。
理解:
CSS的理解。
JavaScript:(重點及理解)
重點:
嵌入JS三種方式以及JS的註釋、變數、null NaN undefined區別、JS中的事件、JS運算子之void、JS內建物件、DOM程式設計案例、BOM程式設計案例、JSON物件、總結一下瀏覽器向伺服器傳送請求的常見方式。
理解:
JavaScript概述、JavaScript包括三塊:ECMAScript、DOM、BOM、識別符號和關鍵字、JS資料型別(ES6版本之前的資料型別有6種 重點)、JS之控制語句、BOM和DOM的區別與聯絡。
JavaWeb:
本階段影片教程包含八個知識點——全套影片教程免費
XML:(重點及理解)
重點:
XML概述:(XML在實際開發中的作用、XML和JSON的對比)、Java解析XML:(dom4j+xpath解析XML)
理解:
XML概述、XML解析、Java解析XML
Servlet:(重點及理解)
重點:
tomcat伺服器安裝與配置、開發第一個Servlet程式、單例項多執行緒環境下執行的Servlet、HTTP協議詳解、ServletContext、HttpServletRequest、HttpServletResponse、web開發中亂碼的解決方案、Cookie、HttpSession、轉發與重定向、Filter、案例
理解:
系統結構概論、Servlet物件生命週期、GenericServlet、HttpServlet、ServletConfig、Listener、Servlet3。0新特性
JSP:重點
重點:
JSP基礎語法、EL表示式、JSTL標籤、案例。
Maven:(重點及理解)
重點:
Maven的安裝與配置、第一個Maven工程、IntelliJ IDEA中使用Maven、修改本地倉庫的路徑、Maven的外掛。
理解:
Maven概述、Maven基礎知識
MVC機構模式:(重點及理解)
重點:
MVC架構模式和三層架構(表示層、業務層、持久層)或多層架構的區別與聯絡、案例3:改造案例2,改造之前的DBUtil工具類,將Connection物件放到ThreadLocal當中,在service層控制事務和關閉Connection物件,關閉Connection時將它從ThreadLocal中移除、GoF之代理模式:動態代理(JDK動態代理)、案例4:改造案例3,使用動態代理模式處理service層事務。
理解:
案例1:不使用MVC架構模式開發賬戶轉賬功能,分析缺點、MVC架構模式的分層理論、案例2:使用MVC架構模式改造案例1,總結優點、GoF之代理模式:靜態代理。
AJAX:(重點及理解)
重點:
AJAX傳送get請求、AJAX的get請求快取解決方案、AJAX傳送post請求、AJAX什麼情況下使用同步方式
理解:
AJAX概述、AJAX實現原理(非同步通訊原理)
jQuery:(重點及理解)
重點:
jQuery概述、我的第一個jQuery程式、DOM物件與jQuery物件、jQuery的事件處理、jQuery九大選擇器、jQuery物件的常用方法、jQuery元素的遍歷、jQuery傳送AJAX請求、AJAX跨域、未來新增元素的事件繫結
理解:
jQuery動畫
綜合案例(重點):使用Servlet+JSP+MVC+AJAX+jQuery+Maven完成單表資料維護
JavaWeb專案:
本階段影片教程包含六個知識點——全套影片教程免費
MyBatis:(重點及理解)
重點:
開發第一個MyBatis程式、MyBatis整合log4j列印日誌資訊、實現insert操作並演示MyBatis的事務機制、使用單獨的屬性資原始檔配置連線資料庫的資訊、sqlMapper配置檔案中namespace的作用、MyBatis的別名機制、MyBatis完成單表selectList操作、MyBatis完成update操作、MyBatis完成delete操作、作用域(Scope)和生命週期、在WEB應用的持久層DAO中使用MyBatis、MyBatis使用動態代理機制生成DAO介面的實現類、SqlMapper配置檔案採用package的方式掃描、MyBatis的別名機制採用package的方式、parameterType詳解、多引數傳遞、resultType詳解、resultMap基本應用、#{}和${}的區別及選用。
理解:
MyBatis概述、resultMap高階應用、MyBatis的延遲載入機制、動態SQL、一級快取和二級快取、MyBatis-Plus、Mybatis通用Mapper、MyBatis分頁外掛PageHelper。
GIT:(重點及理解)
重點:
安裝Git、Git版本庫、時光機穿梭、遠端倉庫、分支管理、標籤管理、使用GitHub、使用碼雲、搭建Git伺服器、IDEA整合Git、IDEA中使用Git。
理解:
Git概述。
BootStrap:(重點及理解)
重點:
下載Bootstrap庫、第一個Bootstrap程式、完成Bootstrap案例。
理解:
Bootstrap概述、常見的前端UI框架有哪些、JS、jQuery、Bootstrap的區別與聯絡、要實現的Bootstrap案例效果展示。
CRM:(重點)
重點:
軟體開發生命週期、CRM核心業務介紹、CRM核心功能實現。
Linux:(重點及理解)
重點:
Linux常用命令、釋出web專案到Linux。
理解:
Linux作業系統概述、安裝虛擬機器vmware、在虛擬機器上安裝Linux作業系統CentOS7、CentOS7作業系統目錄介紹、常見操作Linux的遠端工具包括哪些、遠端工具。
謝邀。現身說法,
我就是靠自學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開發工程師,歡迎關注我,經常回答科技類的話題,與大家分享我的所見所想。
很多小白學習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學習路線圖的內容,具體配套影片有需要的小夥伴可以找我,碼字不易,給自學的小夥伴提供一下學習路線 , 有用請點贊分享一下吧!
1。 經典書籍要看,例如《Java權威指南卷一》,一定要堅持動手寫程式碼,這樣可以學習和了解基本語法,另外就是面向物件思想。
2。 參與專案開發,真實的,網上經典練習的都可以,期間逐漸學習瞭解git,tomcat,mysql,redis這些專案中常用的技術。
3。 多執行緒,找一些併發程式設計的經典書籍,邊學邊實踐。
4。 瞭解一些虛擬機器知識,對jdk/bin下面的jps,jmap,jstack,jstat熟練使用。
5。 瞭解,設計模式,演算法,為深入研究某一領域做準備。
5。 深入學習某個技術,開始瞭解開源軟體的原始碼,推薦spring,尤其是啟動和初始化的原始碼。
6。 拓展視野,無線,雲計算,大資料方面的知識,都可以去了解和動手,個人比較推薦的是容器化,例如docker,k8s。
7。 嘗試寫作,個人推薦將寫作的過程與極客時間的學習過程結合,只有感受到寫作的不容易,才能主動想到極客時間的大師們的知識儲備有多麼全面,啟發思考“為什麼我寫不出這樣的文章,我還差什麼”,補全自己的短板。
8。 貫穿以上七個階段的,是堅持學習linux知識體系。
個人意見,如果你沒有自學能力,請放棄選擇程式設計,這條路,不適合你。作為IT培訓從業者,我明確的告訴你,培訓機構也只是帶你快速入門,降低你轉行的時間成本及機會成本,如果你沒有做好終身學習的職業規劃,請繞道。
你問我為啥,那我就簡單粗暴的告訴你:在IT行業,尤其程式設計師,公司隨時可能有新專案,隨時需要學習新技術,學習新的程式語言,新框架。我們幫得了你一時,但幫不到你一輩子。
這和你問的培訓和自學,完全沒有衝突。如果你學習能力強,自律性高,完全可以不參加培訓自學入門。
優點:省錢;缺點:耗時長,不繫統,容易鑽牛角尖。
培訓也需要自學,即使有一對一輔導,課後還是需要不斷的練習和思考,這點尤其重要,一個班的同學,一樣的老師,一樣的時間,最後的水平差距就在於個人的主觀能動性,所以培訓也需要主動學習,這就是我要表達的意思。優點:週期短,學習成體系,有老師及時答疑;
缺點:花錢,容易遇到坑。
最後,我想告訴你的是,去參加培訓之前,先自己在網上找資源試學一段時間,看看自己的興趣及能否堅持下來。至於培訓機構的選擇,最好去找度娘(不看培訓機構做的廣告,看口碑)。
希望以上回答能對你有所幫助
我要死了,給孩子留遺言,猜我會留什麼?只一句話:Repetition is the mother of all learning。 重複是學習之母。
他們將來長大,學知識,技巧、愛情、事業、交流。。。。倘若不怕重複,不怕犯錯誤,那就大有希望靠近幸福了。
給你推薦一個Java的學習路徑,核心是動手實戰,策略是重複練習。
從Java基礎、JDK、JDBC、正則表示式等基礎開始,進階到 J2SE 和 SSH 框架學習。透過使用 Java 語言實現日記本,個人相簿、編輯器、通訊錄等,實踐 Java 程式設計基礎,SSH 專案實戰以及Java Web 應用開發。
吐槽一下:頭條不能插入外鏈這一點真是讓人下體疼啊。。。。以下練習教程連結大家可以在實驗樓微信公眾號(實驗樓)回覆關鍵字“Java路徑”直接獲取到,不需要任何別的操作。
JAVA基礎
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 簡易教程
、
基礎專案
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 介面。
好啦就先上這些吧,要是有幫助的話,後面就再更新。希望你學習進步。
看影片教程會更加高效一些,自己不懂的地方,別人幾句話就給你講明白了,另外呢就是需要多動手,多思考,多去看別人是怎麼實現的,以前在學習Java的時候看的是如鵬網的《這樣學Java不枯燥》影片教程,透過開發小遊戲的方式來講解Java的核心知識,學起來特別的有意思
覺得這個問題我最有發言權了~大三開始自學,到現在工作6年,一路走來不容易,看著上面的回答一堆培訓機構上來就是各種路線圖加免費送影片的,我就不發了,需要也可以私信我要就是了,這裡和你分享下我的自學經歷吧。
首先給你一個肯定的觀點,只要有一定自學能力,並且對程式設計有興趣,一定要有興趣!不要抱著我找不到工作只能學程式設計混口飯吃的觀點。
上大學開始就在接觸程式設計最早接觸C,C++,主要就是編寫點氣泡排序呀,漢諾塔,啥的小程式,如果你對程式設計感興趣或許一個程式寫完帶給你的一定是喜悅,至少當初我是這樣。如果看到程式設計就頭髮我覺得還是別硬著頭皮學了,見過太多混日子的程式設計師也是很難受,工資上不去天天CRUD。
入門階段
大三開始接觸java開始了真正的自學之路,我是從馬士兵的javase基礎影片看起當初應該是挺火的,然後開始一點點摸索自學,主要就是去找各種培訓機構的免費影片看尚學堂、傳智播客、北風網、領航致遠一堆的機構免費放出的影片,我基本是全部都看了一遍,大三開始基本每天6小時以上學習時間寒暑假也不例外(主要是扣不捨得花幾萬塊培訓)
慢慢的開始對整個java領域有了基本的,知道java能做什麼,我不建議死扣知識點去學習,這隻會消磨掉學習的興趣,因為完全沒有成就感,就像玩遊戲每關都要有個Boss。
學習的過程要設定小目標,就像培訓機構現在都是一個階段給你個專案練練手(而且專案名字一般都是高大上的,讓你有成就感)
我當初就是邊學邊做培訓機構放出的免費影片,坦克大戰、購物商城、OA、CMS等等,專案名可以千變萬化實際還是那些知識點,一般免費的影片技術多少都比較老,做專案同時我自己去找新版本來用,google查用法差別,自己用新的方法做
提升階段
培訓機構的影片看完,找個實習的工作基本沒問題了,大四上學期的開始找工作(其實還有課但是我基本上都翹了),簡歷投了兩家,面試後都要我,留在了一家上市公司,我還是比較求穩定的人,開始步入職場,程式設計師的職場相對其他職業還是純粹很多,主要還是看技術能力,這階段就是不斷提升自己,多看些深入的書籍,jvm記憶體分析啦,還有 in action系列的書,反正主要挑一些外國出名的書閱讀,這階段基本不用看教學影片了,你會覺得太低階了不用看,自學看書要快的多,工作三年後基本上覺得自己所向無敵了
無盡模式
工作三年後我跳槽了(不聯絡為了錢頻繁跳槽),主要是覺得自己在公司能學到的技術到了瓶頸(還有工資),來到新公司的頭一年壓力巨大,一個是環境重新適應,還有就是新技術的接觸,頭一年又是學習新東西的最好一年,慢慢的會發現自己在成長,但是我會發現越來越多的東西不懂就像是白紙上的圓畫的越大空白越多,微服務,大資料,人工智慧等等東西接踵而至,那麼接下來的就又是一個迴圈了,我開始找相關的資料學新技術,然後看書。。。。。
待續。。。
當然不可能一輩子只會編碼,技術只是基礎,要往上爬還會需要很多其他的知識,我還沒爬到就不說了,先好好當一個程式設計師一步步來吧
碼字好辛苦就到這了,語言組織不太好,想看的小夥伴看看吧,如果你剛入門可以私信找我要影片,當然是給你最新的,內容沒的說反正我也在看又開始新的一輪。。。
自學Java路線圖譜,廢話少說,先上一個張圖,無圖無真相:
自學JAVA,如果你是一個初級水平的菜鳥,菜鳥到什麼程度了?菜鳥到連HTML都不知道怎麼弄的,那麼我建議你先首先學習下HTML相關的知識。因為不管什麼語言,只要是開發,不可能連HTML這種最最基本的語言都不知道吧,這是不太現實的。
看上圖,首先學習分階段性:
第一階段: HTML、DIV+CSS及相關的前端基礎知識語言;
第二階段: JavaScript及相關的JQuery、Ajax等互動相關的知識;
第三階段: JAVA基礎,面對物件思想以及IO流等JAVA基礎知識;
第四階段: JSP及Servlet,以及相關的JDBC連線資料庫等相關的知識;
第五階段: Java及JSP、Servlet等相關知識學完後,之後就是資料庫Mysql、Oracle等相關知識;
第六階段: 三大主流框架Spring、Struts2及Hibernate,抑或是Mybatis等框架,學完框架基本上就OK了,就可以出去找工作了;
總共6個階段,文字寫起來看起來就簡單的幾個字,但是實踐起來確實不是那麼容易,當然瞭如果你很聰明的話除外。總之,自學的話,需要極強的自控能力,不能3天打魚2天曬網。只有堅持下來,才能事半功倍。這6個階段分的都比較大,不是很細,但是符合一般人的思維,如果分的太細,往往會導致不知所以然。
自學的話,還要注意理論+實戰專案,不能只看書,只看網上的影片,而不去做專案,可以網上搜索下載相關的實戰專案影片,先跟著影片一步步的敲起來,等到基礎紮實了,然後在慢慢的脫離影片,自己去開發相關的專案。要不然的話,光看書的書,理解程度不會很深。
如果需要相關的學習影片,可以關注“小熊社長”頭條號,私信我影片學習資料。希望能夠對樓主有所幫助。
1、Java零基礎(第一階段)
影片:
(1)推薦極客學院的整套知識體系(影片教程) Java語言開發知識體系圖
(2)如果你不想使用極客學院,以下推薦網易雲課堂
尚學堂_高淇java零基礎最全300集影片教程 或者 Java8程式設計開發入門
書籍:
瘋狂JAVA講義第2版PDF(下載地址):瘋狂JAVA講義第2版PDF
Java核心技術 卷1 基礎知識 :Java核心技術 卷1 基礎知識(第8版中文版)
文件: Java™ Platform, Standard Edition 8 API Specification
練習、例項:
100個Java經典程式設計例項原始碼
JAVA基礎程式設計練習題——50道
基於Java多執行緒的下載器原始碼剖析(一)
練手小專案一:JAVA聊天室原始碼
Java 圖書館管理系統經典合集
2、進階(第二階段)
Java程式設計思想(第4版) PDF:連結: http://pan。baidu。com/s/1i4ZHH7B 密碼: 6bh9
(1)Java Web
影片:
極客學院的整套知識框架: JavaWeb開發知識體系圖
網易雲課堂的教程: JavaEE影片教程
動力節點-王勇-SSH框架影片教程 ——- [共享完畢]
書籍、文章
javaweb學習總結: JavaWeb學習總結
Servlet官方文件: Servlet API Documentation
練習:
Java_Web開發實戰經典-開發實戰練習
(2)Android
影片:
極客學院影片體系: Android開發知識體系圖
網易雲課堂的影片教程(推薦上面的教程,比較系統):
來自網易雲課堂的教程:
android第一步:
Android Studio開發指南(Android基礎開發)
android第二步:
Android基礎影片教程 (推薦一)
玩轉 Android 基礎課堂(推薦二)
輕鬆學Android移動開發
Android開發課程
Android開發——UI基礎
android第三步:
Android深入淺出
三節課瞭解Android L-你不的不聽的技巧
Android Client與Server的資料互動
android第四步:
Android專案開發實戰
Android實戰開發淘寶網手機客戶端
Android平臺2048遊戲完整專案開發
Android專案開發實戰
Android開發課程
Android專案開發實戰
首先我要說明一下我很佩服樓主的魄力,自學java是一件非常考驗毅力的事情,樓主要耐的住寂寞,我接下來給樓主一些建議吧。
1。要學習java的基礎語法(比如,面向物件,集合,類,抽象,封裝,繼承,多型這些東西,網上有很多java基礎影片的講解)其實有的人推薦你一開始學習HTML這個我不贊成,因為我感覺HTML在學習了JAVA基礎之後在進行學習會非常的容易
2。html+CSS3這個將關乎到你以後做出來的東西是不是符合大眾的審美觀
3。資料庫(本人推薦剛開始的時候學習mysql)
4。servlet,jdbc(學到這一個階段樓主大概就能做出來一些動態的web頁面了)
5。當樓主能做出來頁面之後要記住,該學習一下一些java相關的框架,比如SSM、SSH。
建議樓主去網上買一本java程式設計思想來參考學習。
樓主還可以關注我,我每天都會發布一些java學習的知識,自學的話沒有老師,如果可以我可以做你的導師。跟著我一步一步慢慢來。
1、如果你不是java專業,想透過java來就業的話,建議還是找個java培訓機構,系統學習下。比如達內,尚學堂等。
2、如果一定要自學的話,可以在騰訊課堂、網易雲課堂上,找一個系統的java培訓課程來學習吧
3、具體的java學習,步驟
。下載jdk,安裝java執行環境,寫個helloworld。
。 學習javaSE。 java的變數、迴圈、條件語句。基礎類Class、String、Date、List等,執行緒、併發等
。 學習資料庫操作 JDBC、sql
。學習前端基礎知識html、css、javascript
。 學習javaEE。serverlet、jsp、cookie、session; 常見的企業應用框架,如Spring、springmvc、mybatis、hibernate等
。學習dubbo、springboot 微服務架構
具體的學習內容有很多。入門之後,慢慢就自己有體會,知道自己什麼不懂,需要學習什麼。
可以,我就自學的
自學當然好啦,可以省不少的錢, 可是自學會碰到很多問題呢。 個人花了一年半時間(當前時間是20170815),做了個Java自學的網站,試圖解決一些自學中會碰到的問題。
1。 思路、框架、原理 一下子湧進來太多,接受不過來
無論是剛開始接觸Java這門語言,還是像現在需要去學習一些新的技術的時候,都會選擇去百度資料進行學習。 然而百度來的資料很多都有個不好的做法,就是一開篇就以一種高屋建瓴的方式講很多思路,原理和框架。 事實上,對於剛開始接觸,還沒有多少動手實踐的新手而言,是很難領會這些高屋建瓴的思路、原理和框架的,不僅不利於上手,而且還給初學者形成了一種暗示和心裡壓力:這個東西學習梯度是蠻陡峭的哦,無形中加大了學習的難度。
我偏愛的學習方式是,不要一來給我講太多的東西,直接給我程式碼,讓我跑起來。 只要跑出結果了,我自然而然就會得到一定的領悟,然後再自己去瀏覽每行程式碼,並琢磨其含義,那麼就能逐漸理解和消化了。
推己及人,所以我在做Java教程的時候,也是採用這種方式,在每個知識點的講解,都是一來就給出了可以執行的程式碼,並且提供便捷的複製手段,這樣大家一上手就是跑一個可以看到效果的程式碼:
2。 自己寫不知道錯誤在哪裡
經過上一步跑起來了,真的可以看到效果呢,可是程式碼是複製貼上來的,那可不行,得自己敲出來才行。 這個想法當然是好的,所以就開始一個個關鍵字,一行行的敲程式碼起來。
可是因為初學者不熟練,也許是某一個字母出錯,或者少寫了一個分號,程式就跑不起來,而且這種細微的差別,很有可能找上大半天去了。 為了提高這部分的學習效率,在教程每個程式碼右邊都提供了程式碼比較功能
3。 執行某個程式碼,需要第三方jar包,手裡卻沒有,怎麼辦
Java程式碼執行有個特點,常常需要用到第三方類,而這些類都放在。jar這種格式的檔案裡。如果這些jar包,讓初學者自己去找, 一個是不知道在哪裡下載,再一個同樣的jar包會有各種不同的版本,有些版本與當前程式碼是不相容的,所以這裡也是容易掉進坑裡,花很多很多時間才會找到對的那個jar包。
所以在需要用到jar包的地方,都直接在教程相關下載區域提供了當前程式碼正在使用的jar包,點選即可下載使用,方便快捷~
4。 這個知識點涉及的部分真多,有個思路圖,原理圖捋一下就好多了
現在好了,照著教程自己做了一邊,做出來了,效果也看到了,那麼就有了感性的認識。 不僅做出來了,心中還產生了更多問題,這個時候,就處於一個飢渴的狀態了。 那麼此時此刻,開始講原理圖,思路圖,就能夠聽得懂了,並且透過思路圖也能把剛才所學整理,總結,更好的消化吸收。
5。 光是圖文我還是看不懂,想看看影片怎麼講的
有部分的知識點還是挺複雜的,比如演算法,hashcode 原理什麼的。 光是看圖文和程式碼,還是有些稀裡糊塗的。
雖然有些稀裡糊塗,但是經過自己敲過一遍,是帶著針對性問題的稀裡糊塗。 那麼這個時候,帶著問題來看影片講解,效果就會非常好了。
6。 雖然也寫出來了,但是個別細節還是有疑問,該問誰呢
在每個知識點下面,都有一個提問區域,裡面有和你學習同樣知識點的同學的疑問,或許你可以在別人提問的答案裡找到自己需要的,也可以透過看別人的提問,啟發自己做擴充套件性的思考。