{eval=Array;=+count(Array);}
謝謝邀請!
一般面試官會基于你的面試簡歷進行相對應的知識點提問,例如你的簡歷中寫了精通(精通這兩個字謹慎使用)Java并發編程,面試官可能會問CAS的實現原理、ThreadLocal實現原理及是否會出現內存泄露、HashMap的實現原理及為什么會出現并發問題等,這種就是根據簡歷上的描述提出的針對性問題,還有就是根據你簡歷上的項目經歷,提問你在這個項目中的角色、負責那些功能、如何實現的、遇到那些問題及如何解決的,所以你的簡歷內容基本就隱藏了面試官的問題,當然如果遇到菜鳥面試官,這個就不一定了,問的可能就比較隨意且基礎。
關于一些面試中可能會問到的經典問題可以關注我的頭條號,不斷分享Java面試題,而且都是深入分析答案哦,希望對你有所幫助!
Java基礎。基礎是關鍵,然后是框架,今天我面試的那個問的就是高并發和緩存還有實時的數據刷新。重要的事情說一遍,Java基礎最重要。
我整理了一些面試題(如下),希望能夠幫到小伙伴!通過對這些面試題的搜索與學習,不僅對小伙伴的面試有一定的幫助,還對小伙伴的基礎能夠起到鞏固的作用。
J2SE基礎:
1. 九種基本數據類型的大小,以及他們的封裝類。
2. Switch能否用string做參數?
3. equals與==的區別。
4. Object有哪些公用方法?
5. Java的四種引用,強弱軟虛,用到的場景。
6. Hashcode的作用。
7. ArrayList、LinkedList、Vector的區別。
8. String、StringBuffer與StringBuilder的區別。
9. Map、Set、List、Queue、Stack的特點與用法。
10. HashMap和HashTable的區別。
11. HashMap和ConcurrentHashMap的區別,HashMap的底層源碼。
12. TreeMap、HashMap、LindedHashMap的區別。
13. Collection包結構,與Collections的區別。
14. try catch finally,try里有return,finally還執行么?
15. Excption與Error包結構。OOM你遇到過哪些情況,SOF你遇到過哪些情況。
16. Java面向對象的三個特征與含義。
17. Override和Overload的含義去區別。
18. Interface與abstract類的區別。
19. Static class 與non static class的區別。
20. java多態的實現原理。
21. 實現多線程的兩種方法:Thread與Runable。
22. 線程同步的方法:sychronized、lock、reentrantLock等。
23. 鎖的等級:方法鎖、對象鎖、類鎖。
24. 寫出生產者消費者模式。
25. ThreadLocal的設計理念與作用。
26. ThreadPool用法與優勢。
27. Concurrent包里的其他東西:ArrayBlockingQueue、CountDownLatch等等。
28. wait()和sleep()的區別。
29. foreach與正常for循環效率對比。
30. Java IO與NIO。
31. 反射的作用于原理。
32. 泛型常用特點,List能否轉為List。
33. 解析XML的幾種方式的原理與特點:DOM、SAX、PULL。
34. Java與C++對比。
35. Java1.7與1.8新特性。
36. 設計模式:單例、工廠、適配器、責任鏈、觀察者等等。
37. JNI的使用。
JVM:
1. 內存模型以及分區,需要詳細到每個區放什么。
2. 堆里面的分區:Eden,survival from to,老年代,各自的特點。
3. 對象創建方法,對象的內存分配,對象的訪問定位。
4. GC的兩種判定方法:引用計數與引用鏈。
5. GC的三種收集方法:標記清除、標記整理、復制算法的原理與特點,分別用在什么地方,如果讓你優化收集方法,有什么思路?
6. GC收集器有哪些?CMS收集器與G1收集器的特點。
7. Minor GC與Full GC分別在什么時候發生?
8. 幾種常用的內存調試工具:jmap、jstack、jconsole。
9. 類加載的五個過程:加載、驗證、準備、解析、初始化。
10. 雙親委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
11. 分派:靜態分派與動態分派。
總體來說java考察內容包括以下這些:
1,面向對象的一些基本概念:繼承,多態之類的
2, 抽象類和接口
3, 靜態類,內部類
4, Java集合類,同步和非同步
5, Java類加載機制
6, Java內存模型和垃圾回收算法
7, 線程同步機制(voliate,synchronized,重入鎖,threadlocal),線程間通信(wait,notify)
8, 異常處理
9, 多線程同步問題,生產者消費者,讀者寫者,哲學家就餐,用java實現
10, 了解java中設計模式的思想,用了哪些設計模式,有什么好處
java開發技術學習教程及學習路線
http://www.atguigu.com/download.shtml
H5全棧前端開發技術學習教程及學習路線
http://www.atguigu.com/html5_video.shtml
大數據開發技術學習教程及學習路線
http://www.atguigu.com/bigdata_video.shtml
憑借印象大概整理了一下當時我面試遇到的問題,我當時是在動力節點學了5個多月之后刷面試題去找的工作,老師幫忙整理了許多面試題,其實挺全的,但是我好像刷得馬馬虎虎,分享給大家吧!
J2SE基礎:
1. 九種基本數據類型的大小,以及他們的封裝類。
2. Switch能否用string做參數?
3. equals與==的區別。
4. Object有哪些公用方法?
5. Java的四種引用,強弱軟虛,用到的場景。
6. Hashcode的作用。
7. ArrayList、LinkedList、Vector的區別。
8. String、StringBuffer與StringBuilder的區別。
9. Map、Set、List、Queue、Stack的特點與用法。
10. HashMap和HashTable的區別。
JVM:
1. 內存模型以及分區,需要詳細到每個區放什么。
2. 堆里面的分區:Eden,survival from to,老年代,各自的特點。
3. 對象創建方法,對象的內存分配,對象的訪問定位。
4. GC的兩種判定方法:引用計數與引用鏈。
5. GC的三種收集方法:標記清除、標記整理、復制算法的原理與特點,分別用在什么地方,如果讓你優化收集方法,有什么思路?
總體來說java考察內容包括以下這些:
1,面向對象的一些基本概念:繼承,多態之類的
2, 抽象類和接口
3, 靜態類,內部類
4, Java集合類,同步和非同步
5, Java類加載機制
6, Java內存模型和垃圾回收算法
7, 線程同步機制(voliate,synchronized,重入鎖,threadlocal),線程間通信(wait,notify)
8, 異常處理
9, 多線程同步問題,生產者消費者,讀者寫者,哲學家就餐,用java實現
10, 了解java中設計模式的思想,用了哪些設計模式,有什么好處
程序員朋友由于每天面對和電腦溝通的語言,有時候可能忽略了一些自然語言的技巧,而在面試中,一些說話的套路往往會幫求職者增分不少,Java就業課中,就有關于面試技巧的分析和參考:
一、面試官: 在我們這兒工作,您希望有什么樣的薪資待遇?
提示:了解該公司所在地區、所屬行業、公司規模等信息,你的薪水要求應該在該公司所在地 區、行業、公司規模相應的薪水范圍之內。盡可能提供一個你期望的薪水范圍,而不是具體的薪金數。
求職者:其實工資并不是我決定工作機會的唯一因素,如果您一定要我回答這個問題,只能說我希望以我所受的教育背景及工作經驗,我希望我的工資不低于年薪 50,000 元。
二、面試官: 你認為每年加薪的幅度是多少?
提示:通常, 比較可靠的回答是: 你希望收入的增長和生活水平的提高保持一致。你還應該提到,你的業績將是加薪的主要因素。
求職者:總體來說,取決于我個人的業績和公司的業績(盈利狀況)。但一般而言,至少和生活水平的提高保持一致。
三、面試官: 你上一份工作的收入是多少?
提示:有時候面試人員希望得到一個比較明確的答案。記住,在陳述你的收入時,要把你的整個福利收入也加在上面。在有的公司福利收入可以使你的年收入增加 30% 或更多。
求職者:我過去的三年內一直在 ABC 公司工作,我是大學一畢業就在這個公司的,當時并沒有管理經驗。這三年中,我積累了很多管理和財務方面的技巧。現在 ABC 公司給我的薪水是非常富有競爭性的。
四、面試官: 你愿意降低你的標準嗎?
提示:如果這確實是你非常希望得到的工作,那么,你應該考慮在開始時工資有所降低。
應強調你可以把工作做得很好,并設法了解公司調整你薪水的時間。另外,對你能夠接受的極低數額應心里有數,但千萬不要把這個數字告訴給面試人員。
求職者:由于我對該職位非常感興趣,我可以考慮接受低一些的薪水,你也需要時間讓我證明我的能力。我相信我可以干得十分出色,如果我能證明我的能力,你是否會考慮對我的薪水作一些調整呢,比如說,在三個月后。
五、面試官: 你認為我們提供給你的薪水如何?
提示:在回答這個問題之前,首先確定這是否是正式聘用的工資數額,也許面試人只是想了解你的工資要求。如果是正式聘用的工資數額,你要確定自己是否能夠接受這個數額。
在西方國家,多數雇主希望你能跟他們進一步商量;而在亞洲國家,則相反。如果這個數目大大低于你的期望,可以有技巧性地詢問其它的福利項目是怎樣的。
求職者:這個數字跟我期望的非常接近,不過我的期望值要稍高些。您是否可以提供一個大致的薪資范圍?
六、面試官: 能否告訴我,你的工資調整紀錄?
提示:在這個問題中,面試人員只是想知道是否你一直原職不變,或者說是否你不斷得到晉升的機會。所以,盡量避免提供薪資具體數額,除非他們要求。
求職者:N年來,我一直在 ABC 公司工作,曾得到X次職務提升。ABC 公司每年薪資調整的幅度不是太大,但由于我的工作總是十分優秀,每年的薪資調整都接近調整的很高水平。我目前的工資已比我開始工作的頭一年提高XX%。
自學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技術江湖】一位ucloud 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 JSONJSON逐漸成為前后端數據交互的標準格式,為了在項目中使用JSON的API,你也需要導入它的jar包,一般我們都會使用ucloud提供的fastjson,趕快下載來玩一玩吧。當然,常用的Java Web組件還有很多,比如HTTPClient,再比如一些加密工具,一些壓縮工具等等,這里就不再一一列舉了。5 總結今天的內容就到這里了,與其說是初級篇,反而更像是“項目篇”呢。因為學完基礎內容之后,做項目是最好的復習和實踐方式了。所以這篇文章圍繞著做項目來展開,也就不足為奇了。今天我們主要講的是,做好一個JavaWeb項目,需要哪些知識儲備,需要了解哪些技術,并且我也推薦一些比較精品的視頻課程。后面我還會寫一篇文章,專門講一講怎么做項目,會更加詳細,更加側重怎么去做,敬請期待吧。總結以下今天說的幾個要點吧:
1 Java基礎知識儲備 2 前端知識儲備 3 了解和使用JavaWeb常用技術 4 JavaWeb常用組件介紹 5 視頻課程推薦俗話說的好,磨刀不誤砍柴工,相信你看了本文之后,可以更好地做好知識儲備,然后開始Java Web的項目實踐,希望你能夠順利地完成你的第一個項目。
微信公眾號【黃小斜】作者是螞蟻金服 JAVA 工程師,專注于 JAVA 后端技術棧:SpringBoot、SSM全家桶、MySQL、分布式、中間件、微服務,同時也懂點投資理財,堅持學習和寫作,相信終身學習的力量!關注公眾號后回復”架構師“即可領取 Java基礎、進階、項目和架構師等免費學習資料,更有數據庫、分布式、微服務等熱門技術學習視頻,內容豐富,兼顧原理和實踐,另外也將贈送作者原創的Java學習指南、Java程序員面試指南等干貨資源
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答