初學者學Java常遇到的問題,我都給你回答了!

前言

只有光頭才能變強。前端

文本已收錄至個人GitHub精選文章,歡迎Stargithub.com/ZhongFuChen…git

春節在家刷知乎,看到了一個知乎的問題:《學習Java能夠幹什麼呢?程序員

我是一個Java的初學者,大概學了四天,對Java到底能作什麼仍是一頭霧水,天天對着黑屏(DOS系統)除了編譯仍是編譯,那麼Java對於一個初學者來講Java能夠作些什麼呢?github

問題的連接:面試

看到了這個問題,就想起了我在大學自學的時候有一樣的問題,如今工做了,來寫寫本身的見解,但願對廣大的初學者有所幫助。算法

注:本文很是適合零基礎初學者觀看數據庫

若是別人讓我介紹我是作什麼工做內容的,我可能會用如下的方式告訴他(不知道學Java能夠幹些什麼,可能就不知道下面的流程是怎麼樣的):編程

「你能夠掏出手機,打開微信」後端

掏出手機,打開微信

「咱們都是玩微信的人,要進入微信先得有個帳戶,因此要先註冊「設計模式

微信註冊頁面

「註冊實際上就是把你的帳號和密碼「保存」起來」。

帳號和密碼「保存」起來

「若是你註冊成功了,那小本本「數據庫」就有你的帳號和密碼了。等你登陸的時候,就去小本本「數據庫」查一下你輸入的帳號和密碼是否匹配

登陸

「看到這裏,有沒有以爲「程序員」真是容易當,不就把輸入的數據記錄下小本本,等用到的時候再查一下而已嘛。其實否則,就比如微信的註冊頁面,拿IOS系統來講,從IOS 6 到如今的IOS 12已經有6個版本了。Iphone手機屏幕的尺寸也一直在變,從3.5英寸到如今的6.5英寸。微信團隊須要對不一樣的「版本」,不一樣的「屏幕大小」進行兼容,讓iPhone4s仍是iPhoneXS Max都能用上微信。(起碼在不一樣的手機上,看到的註冊功能都是完整的,而不是東一塊西一塊不整齊的)」

兼容問題

「還好比說,小本本「數據庫」記下的密碼不能是你輸入的「原始密碼」。舉個例子:某一天,一個在微信團隊的小夥子拿到了存放帳號和密碼的小本本「數據庫」,把小本本「數據庫」的內容給公開了。(或者說一個黑客把微信給攻破了,而後公開小本本「數據庫」),那豈不是誰均可以上個人微信號了?」

公開小本本的內容

「程序員們固然能夠考慮到這點,他們會這樣作,將你輸入的密碼進行「加密」存到小本本「數據庫」中。不管是誰,拿到加密後的密碼,都**不能「反推」**你原始輸入的密碼。」

密碼加密

「因此,每次比對的都是加密後的密碼」

比對的是加密後的密碼

一個功能遠遠沒有上面所講的那麼簡單,可能一個小小的功能背後是一個大大的團隊在支持...

收藏等於白嫖,點贊關注纔是真情!

收藏等於白嫖,點贊關注纔是真情!

收藏等於白嫖,點贊關注纔是真情!

我學習Java能作什麼?

題主目前你學了四天有這種狀況是很是常見的。我當時學了四天學了什麼?

  • 安裝Java開發環境用了一天
  • 學習基礎的語法:基本的面向對象概念、for循環、if、三目運算符,簡單的API(能輸出HelloWorld)

若是題主能繼續堅持學習Java基礎,發現可能將近一個月都是對着黑窗口在玩。

  • 不管這個黑窗口是系統自帶的,仍是題主已經在用IDE了

集成開發環境(IDE,Integrated Development Environment )是用於提供程序開發環境的應用程序,通常包括代碼編輯器、編譯器、調試器和圖形用戶界面工具

學習Java基礎的確不能作出些有趣的東西,學着學着會有枯燥的感受。面向對象-封裝繼承多態、集合、多線程、反射、網絡編程、內部類等等這些Java基礎都是在黑窗口上學習和實踐的。

這些玩意有意思嗎?是沒什麼意思,學完這些知識會讓本身產生疑問 「這些基礎能寫成一個應用嗎」(不管是如今用的知乎APP仍是PC版的知乎)。

這是一個很是正常的疑問,我在初學的時候也常常問本身:」我學這些東西好像沒什麼卵用啊,爲何網上(知乎、貼吧等論壇)的都在說 「初學要打好基礎等你學好Java基礎,那工做就不愁了

可是我當時一點都不知道這些基礎用在哪裏,迷茫

我看視頻仍是看書?

題主可以在知乎上提問了,我也默認題主已經在知乎看到過很多相似的問題,可能還沒找到本身想要的答案。在搜索的時候應該能看到相似的問題《自學Java看視頻仍是看書

