Java學(xué)到什么程度才能叫精通?
首先Java平臺(tái)博大精深,一直被譽(yù)為互聯(lián)網(wǎng)霸主;我們都知道互聯(lián)網(wǎng)技術(shù)結(jié)構(gòu)之復(fù)雜,所以Java的技術(shù)組件,架構(gòu)也非常之多和復(fù)雜;正所謂萬(wàn)丈高樓平地起對(duì)吧,想要精通Java,那么首先基礎(chǔ)知識(shí)必不可少,基礎(chǔ)知識(shí)我有分為兩部分:
1:計(jì)算機(jī)基礎(chǔ)知識(shí)
Java也是一門(mén)計(jì)算機(jī)語(yǔ)言,當(dāng)然暫且不表Java的特點(diǎn)以及和其他語(yǔ)言的對(duì)比之類(lèi)的話。既然是計(jì)算機(jī)語(yǔ)言那么計(jì)算機(jī)的基礎(chǔ)知識(shí)肯定是必備的,操作系統(tǒng)(這個(gè)知識(shí)最起碼在學(xué)習(xí)Java多線程的時(shí)候才能真正的說(shuō)理解多線程以及多線程調(diào)度等等,還有進(jìn)程管理等等要不很多人動(dòng)不動(dòng)就是什么JVM調(diào)優(yōu),垃圾回收器呀什么什么的,JVM調(diào)優(yōu)并不是簡(jiǎn)簡(jiǎn)單單的改動(dòng)點(diǎn)參數(shù),如果僅僅是改動(dòng)一點(diǎn)參數(shù)就叫JVM調(diào)優(yōu)...對(duì)吧其他的這里就不說(shuō)了);
計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí)(最起碼的你知道HTTP,TCP/IP,UDP等最基本的這些協(xié)議吧,網(wǎng)絡(luò)通信原理)。
2:程序基礎(chǔ)知識(shí)
程序的基礎(chǔ)知識(shí):
計(jì)算機(jī)語(yǔ)言的運(yùn)行原理(例如二進(jìn)制的計(jì)算肯定比十進(jìn)制的快這些基本的運(yùn)行原理,還有就是要不你怎么理解JVM對(duì)吧等等);
算法(重要,很多互聯(lián)網(wǎng)大公司很看重這個(gè),算法都不懂,你還說(shuō)什么代碼運(yùn)行效率;還有就是JDK源碼你怎么看都需要算法知識(shí))
數(shù)據(jù)結(jié)構(gòu)(重要,你去看看Java集合類(lèi)的源碼,哪一個(gè)不是數(shù)據(jù)結(jié)構(gòu)的東西)
下來(lái)進(jìn)入到Java中來(lái)說(shuō)
首先還是那句話,精通一門(mén)語(yǔ)言,那么你必須要從它的平臺(tái)內(nèi)部開(kāi)始,所以JVM就是第一個(gè)需要深入了解的東西;JVM怎么進(jìn)行內(nèi)存管理(這就常見(jiàn)的堆,棧,方法區(qū),程序計(jì)數(shù)器等等),ClassLoader(類(lèi)加載的機(jī)制的層次:Bootstrap ClassLaoder,Extension ClassLoader,System ClassLoader,以及自定義類(lèi)加載器,雙親委派模式原理,Clasl文件的顯示加載與隱式加載),gC管理(前面了解了JVM的內(nèi)存管理,這個(gè)地方才能知道gC的作用,知道新生代,老生代,永久代,gC收集算法,強(qiáng)引用,弱引用,軟引用,虛引用等等);常用的一些Java命令(例如:Java反編譯,性能監(jiān)控,故障處理)這是必備的就不多說(shuō)
Java基礎(chǔ)知識(shí)
Java基礎(chǔ)知識(shí)比較多就不一一羅列,但是例如String,StringBuffer,StringBuilder,Integer,ArrayList , LinkedList、Vector,Stack, HashMap , LinkedHashMap , TreeMap , CouncurrentHashMap、HashSet , LinkedHashSet , TreeSet , HashMap,Queue ,Deque,BlockingDeque, BlockingQueue, TransferQueue(太多了就不全列舉出來(lái))這些基本的集合,線程,線程鎖,線程池,Socket,反射等類(lèi)的源碼要熟讀;
JavaWeb部分
基本的網(wǎng)絡(luò)知識(shí),網(wǎng)絡(luò)協(xié)議知識(shí);Servlet標(biāo)準(zhǔn),JSP的原理(雖說(shuō)現(xiàn)在這些直接使用的少了,但是基礎(chǔ)知識(shí)在理解其他知識(shí)絕對(duì)需要);服務(wù)器的配置和管理(這部分一會(huì)在分布式中詳細(xì)說(shuō));AJAX,JSON等等;數(shù)據(jù)池,數(shù)據(jù)緩存,性能優(yōu)化等等
mybatis , Spring(這個(gè)厲害了,這個(gè)都成了分布式系統(tǒng)生態(tài)鏈),Spring基礎(chǔ)的IOC,AOP(重復(fù)一次,不是說(shuō)你會(huì)使用和配置,而是要深入理解以及理解源碼),SpringMVC,SpringBoot(這個(gè)加上maven,對(duì)于構(gòu)建微服務(wù)有著非常重要的地位),SpringCloud,RestFull,RPC,RMI,SOAP協(xié)議,微服務(wù)的管理(Eureka,Zookeeper等),負(fù)載均衡(Nginx,Ribbon等),Dubbo,Hystrix(微服務(wù)熔斷保護(hù)),Config(遠(yuǎn)程配置與管理維護(hù)),Zuul(路由),F(xiàn)eign,MQ(消息中間件,RabbitMQ,kafka,ActiveMQ等等),elasticsearch(搜索服務(wù)器),Memcache等等
數(shù)據(jù)庫(kù)方面:
?先說(shuō)數(shù)據(jù)庫(kù)常用的產(chǎn)品:mysql,oracle,redis,mongodb 這些都要會(huì);
mycat的讀寫(xiě)分離,數(shù)據(jù)庫(kù)集群
mysql的存儲(chǔ)引擎(這個(gè)不但要了解理論知識(shí)還要知道實(shí)際使用),索引(數(shù)據(jù)庫(kù)高效的最基本的東西),存儲(chǔ)過(guò)程(這里申明一下不是說(shuō)會(huì)定義一個(gè)存儲(chǔ)過(guò)程不是說(shuō)語(yǔ)法,而是存儲(chǔ)真正在實(shí)際中的運(yùn)用)等,Oracle的內(nèi)存結(jié)構(gòu),進(jìn)程結(jié)構(gòu),SQL優(yōu)化,數(shù)據(jù)庫(kù)服務(wù)器管理調(diào)優(yōu)等,其他的就不過(guò)多贅述;
redis,mongodb(這個(gè)不用多說(shuō),現(xiàn)在使用非常廣泛)
操作系統(tǒng):
? ? ? Liunx一定要熟練使用(現(xiàn)在好多技術(shù)都是更加適應(yīng)Liunx,再說(shuō)服務(wù)器大部分肯定是Liunx居多)
實(shí)戰(zhàn):
所有的理論都需要實(shí)踐去檢驗(yàn),所以最終要成為高手或者說(shuō)是所謂的精通,一定且唯一的校驗(yàn)標(biāo)準(zhǔn)一定是在實(shí)際的項(xiàng)目中來(lái)完成。
所以想要精通,那么一定是非常扎實(shí)的理論,對(duì)理論能有自己的領(lǐng)悟,然后用來(lái)解決實(shí)際問(wèn)題;在實(shí)際的問(wèn)題中夯實(shí)自己的知識(shí)。

給剛?cè)腴T(mén)的或者初級(jí)Java開(kāi)發(fā)小伙伴分享整理非常詳細(xì)的資料,可以評(píng)論區(qū)留言自行下載,包含了Java電子書(shū)60幾套,面試題,學(xué)習(xí)路線,開(kāi)發(fā)工具,學(xué)習(xí)筆記等都有。不管是正在學(xué)習(xí)還是即將找工作都是能用到的,有需要的或者真正用得著的可以認(rèn)真看看~