自學java後面試應該注意什麼?黃小斜2019-08-23 22:58:33

自學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程式設計師面試指南等乾貨資源)

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,再比如一些加密工具,一些壓縮工具等等,這裡就不再一一列舉了。

5 總結

今天的內容就到這裡了,與其說是初級篇,反而更像是“專案篇”呢。因為學完基礎內容之後,做專案是最好的複習和實踐方式了。所以這篇文章圍繞著做專案來展開,也就不足為奇了。

今天我們主要講的是,做好一個JavaWeb專案,需要哪些知識儲備,需要了解哪些技術,並且我也推薦一些比較精品的影片課程。

後面我還會寫一篇文章,專門講一講怎麼做專案,會更加詳細,更加側重怎麼去做,敬請期待吧。

總結以下今天說的幾個要點吧:

1 Java基礎知識儲備 2 前端知識儲備 3 瞭解和使用JavaWeb常用技術 4 JavaWeb常用元件介紹 5 影片課程推薦

俗話說的好,磨刀不誤砍柴工,相信你看了本文之後,可以更好地做好知識儲備,然後開始Java Web的專案實踐,希望你能夠順利地完成你的第一個專案。

微信公眾號【黃小斜】作者是螞蟻金服 JAVA 工程師,專注於 JAVA 後端技術棧:SpringBoot、SSM全家桶、MySQL、分散式、中介軟體、微服務,同時也懂點投資理財,堅持學習和寫作,相信終身學習的力量!關注公眾號後回覆”架構師“即可領取 Java基礎、進階、專案和架構師等免費學習資料,更有資料庫、分散式、微服務等熱門技術學習影片,內容豐富,兼顧原理和實踐,另外也將贈送作者原創的Java學習指南、Java程式設計師面試指南等乾貨資源

自學java後面試應該注意什麼?

自學java後面試應該注意什麼?肖威2017-11-28 20:45:25

自學結巴半年時間的話,基本上你應該什麼都不會,因為你沒有做過真實的案例,所以在這個時候的話,我覺得,你現在,最應該做的事情還不是去面試,而是應該找一家單位去花圈去實習,在這樣一個單位花錢實習的過程當中,提高自己做專案的經驗,然後再去處置,這樣的話會比較好一點。