Java自学路线
本文转自程序羊公众号,下图有公众号全称
放在博客方便自己复习查看,侵删。
致敬程序羊前辈
基础知识
一、语言本身
如下一些重点必须掌握:
语法基础
OO编程思想:类、对象、封装、继承、多态、接口
容器
异常
泛型
I/O
注解
反射图形化界面,如 swing的东西跳过不看
二、数据结构和算法
几大基础数据结构类型得烂熟于心,比如:字符串、链表、二叉树、栈、队列等等;基本的几大算法要了如指掌,比如查找、排序、动态规划等等。
三、TCP/IP协议栈
TCP/IP协议栈可以说是当下互联网通信的基石,无论如何一定要对TCP/IP的协议栈了如指掌,包括:ARP协议、IP协议、ICMP协议、TCP和UDP协议、DNS协议、HTTP协议、HTTPS协议等等
四、设计模式
倒不需要23种设计模式全部很熟悉,常见的几个,比如:单例模式、工厂模式、代理模式、策略模式、模板方法模式等几个熟练于心即可
五、数据库和SQL
数据库基本原理了解,SQL语句熟练书写
项目工具
Linux系统基本命令会使用, Linux系统上常用的服务会部署
代码管理:SVN或 Git 二选一,持续练习,熟练使用
基于 Maven或 Gradle的 Java项目管理二选一,熟练使用
应用框架
一、Spring全家桶
了解Spring、Mybatis等框架的基本原理
Spring Boot框架会熟练使用、开发业务、掌握基本原理
SSM组合框架会上手搭建项目、开发业务、掌握基本原理
二、中间件技术
消息队列,主流的如 RabbitMQ、 Kafka等
RPC通信框架,主流的如 gRPC、 Thrift、 Dubbo等
NoSQL数据库:主流的如 Redis、 memcached、 ElasticSearch等
NIO网络通信框架,主流的如 Netty等
这些成熟的中间件框架在企业级产品里应用得广泛而深远,建议先是要会熟练使用,要是能了解底层原理实现那就更加分了!
三、分布式微服务
当下微服务盛行,是个公司都说自己在搞微服务,所以诸如 SpringCloud这样的微服务框架怎么能不学,要求也是先会使用,再尝试搞懂原理
四、虚拟化/容器化
虚拟化、容器化平台是未来发展的大趋势,很多规模化企业都在搭建各SaaS/PaaS/IaaS平台,在此过程中诞生的一系列关于该方面的技术在学有余力的情况下最好也涉猎一下,典型的比如:Docker容器、 kubernetes编排技术。
关注源码/性能
在如今这个流量极其密集的互联网时代,关注到源码和性能层面的程序员才是顶级好码农,所以:
关注JDK源码和设计思想
关注Java并发编程原理和实践
关注JVM细节原理与调优
关注上述应用框架的核心思想和内部源码
关注数据库深度优化
等等…
则成了走向顶级程序员之路的必备技能。