選單

Java零基礎如何入門學習?給初學者的建議,少走一年彎路

說在前邊

如果你想自學 Java,認真看完本文,你以後的IT職場生涯至少少走1年彎路。

滿滿的Java學習乾貨,建議收藏!

Java零基礎如何入門學習?給初學者的建議,少走一年彎路

初衷

經常有小夥伴私聊問我“如何自學 Java”、“想轉行 Java 靠譜嗎”等問題,因為接觸過很多類似經歷的同學,所以很能理解這些同學的痛苦和迷茫。

寫這篇文章前,我看了一些網上 Java 自學的文章,很多我都不太滿意,有的甚至讓我感到憤怒,要麼是站在現有的視角侃侃而談,要麼是純粹的瞎編騙小白。

很多文章都有一個老毛病:完全沒有從小白的視角去思考,內容太多,什麼微服務、架構、大資料都來了,這根本不是自學階段該去看的東西,小白看了這些文章,只會越看越懵逼,根本沒法下手。

行業現狀程式設計師現狀

由於程式設計師的薪水比較高,最近幾年有很多其他專業的人湧進了程式設計師行業,加速了這個行業的內卷,但是據某招聘網上的資料統計,程式設計師當前的需求量還是遠高於全行業的平均線的。所以,程式設計師的現狀我覺得是不錯的,至少幾年內是無需擔心的。

Java 現狀

最近幾年,Go、Python 等語言快速崛起,大有挑戰 Java 地位的趨勢,但是 Java 毋庸置疑仍是當前網際網路行業裡招聘需求量最大的。

眾多大廠:阿里、美團、快手、拼多多、滴滴、網易等,都是以 Java 為公司的主語言,部分大廠:騰訊、百度、位元組等,雖然以其他語言為主語言,但是多多少少也會有一些 Java 崗。

所以,Java 的現狀及未來,我覺得都是比較不錯的。崗位多也代表著機會多,對於新人來說比較友好,所以我個人是比較推薦新人學 Java 的。

Java分為三個體系:

⒈ JavaSE(J2SE)(Java2 Platform Standard Edition,java平臺標準版)

⒉ JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平臺企業版)

⒊ JavaME(J2ME)(Java 2 Platform Micro Edition,java平臺微型版)。

20

06年,

SUN 公司在 JavaOne 大會上,宣佈在 GNU 通用公共協議(GPL)的構架下向開源世界貢獻 Java 平臺,這次開放的 Java 版本包括了其標準版(Standard)、微型版(Micro)以及企業版(Enterprise)。這是一個具有“歷史性意

義”的改

變。

Java的主要特性:

Java語言是簡單的:

Java語言的語法與C語言和C++語言很接近,使得大多數程式設計師很容易學習和使用。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如運算子過載、多繼承、自動的強制型別轉換。特別地,Java語言不使用指標,而是引用。並提供了自動的廢料收集,使得程式設計師不必為記憶體管理而擔憂。

Java語言是面向物件的:

Java語言提供類、介面和繼承等面向物件的特性,為了簡單起見,只支援類之間的單繼承,但支援介面之間的多繼承,並支援類與介面之間的實現機制(關鍵字為implements)。Java語言全面支援動態繫結,而C++語言只對虛擬函式使用動態繫結。總之,Java語言是一個純的面向物件程式設計語言。

Java語言是分散式的:

Java語言支援Internet應用的開發,在基本的Java應用程式設計介面中有一個網路應用程式設計介面(java net),它提供了用於網路應用程式設計的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠端方法啟用)機制也是開發分散式應用的重要手段。

Java語言是健壯的:

Java的強型別機制、異常處理、垃圾的自動收集等是Java程式健壯性的重要保證。對指標的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。

Java語言是安全的:

Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡意程式碼的攻擊。除了Java語言具有的許多安全特性以外,Java對透過網路下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、位元組程式碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設定安全哨兵。

Java語言是體系結構中立的:

Java程式(字尾為java的檔案)在Java平臺上被編譯為體系結構中立的位元組碼格式(字尾為class的檔案),然後可以在實現這個Java平臺的任何系統中執行。這種途徑適合於異構的網路環境和軟體的分發。

Java語言是可移植的:

這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本資料型別的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的執行環境是用ANSI C實現的。

Java語言是解釋型的:

如前所述,Java程式在Java平臺上被編譯為位元組碼格式,然後可以在實現這個Java平臺的任何系統中執行。在執行時,Java平臺中的Java直譯器對這些位元組碼進行解釋執行,執行過程中需要的類在聯接階段被載入到執行環境中。