這個問題在初學的時候我也常常糾結。糾結的緣由很簡單:

  • 會有一部分人說:看視頻沒用,視頻講得太簡單了,都是騙你去培訓班的。看視頻也太慢了,學習最快仍是看書好
  • 會有一部分人說:零基礎看書看不進去,學不會的,看視頻好,一個老師帶着你學習

這個問題我在工做了之後還跟同事討論過,我是支持零基礎學習看視頻,他是支持直接看書籍

我倆誰也說服不了誰。那究竟是初學看視頻比較好,仍是看書籍比較好?

知識點好多,我記不住

隨便找一本評分比較高的Java基礎的書籍來看一下,都是很是的。以《Java瘋狂講義》爲例,有889頁。拿着他比磚頭還要重。

今天跟着書籍/視頻學習了「內部類」,等學到多線程的時候再看一下這個「內部類」,發現已經看不懂他的語法了。昨天跟着書籍/視頻學習了「網絡編程」,發現上週學完的集合API全忘掉了....

咋整?知識點這麼多,有這麼多的API,我不可能所有能記得住啊...學完很容易就忘記了。

哪些須要重點學習,工做中經常使用的知識點有哪些

在初學Java的時候而後去相關的IT論壇逛逛,發現全都看不懂。明明是在學編程,但IT論壇的問題一個都看不懂。看着一大堆的專業名詞,就猶如明明是中國人但看不懂奰媕鰥魍讖觳豳這些字同樣。

初學者在論壇上看到面向切面編程、高併發、AOC、IOC、Mybatis、Linux這些可能都不知道是幹嗎的,明明是Java的標籤,但出來專業名詞的好像都看不懂。

Java要學的東西也太多了吧,基礎已經這麼多了,後面的怎麼學,我應該學習哪些重點啊?

我學到怎麼樣的程度能夠找到一份工做

我耗時幾個月熬過頭了,已經學了Java基礎、JavaWeb、簡單的數據庫、SSM框架等等一些基本的使用了。如今想要找一份工做,但不知道企業招人的標準是什麼。

如今我學得這些,我以爲還有點虛,感受跟實際工做的內容有較大的差距,學了這麼多仍是沒有一點兒的底氣,怎麼辦?

會寫一點點的SSM和增刪改查,簡單的會寫,難的就不會了**。很急,在線等,怎麼辦**。

個人理解

學習Java能幹什麼?

