目錄
前言:
Java需要掌握的知識點
初中級 Java 程式員必須掌握的知識,
微服務思維導圖
阿里官網支付寶Java高級開發工程師的招聘要求
應屆實習生如何提升你的個人競爭力
前言:
我聽說編程語言,經常使用的是其中20%的技術,在Java這門語言中,這20%包括哪些內容?參加培訓兩個月了,還有兩個月的時間,要想在兩個月后,找到一份Java初級程式員的作業,有哪些是必須掌握的,有哪些是可以現學現賣的?一個完整的Javaweb專案,有哪些具體模塊,每個模塊用到的技術是哪些?

Java需要掌握的知識點
- java以分布式應用豐富的生態聞名,在分布式系統中逃不過CAP的抉擇,早早了解一些分布式一致性協議paxos、raft等,學習zookeeper的原理和使用場景(metadata、分布式鎖、leaderEletion... etc)
- RPC框架在SOA架構中起著重要的作用,好好探究終是有好處的,在這里推薦阿里巴巴的dubbo框架,同時會netty、mina等網路庫
- ElasticSearch\SolrCloud 分布式搜索 ELK 日志相關的東西對這些比較敏感,當然在更多的場景使用ES也是有很多
- 訊息佇列 kafka\MetaQ RabbitMQ 快取 Redis/memcached .容器tomcat/jetty web服務器NGINX/OpenResty
- 然后就是各種基礎知識,編程語言、網路方面、資料庫、資料結構和演算法,不要覺得任何一項都精通了,敢說精通的知乎能有幾個,
- = =太多東西了,一時還真想不起來完,上面這些也就目前業內常見的東西吧,在不同的作業當中會遇到不同的問題,需要更多的工具、開源框架來解決各種蛋疼的問題,然后會的東西越來越多,然后就不知道自己到底會寫什么了,
- 掌握技能也就是需要時間成本和學習成本,要成為一個好的程式員不要怕學習,有學歷能力需要新技術才能跟得上,想當年才學的時候struts2比springmvc高出一截,不過現在也基本沒人用啦,
很多初學者或者有經驗的開發者都會陷入這個泥潭:“不知道自己該學什么?”,

我覺得最簡單的方法就是你去招聘官網上看看公司要求什么技能,比如初級 Java 工程師的招聘要求肯定和高級 Java 工程師的招聘要求不一樣,阿里的 Java 工程師的招聘要求肯定和 普通公司的Java 工程師招聘要求不一樣,
初中級 Java 程式員必須掌握的知識,
- 熟練掌握資料結構、演算法、作業系統、計算機網路等基礎知識
- 熟練掌握Java編程、熟悉Java高并發開發手段、對JVM 虛擬機(Java記憶體區域、虛擬機垃圾演算法、虛擬垃圾收集器、JVM記憶體管理)有一定研究
- 熟練掌握SOA分布式系統開發,具有優化系統性能、提高系統并發量以及系統可用性的實際經驗
- 熟練掌握Spring、MyBatis、SpringBoot等框架的使用,熟悉 Spring 原理比如 Spring Bean 的創建原理、IOC和AOP的原理,另外,由于現在基本公司都是直接用 Spring Boot ,所以實戰建議直接上手Spring Boot,SSM就算了吧,Spring 還是可以看一下,
- 熟練掌握Dubbo、Zookeeper、常見的訊息佇列(比如Kafka、RocketMQ)的使用
- 熟悉Linux 系統的使用,在Linux系統下具有實際的開發經驗
- 熟悉MySQL資料庫的使用、常見SQL陳述句的書寫以及常見的優化手段
- 熟練掌握 Redis 了解Redis 常見的資料結構、Redis分布式快取以及Redis分布式鎖的實際應用
- 掌握 Spring Cloud +Docker+k8s
- 了解Hadoop 生態相關技術中的 HDFS、Storm、MapReduce、Hive、Hbase
微服務思維導圖
小編這里總結了一份spring cloud的思維導圖,有興趣的小伙伴可以點擊看一下哦!需要思維導圖領取可以 點我領取 ,

阿里官網支付寶Java高級開發工程師的招聘要求
我們再來看一下阿里官網支付寶Java高級開發工程師的招聘要求,年薪至少40w起步了吧!從下面的招聘資訊可以看出,除去Java基礎/集合/多執行緒這些,這些能力格外重要:
- 底層知識比如jvm :不只是懂理論更會實操;
- 面向物件編程能力 :我理解這個不僅包括“面向物件編程”,還有SOLID軟體設計原則,
- 框架能力 :不只是使用那么簡單,更要搞懂原理和機制!搞懂原理和機制的基礎是要學會看原始碼,
- 分布式系統開發能力 :快取、訊息佇列等等都要掌握,關鍵是還要能使用這些技術解決實際問題而不是紙上談兵,
- 不錯的sense :喜歡和嘗試新技術、追求撰寫優雅的代碼等等,

