java后端工程师主流技术以及相关书籍推荐(持续更新)

参考自:

https://blog.csdn.net/piantoutongyang/article/details/45470473

学习路线 :可以参考慕课网

java后端工程师主流技术以及相关书籍推荐(持续更新)_第1张图片

偏头痛杨总结的java后端工程师的主流技术学习路径:
1.java基础阶段

类、对象、变量、接口、抽象类、数据类型、封装&继承&多态、异常、内部类、  
注解、泛型、枚举、多线程、IO&NIO、网络编程;

2.java web基础阶段

servlet、filter、listener、jsp、session&cookie、tomcat、mysql、  
jdbc、junit、html、javascript、json&xml;

3.单机web系统&前后端分离阶段

spring、springmvc、mybatis&spring jdbc、nginx、druid&c3p0&dbcp、  
quartz、gradle&maven、git&svn、jenkins、linux;

4.RPC&分布式&面向服务阶段

springboot、dubbo、zookeeper、redis&memcached、rocketmq&rabbitmq  
,docker、mongodb、hadoop、ELK、drools;

5.微服务阶段

spring cloud、sevice mesh;

中间穿插着深入理解java多线程、NIO、JVM、GC、CLASSLOADER、数据结构与算法、协议、设计模式等底层原理知识点。
以及JDK1.8之后新增的例如函数式编程等知识点,以及尝试去阅读一些java底层和优秀开源框架源码。

注意请不要把有限的时间&精力浪费在过时的技术上。
过时技术列表:oracle、sql server、jsp、jstl、struts、hibernate、weblogic&websphere、ant、javaee(jni,jms,ejb)
以及不要去深入研究类似于安卓、前端、大数据、人工智能等方向,因为这些属于转行了,所谓术业有专攻,把好钢用在刀刃上。

推荐的技术书籍列表:不分先后顺序 因为 我好多都没看过……
《编码》
《java核心技术卷1》
《图解HTTP》
《图解TCP/IP》
《阿里巴巴开发手册》
《淘宝技术这十年》 子柳
《Java编程思想》(有点老了 但还是推荐看看)
《架构探险》系列,黄勇
《Java程序员职场全攻略:从小工到专家》,吴亚峰
《Java并发编程实战》
《Java并发编程的艺术》
《计算机网络》 重要
《操作系统》 重要
《大型网站技术架构 核心原理与案例分析》
《Java nio》
《Spring实战》
《Spring源码深度解析》
《Head First 设计模式》
《大话设计模式》
《设计模式之禅》
《算法》(第四版)
《高性能MySQL》
《敏捷软件开发:原则、模式与实践》
《重构——改善既有的代码设计》
《代码整洁之道》
《程序员修炼之道:从小工到专家》
《Effective java》网上有第三版了 是英文版的
网络总有前人给你铺好路了
翻译Effective java

2018.5.27更新:

JSP有个致命的弱点,就是JSP是需要servlet容器去解析的,例如tomcat这种,  
而很多页面请求理论上 是不用tomcat的,这样就造成了tomcat的压力过大,  
因此引入nginx,引入前后端分离。

javaee里的技术大多数被淘汰了,现代的java web都是以spring+mybatis+springmvc框架为主导,把这三个掌握牢固后再引入springboot。java后端不会被淘汰,淘汰的只是一些过时的技术,而java相当于是一整套生命体系。如果你是初学者,JSP可以学,写几个小demo就可以了,不用深入。
bootstrap、css、js、jquery,这些都是前端工程师需要掌握的基础,如果你学了,只需要蜻蜓点水即可。

过时框架:struts2和hibernate 学这两个过时框架真的是在走弯路

最新的web框架书推荐 : javaEE企业级应用开发教程(黑马的) 入门用
里面的知识都是可以看的

建议 先看书 大脑里存有一个知识体系树 然后遇到不懂的再去搜文章
初级教学视频看看就行了 因为拍的人质量都是层次不齐 拍的不好 也会误导大家,所以以书为主 文章视频为辅

了解:html css javaScript,javaweb概述 ,JSP技术,Servlet,数据库连接池和DBUtils工具,JSP开发模型
跳过:EL表达式和JSTL,文件上传和下载
可以看看:Servlet基础,请求和响应,会话及其会话技术,JDBC

2018.5.31更新:
过时技术列表,箭头左侧代表过时的技术,右侧代表替代的技术:
持久层:jdbc->hibernate->ibatis->mybatis
WEB层:servlet->struts->springmvc
业务层:ejb->spring
远程通讯:mina->netty
数据库:oracle&mssql->mysql&postgresql
应用服务器:tomcat->weblogic&websphere&resin&jboss->tomcat
WEB服务器:apache->nginx->tengine
连接池:dbcp&c3p0->driud
消息队列:activemq->kafka->rocketmq&rabbitmq
页面:jsp&jstl&el->html+ajax
构建:ant->maven&gradle
版本管理:cvs&vss->svn->git
通信:xml->json

提一嘴:
tomcat,为什么tomcat能力有限,还有人大量使用,
因为tomcat免费,开源,容易组成tomcat集群,用docker可以动态扩容。
在使用springboot之后,把tomcat内嵌到java进程中,使用上更加方便了。

你可能感兴趣的:(日常总结)