Java是高效能的:

與那些解釋型的高階指令碼語言相比,Java的確是高效能的。事實上,Java的執行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近於C++。

Java語言是多執行緒的:

在Java語言中,執行緒是一種特殊的物件,它必須由Thread類或其子(孫)類來建立。通常有兩種方法來建立執行緒:其一,使用型構為Thread(Runnable)的構造子類將一個實現了Runnable介面的物件包裝成一個執行緒,其二,從Thread類派生出子類並重寫run方法,使用該子類建立的物件即為執行緒。值得注意的是Thread類已經實現了Runnable介面,因此,任何一個執行緒均有它的run方法,而run方法中包含了執行緒所要執行的程式碼。執行緒的活動由一組方法來控制。Java語言支援多個執行緒的同時執行,並提供多執行緒之間的同步機制(關鍵字為synchronized)。

Java語言是動態的:

Java語言的設計目標之一是適應於動態變化的環境。Java程式需要的類能夠動態地被載入到執行環境,也可以透過網路來載入所需要的類。這也有利於軟體的升級。另外,Java中的類有一個執行時刻的表示,能進行執行時刻的型別檢查。

Java歷史

詹姆斯·高斯林(James Goslin

g)在他

的許多機頂盒專案之一發起的Java語言專案在1991年6月使用。高斯林的辦公室放著一棵橡樹之後,最初稱為橡樹(Oak ),也最後被定名為Green,後來被改名為:Java。

Sun 在1995年第一個公開發布 Java1。0。它寫一次,隨處可執行(WORA),提供無成本的執行時間上流行的平臺。

2006年11月13日,Sun 在GNU通用公共許可證(GPL)的條款公佈 Java作為自由和開放原始碼軟體。

2007年5月8日,Sun 完成了這個過程,使所有的Java核心程式碼,免費和開源,除了程式碼的一小部分,其中Sun並沒有擁有版權。

Java開發工具:

Java語言儘量保證系統記憶體在1G以上,其他工具如下所示:

⒈ Linux 系統、Mac OS 系統、Windows 95/98/2000/XP,WIN 7/8系統。

⒉ Java JDK 7、8……

⒊ Notepad 編輯器或者其他編輯器。

⒋ IDE:Eclipse

Java 的版本歷史

Java 的主要發行版本及其發行日期如下:

▪ JDK 1。0(19

96年

1月

23日)

▪ JDK 1。1(1996年2月19日)

▪ J2SE 1。2(1998年12月8日)

▪ J2SE 1。3(2000年5月8日)

▪ J2SE 1。4(2002年2月6日)

▪ J2SE 5。0(2004年9月30日)

▪ Java SE 6(2006年12月11日)

▪ Java SE 7(2011年7月28日)

▪ Java SE 8(2014年3月18日)

▪ Java SE 9(2017年9月21日)

▪ Java SE 10(2018年3月20日)

▪ Java SE 11(2018年9月25日)

▪ Java SE 12(2019年3月19日)

▪ Java SE 13(2019年9月17日)

▪ Java SE 14(2020年3月17日)

為什麼Java應用最廣泛?

從網際網路到企業平臺,Java是應用最廣泛的程式語言,原因在於:

⒈ Java是基於JVM虛擬機器的跨平臺語言,一次編寫,到處執行;

⒉ Java程式易於編寫,而且有內建垃圾收集,不必考慮記憶體管理;

⒊ Java虛擬機器擁有工業級的穩定性和高度最佳化的效能,且經過了長時期的考驗;

⒋ Java擁有最廣泛的開源社群支援,各種高質量元件隨時可用。

Java語言常年霸佔著三大市場:

⒈ 網際網路和企業應用,這是Java EE的長期優勢和市場地位;

⒉ 大資料平臺,主要有Hadoop、Spark、Flink等,他們都是Java或Scala(一種運行於JVM的程式語言)開發的;

⒊ Android移動平臺。

這意味著Java擁有最廣泛的就業市場。

自學Java前你要知道的

自學前請做好心理準備,自學是一個既寂寞又漫長的過程,如果想踏進來,請做好放棄幾乎所有娛樂生活的準備,包括過年的時候。如果只是抱著三天打魚兩天曬網的態度,那我建議還是放棄吧。

但是如果你能堅持下來,我相信一定能有所回報,我自己就是個例子,我走了那麼多彎路,跟著本文走,你們沒理由比我當時更差。

自學預估週期

自學的週期我給大家定了一個參考時間:6個月,平均每天6-8小時,共1200個小時左右,大致安排:

1、3個月基礎知識學習和強化。

