謝邀~
對于這個問題,我也不太好說Java開發最常用的20%是什么,我就說說自己工作中,最常用的技術有哪些。
Java語言本身一些Java最常用的包、類:例如String、collections(List/Map/Set)、IO、網絡;
常用的庫:common庫、guava庫;這些都值得研究源碼;(guava庫是有一次我在做接口調用的限流時找到的,大名鼎鼎,只是我孤落寡聞)
多線程:synchronized、lock、volatile、線程池;
JVM:內存模型、內存管理、堆和棧、垃圾回收;
常用的設計模式:工廠、單例、代理、策略、門面、觀察者等;不要為了用而用;熟悉設計模式方便閱讀其他框架的源碼;
JDBC、異常處理、反射、序列化、Annotation、Cache;
熟悉每個Java版本的新特性。
Java框架、軟件、工具這就有些多了,我就說些常用的吧。
Spring的大多數框架,都值得一學。我就把它們放在一類里面了Spring、Spring MVC、Spring boot;
ORM框架:Hibernate、Mybatis、JPA;
各種常用的數據庫連接池:DBCP、C3P0、HikariCP、Druid(我們現在用這個);
各種消息隊列:我們用到的是RabbitMQ和Kafka;
關系型數據庫:這個根據項目來吧,Mysql或Oracle或DB2
非關系型數據庫:MongoDB、Redis(可以當做緩存用);
微服務框架:Dubbo或Spring Cloud,我們是用后者,里面的內容非常多;
接口:Restful
安全認證框架:Shiro、Spring Security;
項目構建工具:Maven;
版本控制工具:Git、SVN;
自動化部署:Jenkins;
容器:Docker;
負載均衡:Nginx、LVS;
Devops
想到多少寫多少吧;這些基本上覆蓋了我工作中常用的技術、框架、軟件。
我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。