❶ Java學會那些知識找工作才不費力
很多Java初學者會關心這么一個問題——Java學到什麼程度就可以出去找工作了?大家的目標都很明確,也很實在,學習Java無非就是為了找個工作,使自己和家人生活更好。那到底要學到那些Java知識,就可以去找第一份工作了呢?
下面咱們就以公司大小運用到的技術來解答,為什麼這樣說呢,小型的公司肯定沒有大型公司運用到的知識多,從另一個角度來看,大家也可以來測試一下自我學到的知識符合去一個什麼樣的企業。下面是我給大家總結和介紹。1、中小型公司:這類公司可以說特別的多,招聘和培訓可派歲瞎能會有自塵空己的一套標准,比如學歷上可能稍微做一些要求,技術上的把關也會有一定的方法,除了Java基礎知識和項目經歷之外,可能還會考查你的debug能力,代碼規范、異常處理能力,以及對一些Java高級特性的理解能力,可能最好多用過一些框架。總而言之,這類公司選人的標准已經擁有了自我體系,不會像一些特別小的公司,招人很隨意,領導拍個板就行。當然,這類公司也吸引不到太多優秀人的人才,但是也確實可能會有一些踏實能乾的勤奮員工。2、大中型公司:這類公司一般都會要求本科學歷,對Java基礎知識要比較熟悉,最好能夠看過源碼,如果沒看過,那麼源碼方面的面試題好歹也要准備一下,除此之外,一般來說還會考察你的後端技術知識,比如資料庫、網路、操作系統,考察的不會太難,能把面經上的知識點掌握了就算是比較扎實了。這類公司一般不會考太復雜的題目,更希望招一些水平能力都是中等的人才,只要知識面能比較廣,題目都能說到點子上,不需要掌握得特別深入,也可以有機會拿到offer。其實歸結原因,就是因為二三線互聯網不太可能和一線公司爭奪一線人才,所以一般爭取的都是二線人才,不需要太優秀,但是至少要是中等水平,所以這些公司對很多程序員來說還是比較有機會的。3、特大型公司:要進這些公司,不僅要做到之前那些事情:掌握Java基礎、計算機基礎知識,並且是非常熟練地掌握,你需要深入理解每一個知識點,因為面試官會不斷深入地向你提問,了解你的知識深度,同時,你需要對源碼有所理解,在讀懂源碼的基礎上去理解框架的實現、JDK的實現。另外,你需要對JVM有一個清晰的認識,不僅要了解其結構,垃圾回收原理,甚至還要知道如何在遇到線上問題時通過JVM調優來解決它們。同理,你還需要對Java並發編程和網路編程的使用方法與底層實現原理非常熟悉,不僅僅答出NIO和BIO的區別,或者是synchronized和lock的區別,你還需要知道NIO的底層實現epoll是什麼,synchronized對應的mutexlock是什麼,lock和condition的實現原理又是什麼,而lock本身也是通過AQS、CAS操作類等組件來實現的,其中的內容實在太多,絕不只是幾道面試題就可以搞定的。當然,除此之外,這些公司對資料庫、緩存、分布式技術等方面的要求都會比其他公司要高得多,你最好要搞懂MySQL的存儲引擎、索引和鎖的實現原理,Redis緩存的數據結構、備份方式、底層實現。同時如果你能理解負載均衡演算法、CAP理論,甚至是raft和paxos演算法,以及分布式常用技術如消息隊列、zookeeper等等,那麼無疑也是可以為你加分的技能。為什麼大公司的要求這么高,因為它們是最好的互聯網公司,要招的自然也是最優秀的人才,如果考察底層原理還不能滿足他們篩選人才的需要,他們也會考察面試者的演算法能力,比如LeetCode上medium難度的原題,或者是劍指offer的變式題等等,演算法題相對考察理論基礎而言,篩選度更雀拆高,可以淘汰的人也更多。