如今Java按簡單來講有兩種方向:後端和客戶端

  • 對造APP感興趣的能夠學Android
  • 對服務端感興趣的能夠學Java後端
  • (後端延伸出去也能夠學大數據...

既然你會在知乎上提問了,你有沒有想過你輸入完內容,點擊發佈問題按鈕的時候程序員爲你作了些什麼?

  1. 點擊發布問題的時候,至少你提的這個問題是須要能被你再次打開,看看有沒有相關回答者的吧?那是否是知乎要拿小本本把你這個問題給記錄下來,後續找到了這個問題而後給你下一次打開。
  2. 那至少要作的就得把你發佈的問題記錄下來(記下),等你再次點開的時候再找到你的問題(查找),若是你把問題給刪除了,那就得把記下的問題給刪掉(刪除),若是你把問題給修改了,那就得把你記下的問題給修改了。總之,你先要把問題給發佈(存到小本本里邊),你才能刪改查
  3. 上面這些工做誰來幹?程序員寫代碼來作。可能用Java,可能用Python,可能用Go,可能用全世界最好的語言PHP...

扯了一大堆,那我爲啥還每天對着黑窗口在學習?而不是直接學習《如何實現相似知乎的發佈問題功能》

顯然你讀懂一篇英文課文以前,你總得認識單詞。你連單詞都不認識,怎麼作閱讀理解呢?學習Java能作不少東西,你平常用到的APP/瀏覽的網頁背後極可能就是用Java寫的代碼。

總之,學習Java了能夠能讓你瞭解一個網站和APP的基本運行原理,點了一個按鈕會發生什麼,爲何會這樣。

  1. 知道爲何今年淘寶雙十一在添加購物車的時候,有時會出現失敗
  2. 知道爲何我在查飛機票的時候,查不到信息
  3. 知道爲何.....

看書仍是看視頻

我是建議零基礎看視頻入門的,緣由有如下:

  • 大部分零基礎學Java的同窗都沒有比較好的理解能力,看視頻能夠幫助你快速入門(視頻能夠加速觀看)

  • 避免踩坑。書上講的知識點的確是很是全,但有兩個問題:

    • ①初學者抓不到重點,可能對着細小的知識點猛學一頓,發現這個知識並沒多大的卵用。
    • ②初學者不知道學習路線。看書不是完完整整從頭看到尾的,極可能書上一段的知識點如今已經沒用了,可是你仍是費勁去學(好比AWT SWING 如今就用得不多了,但書仍是有大篇幅去講解,若是你順着學可能就浪費不少時間在裏邊)

看視頻能讓你抓住重點,快速瞭解知識點。但總的來講是因人而異,有的人理解能力就是好,看書就很快就學會了。

知識點太多,學完就忘,記不住

要明確的是,咱們寫代碼的不是背書,不是讓你將全部的API給記下來。如今開發工具,提示功能已是比較好的了。在工做的時候忘了,也能夠查百度/Google。

咱們並不須要把全部的東西給記下來,重要的是:咱們知道有這項技術,這項技術能幫咱們解決掉什麼問題

因此,在學習一項技術以前,必需要知道爲何。爲何須要學習這項技術,不學的話行不行。學了這項技術,我能解決什麼問題。

若是不理解爲何要學習某項技術,就去學用法和API。我認爲若是隔一陣子不用,的確是會忘記的。

好比說,如何你連「爲何要用多線程」你都沒法用通俗的話來解釋清楚。

即使你當時學習的時候知道多線程能夠用xxx方式來建立,多線程的xxx的api。那再過兩個月,人家問你」Java多線程有什麼用啊?」。

你想一想你還能答什麼,我認爲你是記不住「多線程能夠用xxx方式來建立、多線程的xxx的api」這些知識點了。

  • 若是你不知道學習某項技術是幹嗎用的,那先不要學

  • 若是你不知道學習某項技術是幹嗎用的,那先不要學

  • 若是你不知道學習某項技術是幹嗎用的,那先不要學

重點的東西能夠寫筆記記錄下來(這個也是因人而異,我身邊的大佬不少也不寫筆記。可是我是推崇寫筆記的)。

哪些須要重點學習,工做經常使用的知識點

我簡單整理了一下畫成了思惟導圖:

總結一下我認爲學習Java的路線:

  • Java基礎-->流程控制-->面向對象(包括Java語法)-->Java集合-->Java IO流-->異常-->多線程-->網絡編程-->反射
  • JavaWeb基礎-->HTML/CSS/JavaScript/jQuery-->Tomcat-->XML/註解->Servlet-->HTTP-->Filter過濾器和監聽器-->JSP-->AJAX/JSON-->數據庫(MySQL)-->JDBC和DbUtils
  • 項目管理和框架-->Maven-->SpringBoot
  • Linux基本命令

最後咱們的項目是這樣的:

  • 以Maven來管理咱們的項目
  • 前端經過BootStrap來搭建頁面框架
  • SpringBoot來搭建Java後端環境,SpringMVC處理前端請求(SpringBoot整合了)
  • DAO層使用DbUtils組件來完成,MySQL做爲數據庫

怎麼樣才能找到工做

只要你能從零把一個項目搭建起來,能運行在服務器上。用上的技術還不爛,那我認爲就能夠找到Java的工做了。

其實學完上面的,認認真真花一個月從零本身寫一個達到找工做的門檻是不難的。但面試以前是必定須要刷面試題的。

若是仍是學生的同窗必定必定要參加校招,必定必定要刷算法題,鞏固計算機網絡、操做系統、數據庫的基礎。

若是仍是學生的同窗必定必定要參加校招,必定必定要刷算法題,鞏固計算機網絡、操做系統、數據庫的基礎。

若是仍是學生的同窗必定必定要參加校招,必定必定要刷算法題,鞏固計算機網絡、操做系統、數據庫的基礎。

堅持堅持堅持學習就確定能找到工做!

最後

因爲篇幅問題,不少細節就沒在文章中寫了。可是我已經把我自學到找到工做以及工做經常使用到的技能都寫成了博客。如今已經更新了300+多的原創文章。

從Java基礎(集合、多線程、設計模式)到JavaWeb基礎(Servlet、JSP、過濾器)再到JavaEE經常使用框架(SpringMVC、Spring、Mybatis、SpringBoot)再到找工做的經歷(寫簡歷,刷面試題)再到工做後經常使用的技能(Linux命令,SQL編寫,經驗分享)都記錄了下來。文章質量都槓槓的,歡迎查閱

若是你們想要實時關注我更新的文章以及分享的乾貨的話,能夠關注個人公衆號「Java3y」。

  • 🔥海量視頻資源
  • 🔥Java精美腦圖
  • 🔥Java學習路線
  • 🔥開發經常使用工具
  • 🔥精美整理好的PDF電子書

在公衆號下回復「888」便可獲取!!

本已收錄至個人GitHub精選文章,歡迎Stargithub.com/ZhongFuChen…

求點贊 求關注️ 求分享👥 求留言💬 對我來講真的 很是有用!!!

收藏等於白嫖,點贊纔是真情!

收藏等於白嫖,點贊纔是真情!

收藏等於白嫖,點贊纔是真情!

相關文章
相關標籤/搜索