2、2個月 SSM 專案實戰反覆練習,專案實戰同時也在複習和鞏固之前的基礎知識。

3、1個月面試高頻題準備,看面試題其實也會增加自己的專業知識,而且可能比你想象的要多,不誇張的說,前幾年我從面試題裡學到的知識可能比工作裡獲得的還多。

Java自學教程獲取

授人以魚不如授人以漁,一個簡單又靠譜的的教程獲取方式:B站搜尋關鍵字+教程,例如:Java基礎教程、MySQL教程、JavaWeb教程、SSM整合教程、Java專案實戰等等,然後按“最多點選”排序,一般點選高的都是質量還可以的。

很重要的建議

1、愛因斯坦的成功公式:成功=效率*時間,自學也一樣,需要勞逸結合,不要搞的太累,否則效率下降,花再多時間也沒用。

2、自學是一個漫長的過程,循序漸進、保持耐心,如果可以,找個伴一起學習,互相鼓勵,互相交流,可以讓自己更有動力堅持下去。

3、將自己的學習過程記錄下來,當你發現累計的越來越多的時候,心裡會有一種小成就感,這會提高你學習的動力。

4、專注於重點知識的學習,本文介紹的基本涵蓋了當前你應該學習的內容,沒有提到的大部分是沒那麼重要的,如果你無法判斷是否重要,可以在本文下面留言,我會一一解答,至於像一些什麼:k8s、hadoop、hbase 等等,看都別看,對於當前的你來說只是浪費時間。

5、利用好搜尋引擎,有什麼問題就百度,新手大部分的問題百度都能解決。

6、看影片不要看書,當前階段的你看任何書,包括大名鼎鼎的《Java程式設計思想》都是浪費時間。

7、要跟著教程敲一遍甚至多遍,如果只看不跟著敲,你會發現最後啥都學不會。

8、一些介紹歷史的影片可以過一遍簡單瞭解就行,節省點時間。

9、關於教程的選取:選擇近2~3年的教程,講師讓自己聽著舒服即可,點選高的水平基本差不多。

10、不懂的知識可以反覆看,例如同一個知識點有兩套教程,看完第一個沒完全理解,可以再看第二個,加深印象,也可以查些資料幫助理解。

自學知識點

1、Java SE

1。1、Java基礎

基礎概念/語法:

面向物件(繼承、封裝、多型)基礎、包、類、介面、方法、物件、屬性、第一個 Java 程式。

資料型別:

1)基本資料型別8種:byte、short、int、long、float、double、char、boolean;

2)引用資料型別

變數型別:區域性變數、例項變數(成員變數)、類變數(靜態變數)

修飾符:public、private、不寫、protected、static、final、abstract、synchronized ,volatile

運算子:

1)算術運算子:+、-、*、/、%、++、——;

2)關係運算符:==、!=、>、=、

3)邏輯運算子:&&、||、!;

4)賦值運算子:=、+=、-=、*=、/=;

5)條件運算子:Object x=(expression)?value if true : value if false;

迴圈結構:for 迴圈、while 迴圈、do。。。while 迴圈

條件語句:if。。。else、if。。。else if。。。else

異常處理:try。。。catch。。。finally、throws、throw

字串:String、StringBuilder、StringBuffer

其他:switch case、陣列、日期時間、列舉、使用 IDE 進行 DEBUG

1。2、集合

Map:HashMap(最重要)、ConcurrentHashMap、TreeMap、Hashtable

List:ArrayList(最重要)、LinkedList

Set:HashSet(最重要)、TreeSet

1。3、多執行緒

執行緒生命週期

建立執行緒的三種方式:繼承 Thread、實現 Runnable;實現 Callable

ThreadPoolExecutor(執行緒池)

鎖:synchronized 和 Lock

1。4、I/O流

1。5、網路程式設計

1。6、反射

1。7、泛型

1。8、註解

小結:

1、該階段很重要,建議至少看兩套不同的教程。由於每個老師的觀點都會有一些片面性,當遇到疑惑的時候,可以看看其他老師的理解,可能就想通了。

2、看第一遍時會比較慢,第二遍會快一點,已經掌握的知識可以快速帶過。

3、有疑問的知識多看幾遍,也可以網上看點博文輔助理解,實在看不懂的可以先記下來,後面學到一定程度可能就理解了。

4、對於重點知識,可以做筆記來加深自己的理解,也方便後續自己複習。

5、Java基礎、集合、多執行緒是核心中的核心。

股市跌了別害怕!7%+理財,低門檻高收益、1000元就能買入、0手續費……限額領取,速來>>