Java体系(二)

前言:本文主要说说Java的学习路线,学习途径,学习方法。

一.学习路线

我个人推荐最扎实的学法,就是不仅限于语言的学习,对计算机基础也要系统的学习,基础是内功,千万不能小觑,如果你想成为一名真正优秀的程序员,内功必须扎实,否则当出现瓶颈的时候就追悔莫及了。

1.计算机基础

数据结构:链表,栈,队列,树,图,排序算法等。

计算机网络:OSI模型,TCP/IP协议,UDP,HTTP/HTTPS,DNS,XSS/CSRF等。

操作系统:进程/线程/死锁,存储管理,文件系统,输入输出系统等。

计算机组成原理:二进制运算,存储/Cache,中断,CPU原理等。

这四门是计算机学科的基础课程,原理非常之重要,是你理解计算机原理的必经之路,这里只是罗列它们当中我认为最重要的基础,当然这四门学科想要弄懂弄透,那还是要花费很大精力的。

2.Java基础

集合:ArrayList/LinkedList,HashMap/HashTable/ConcurrentHashMap,HashSet,TreeMap,BlockingQueue等。

IO:BIO,NIO,AIO,多路复用的模型(select,poll,epoll区别)

多线程:锁,线程创建,线程通信,JUC包,线程池等。

JVM:内存模型,内存划分,类加载机制,垃圾回收,调优等。

Java8/9/11新特性:Lambda,StreamAPI,ZGC等。

3.JavaWeb

前端:HTML/CSS/JavaScript/jQuery/BootStrap/Ajax/JSON等。

Tomcat/Weblogic:tomcat架构原理,weblogic集群搭建。

HTTP协议:协议组成,http1.0/1.1/2.0区别,常见协议状态

XML:命名空间,DOM/SAX/DOM4J解析。

Servlet/JSP:Servlet生命周期,转发/重定向,过滤器/监听器,Cookie/Session,EL表达式,jstl标签库。

4.框架

Struts2/SpringMVC:Struts2虽然被诟病过时,但还有很多老系统在用,两者可以对比着学。

Spring:Spring是重中之重,要对Spring ioc/aop原理深入学习,会使用Spring注解。

Mybatis/Hibernate:两者都得学,Mybatis的通用Mapper和Mybatis-plus推荐学习,Hibernate则是后续SpringData JPA的默认实现,两者有各自独自的优势,可以对比着学。

要能熟练掌握SSH和SSM的整合开发,其实大量工作中的项目还是基于这种经典MVC模式。

除此之外如果你有极客精神,可以学学Blade和JFinal框架,可以进行极速开发。

5.J2EE相关组件

搜索:solr和elasticsearch。

安全:shiro和SpringSecurity。

网络:Netty。

5.分布式/集群

理论:CAP,BASE,了解Paxos和Raft算法。

Nginx:高性能服务器,主要做反向代理和静态分离,加强版阿里的Tengine也值得关注。

Dubbo: 阿里出品的高性能RPC框架。

Zookeeper:分布式协调服务。

消息中间件:ActiveMQ,RocketMQ,RabbitMQ,Kafka,推荐学习RabbitMQ。

7.微服务

微服务概念(和分布式SOA的细微区别)

详情参见马丁·福勒论文,https://martinfowler.cn/bliki/MicroservicePrerequisites.html。

SpringBoot:Spring的集大成者。

SpringCloud:微服务体系套件。

SpringData JPA:DAO层解决方案。

JHipster :Java代码的脚手架,最时髦的Java解决方案集合。

Docker:容器部署。

8.数据库

数据库连接池:C3P0,DBCP,Druid,深入学习Druid即可。

关系型数据库:MySQL,Oracle,SQLServer,PostgreSQL,主要以MySQL为主,值得留意的是PostgreSQL目前也越来越流行。

非关系型数据库(NoSQL):Redis,MongoDB,Memecache。主要以Redis为主。

9.工具

IDE:eclipse/idea,idea是大势所趋,不过eclipse短期也难以被取代,工具而已,不必特别纠结。

构建工具:以Maven为主,不过也可以学习一下Gradle。

版本控制:集中式SVN和分布式Git,Git/Github需要深入学习,尤其是要把github当做宝库,多浏览多学习。

持续集成:Jenkins。

10.方法论

软件设计原则。

23种设计模式。

详情参见:http://c.biancheng.net/design_pattern/


  转载请注明: MyBlog Java体系(二)

 本篇
Java体系(二) Java体系(二)
前言:本文主要说说Java的学习路线,学习途径,学习方法。 一.学习路线我个人推荐最扎实的学法,就是不仅限于语言的学习,对计算机基础也要系统的学习,基础是内功,千万不能小觑,如果你想成为一名真正优秀的程序员,内功必须扎实,否则当出现瓶颈
2019-06-15 统行
下一篇 
Java体系(一) Java体系(一)
前言:很长时间没写博客了,目前大三,通过这段时间的学习,对技术有了宏观上的视野,对Java的生态体系也有了较深的理解,所以停止了动笔主要是因为发觉之前自己的知识体系有很大的漏洞,IT所有技术的学习就好比数据库建索引的过程,如果没有清晰认知
2019-06-15 统行
  目录