應屆實習生如何提升你的個人競爭力
結合阿里、騰訊等大廠招聘官網對于 Java 后端方向/后端方向的應屆實習生的要求下面幾點也提升你的個人競爭力:
- 參加過競賽( 含金量超高的是 ACM );
- 對資料結構與演算法非常熟練;
- 參與過實際專案(比如學校網站)
- 熟悉 Python、Shell、Perl 其中一門腳本語言;
- 熟悉如何優化 Java 代碼、有寫出質量更高的代碼的意識;
- 熟悉 SOA 分布式相關的知識尤其是理論知識;
- 熟悉自己所用框架的底層知識比如 Spring;
- 有高并發開發經驗;
- 有大資料開發經驗等等,
從來到大學之后,我的好多閱歷非常深的老師經常就會告誡我們:“ 一定要有一門自己的特長,不管是技識訓好還是其他能力 ” ,我覺得這句話真的非常有道理!
剛剛也提到了要有一門特長,所以在這里再強調一點:公司不需要你什么都會,但是在某一方面你一定要有過于常人的優點,換言之就是我們不需要去掌握每一門技術(你也沒精力去掌握這么多技術),而是需要去深入研究某一門技術,對于其他技術我們可以簡單了解一下,
這讓我想到了我當年第一份作業,也是兩個月從零學JAVA,當時就買了3本書,強啃了6周,記住一點,時間有限,別聽網上很多大牛的,他們說的太雜,你要抓重點,你只要讓人家知道,你足夠初級開發就可以了,學了長長一個串列,個個不精,被面試官隨便問起來,就糟了,倒不如抓住最基本的,反正你就是初級人員,只懂最基本的,是最正常的情況,
首先,學會一個J2EE服務器,tomcat+(Nginx或者httpd等web服務),學會的標準是,會下載,能啟動,知道什么檔案部署在什么地方,能看到啟影片面,能知道最直接,最關鍵的組態檔名字和位置,你要了解下其他的服務器的名字,就足夠了,有人叫你去學weblogic?那是坑你,2個月weblogic,你最多也只能懂十分之一,太重,
其次,學一個框架,以前SSH,現在SSM,這些都多余,你就只看spring MVC,因為所有的mvc框架都類似,你只要堅持你了解MVC,其他的我覺得是容易借鑒類推的,H和M,你就直接說,我沒有專案經驗,我是沒有實際接觸過的,我只了解一點點原理,這個不要花時間,最后去看幾眼檔案就可以了,spring MVC,就這么簡單,一個就行,
然后是資料庫,別趕時髦搞nosql,老老實實關系型,mysql就很好,坑淺應用多,最近連集群支持的都很好了,你只要強調一點,資料庫,你不是DBA,你還不懂如何調優,如何調執行計劃,你只懂增刪改查,所以你要學的就是T-SQL,標準是你能手寫帶條件的增刪改查,會復雜陳述句更好,稍微了解下sql效率方面的問題,為了面試也是可以,MSSQL在國內被鄙視的不行,如果有人叫你弄oracle,那又是太裝逼,我手下一票的5年+程式員,其中有超過一半連oracle的AWR都不會讀,有的連資料字典都不知道,
IDE不多談,你總逃不過eclipse和幾個大廠的東西,要用簡單易用的,別花太多時間在這個上面,
設計模式你要稍微看一下,了解什么是設計模式,你大可以老實說,你根本剛入行,只是粗通工廠模式和單粒,其他的需要在作業中學習,這樣既不會顯得完全不懂,也不會出什么紕漏,
程式方面,jdbc需要了解下,相關的有連接字的寫法,如何準備和獲取結果,什么是resultset這類東西,當然,資料庫連接的關閉和釋放也是需要的,
類和抽象類和介面的關系搞清楚,繼承和實作搞清楚,多載重寫搞清楚這些都是基本概念,
EJB現在不太用了,稍微了解下,你可以用spring所以不用手寫EJB了,spring除了MVC以外,還有很多專案,DAO可以看一下,比較初級,
由于java主要是B/S結構,無論是集成還是自己的前后端,你都要看一下http,整個http的生命周期是什么?存在哪些步驟和不同的application負責哪個階段,相關的有幾個request和response物體,包含什么是session了解下,
業務邏輯的話,上手仔細寫幾個例子就好了
前段你不需要了解太多,JSP+JS就足夠了,你是程式員,不是前端的美工,不用去了解太多,jsp上有個容易忽視的基礎點:tag到底是什么如何處理,jsp的生命周期這些也最好看一下,
基礎的devops稍微了解下, git的代表,github可以注冊一個賬號,搞清楚本地repo和遠程repo之間的關系即可,SVN更為簡單一點,
Maven也要學習一下,主要是pom檔案的幾個主要的部分,尤其是depedency,
code smells方面手寫萬把行代碼,自己有個感覺,不用去刻意背javadoc,
去面試吧,祝你好運!

文章到這里就結束了!
最后來自小編的福利
以下是小編整理的一份大廠真題的面試資料,以及2020最新Java核心技術整理的資料集錦,需要領取的小伙伴可以 點我 免費領取 ,編程的世界永遠向所有熱愛編程的人開放,這是一個自由,平等,共享的世界,我始終是這樣堅信的,
部分資料圖片:

喜歡小編的分享可以點贊關注哦,小編持續為你分享最新文章 和 福利領取哦
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229822.html
標籤:其他
上一篇:Codeforces Round 99(Rated for Div. 2) -- B Jumps
下一篇:簡歷上還不敢寫精通redis?來看看這份阿里強推的redis深度歷險成長手冊!集群+應用+拓展+原理+原始碼齊飛
