对于这个问题,偶也不太好说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开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。