本篇文章较长,包含整套java学习路径阶段知识点的详细介绍,以及各阶段相关视频教程以及配套资料,希望可以对想要学习的小伙伴有一些借鉴和帮助吧。
另:部分阶段知识点教程还没有整理完,小妹儿会留意后续更新,可以收藏一下哦~
java基础
学习任何一门编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我们称之为JavaSE基础。当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。
JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。
在Java基础板块中有6个子模块的学习:
技术树
基础语法
Java基础语法是更好学习Java高级特性和后阶技术的前提,基础语法包括变量、表达式、语句、方法、常用API等。
面向对象
Java是面向对象的语言,将一切可以描述的事物都抽象成对象,将属性、方法封装到对象中,从而易于操作,是一种思想的体现。
集合
Java中的集合是用于存储数据的容器,是在编程时使用频率极高的知识点,根据底层结构的不同可以分为List、Set、Map等。
IO
Java的IO是对磁盘和内存文件的操作,主要包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的。
多线程与并发
线程编程是Java中高级技术点,Java给多线程编程提供了内置的支持,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
异常
Java中的异常(Exception)是一个在程序执行期间发生的事件,它中断正在执行的程序的正常指令流。可以使程序更加规范与健全。
网络编程
Java内置API可以完成网络之间的通信,而网络编程也是学习各种服务器的网络基础,开发中手写网编代码机会比较少,但是众多服务底层都是基于网编的。
学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。
二、数据库
互联网最具价值的是数据,任何编程语言都需要解决数据存储问题,而数据存储的关键技术是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java程序和数据库通信的最常见技术是JDBC,Druid和C3P0。学习这些数据库技术后,可以掌握数据库运维技术、复杂业务表结构设计规范、工作中常见的SQL操作、软件数据存储等。
数据库不仅仅是Java开发工程师的必学课程,也是其他语言都需要掌握的技能。用于对交互过程中客户的数据进行存储。
该板块包括关系型数据库和非关系型数据库。
例如:MySQL、oracle、redis、MongoDB等。数据库学习完毕后,可以将数据存储到数据库中,也可以通过SQL语句从数据库中查询数据,结合Java项目可以实现动态站点的数据的保存。
技术树
Mysql
MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一,在电商等大型互联网项目中常被使用。
Oracle
Oracle Database是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品,常使用在传统项目中。
JDBC
JDBC是数据库连接规范,用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,是学习持久层框架的基础。
C3P0
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。作为很多框架的内置连接池。
Druid
DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP等DB池的优点,同时加入了日志监控,据说是目前最好的连接池。
三、前端技术
浏览器展示给用户看到的网页就是前端,前端有三大基础技术分别为Html、CSS、JavaScript,这些学完后,为了做出更好、更炫的交互式体验效果,我们还需要学习jQuery、ElementUI、Vue、Ajax,以及打包工具webpack。学完这些技术后,我们可以开发微信小程序、响应式网站、移动端网站、开发类似京东一样的B2B2C商城、管理后台等。
Javaweb阶段包括前端、数据库和动态网页。Javaweb是互联网项目的入门课程,是学习后面高进阶课程的基础。
首先,我们先看一下前端板块。该板块主要包括如下几个模块:
技术树
HTML
超文本标记语言,是网页制作必备技能。使用 HTML可以编写京东、淘宝等静态站点页面,通过成套的页面发布,可以创建自己的静态网站。
CSS
层叠样式表,主要负责样式展示,与HTML结合可以完成更加炫酷的页面效果,可以取代动画图片、Flash动画以及JavaScript。
JavaScript
世界上最流行的脚本语言,页面中的交互逻辑性就是通过JavaScript驱动的,可以实现电脑、手机、平板以及基于HTML5的手机App的交互。
jQuery
jQuery 是一个高效、精简并且功能丰富的 JavaScript工具库。jQuery让诸如HTML文档遍历和操作、事件处理、动画和 Ajax 操作更加简单。
Ajax
Ajax是一种用于创建更好更快以及交互性更强的web应用程序的技术,是用JavaScript执行异步网络请求,前后端开发人员都必须掌握的技能。
Vue
Vue是一套构建用户界面的渐进式框架,可以说是近些年来最火的前端框架之一,Vue使得前端开发变得更加简易,也是开发工程师必备技能。
webpack
webpack是一款模块加载器兼打包工具,它能把各种资源,例如Javascript、css、图片等都作为模块来使用和处理。
elementUI
elementUI是一个UI库,使用elementUI,我们可以做出来一套很好看的、且具备一定功能的页面来。
微信小程序
微信小程序是腾讯基于微信为平台的一套SDK,不同于App开发,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想。
学习前端技术后,可以完成类似京东、淘宝的前端工程的编写。
四、动态网页
掌握前端技术只能做静态网站,但它页面数据一成不变,而动态网站可以根据数据库中变更的数据实现不同的内容展示,应用更广泛,因此程序员必须要学会做动态网站。使用Java做动态网站,我们需要学习Servlet、Filter、Session、Cookie、JSP、EL表达式、JSTL等做动态网站的完整知识体系,学完可研发出OA系统、内容网站、BBS等。
动态网页是中级程序员服务器端编程的基础,是高级框架学习的必备课程,后期学习的框架、服务底层都是基于动态网页技术之上的。
该板块包括Javaweb核心技术、包括Servlet、Request、Response、Cookie和Session等,通过这些技术的学习可以完成动态站点开发,可更好的完成服务器端与客户的交互,让页面的数据“动”起来,做出小型的应用系统。
技术树
Servlet
Servlet是Java Servlet的简称,称为小服务程序或服务连接器,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
Jsp
Jsp是一种动态网页技术标准,可以减少开发人员使用Servlet输出页面的弊端,可以在Jsp页面中嵌入脚本的方式进行动态网页展示。
EL
EL(Expression Language) 是为了使JSP写起来更加简单,它提供了在 JSP 中简化表达式的方法,让JSP的代码更加简化。
JSTL
JSP标准标签库的简写,常用的是其中的核心库,主要作用是在JSP页面中使用标签的方式进行逻辑的编写,结合EL表达式可以简化JSP脚本的编写。
线程与并发 Cookie
Cookie是用于在浏览器客户端进行用户状态存储的技术,属于会话技术的一种,解决Http协议的无状态性而存在的。
Session
Session是用于在服务器端进行用户状态存储的技术,属于会话技术的一种,解决Http协议的无状态性而存在的。
Filter
Filter过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理,在框架中可以使用该技术充当前端控制器。
Listener
Listener监听器是对Javaweb中的域对象进行监听的,监听域对象的创建和域中的数据更新,通过监听器可以完成一些行为触发操作。
五、编程强化
前面学了JavaSE基础,但它在企业级应用中程序处理业务的效率并不高、扩展差,编程强化是对JavaSE基础的加强,将针对性的提高程序处理业务的执行效率、增强程序扩展性。编程强化将加强多线程高级学习,涉及线程内存、线程通信等技术。学完以后,能增加一个中级程序员的知识储备,无论在面试过程中还是将来技术的深入打一个良好的基础。
编程强化是对解决实际问题方面做一个深入的了解和应用,是对JavaSE基础的加强,对后期自动以框架和对一些服务框架的底层理解做支撑。
编程强化板块主要包括如下几个模块:多线程高级、涉及线程内存、线程通信等;JVM优化,对JVM底层进行调优来提高项目执行效率;NIO,同步非阻塞IO来提高效率。
学习该阶段,可以对原有项目进行优化从而使程序更快更稳定。
技术树
设计模式
设计模式是开发人员在开发过程中面临的一般问题的解决方案。众多框架和服务的源码都大量使用了设计模式,在自定义框架时也会使用设计模式。
JVM优化
大型项目在业务健全后,会对性能有较高的要求,除了使用性能更好的中间件和逻辑优化之外,更高级的需要对JVM进行优化。
数据结构算法
算法是对某类问题解决的方式,它代表着用系统的方法描述解决问题的策略机制。在大数据,人工智能时代,算法显得更加重要。
多线程高级
多线程高级是在JavaSE线程基础上,对线程的高级特性进行讲解,例如:线程内存、线程通信等,服务框架中几乎都使用到了多线程技术。
MINA
Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术提供了抽象的、事件驱动的、异步的API。
Netty
Netty是java开源框架,提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
NIO
NIO相对于传统IO,我们称之为同步非阻塞IO,通过多路复用技术,可减少资源创建与销毁的消耗,提高性能,Netty服务器使用的就是NIO技术。
六、软件项目管理
公司开发都是团队协同开发,为更好的掌握实际开发,我们还需要学习常用的项目管理平台、版本控制器、项目构建工具以及自动化部署工具。项目开发一定是有版本升级的,管理好项目进度和版本需要Git、Maven、Sonar这样的系统平台。学习完软件项目管理后,将掌握整个项目实际开发过程以及整个项目开发过程中所使用协同开发工具。
JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。
在Java基础板块中有6个子模块的学习:基础语法,可帮助你建立基本的编程逻辑思维;面向对象,以对象方式去编写优美的Java程序;集合,后期开发中存储数据必备技术;IO,对磁盘文件进行读取和写入基础操作;多线程与并发,提高程序效率;异常,编写代码逻辑更加健全;网络编程,应用服务器学习基础,完成数据的远程传输。
学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。
技术树
Maven
Apache Maven是一个软件项目管理和综合工具。可以构建和管理多种语言项目,几乎所有企业开发中都使用Maven进行项目构建和依赖管理。
SVN
Apache Subversion简写SVN,是一个开放源代码的版本控制系统,企业开发中,团队之间的协作就是通过SVN实现的。
Git
是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。部分企业也逐步从SVN切换成Git进行项目管理。
码云
码云是一个代码托管平台,支持 Git和 SVN,提供免费的私有仓库托管。目前已有超过350万的开发者选择码云,大部分中国企业选择码云进行项目托管。
Jenkins
Jenkins是一个开源自动化服务器,Jenkins是开源CI&CD软件领导者,提供超过1000个插件来支持构建、部署、自动化满足任何项目的需要。
Sonar
Sonar是一个代码质量管理的开源平台,管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,堪称神器!
七、热门技术框架
Javaweb掌握后,已经具备企业中实际项目的开发能力了,但它开发效率低,代码量大,开发周期长、开发成本高。企业中广泛使用一些优秀的框架技术来解决上述问题,因此我们还需要学习框架技术,项目开发中主流的Java框架技术有SpringMVC、Spring、MyBatis、MyBatis Plus、SpringData等。这些框架技术都是一个优秀程序员所必备的技能。
使用Javaweb进行企业级开发是完全可以的,但是开发效率比较低,所以对常用的逻辑操作进行封装就形成了框架,因此框架是企业开发的入门技能。
热门框架板块主流框架有如下几个:Spring框架,占据统治地位,其生态系统涉及各个方面解决方案;MyBatis框架,使用ORM思想对数据库进行操作。
该板块学习后,就可以进行真实企业级项目开发了,做出的项目也会更加符合企业要求。
技术树
SpringMVC
Spring生态中用于web层的MVC框架,是SpringFrameWork的后续产品,当前互联网项目中web层首选框架,与Spring框架无缝衔接,必会技术!
MyBatis
MyBatis是持久层的用于数据访问的框架,其插件丰富,应用灵活,性能良好,作为互联网项目开发中首选框架。实用性极强,必会技术!
Mybatis Plus
Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。
JPA
JPA是Java Persistence API的简称,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
Spring Data
Spring Data是Spring 的一个子项目。用于简化数据库访问,支持NoSQL和关系数据库存储。其主要目标是使数据库的访问变得方便快捷。
Spring
Spring是一个轻量级IoC和AOP容器框架。是JavaEE工程师必须掌握的内容,企业开发趋向于Spring"全家桶"架构,而这些都基于Spring框架。
八、分布式架构
需要用到分布式微服务的技术。学习完该阶段课程,可以具备大型SOA架构和微服务架构能力,能掌握大型微服务项目必备技术和实际经验。企业发展过程中,业务量和用户量逐渐增加,为了保证系统的可用性,系统越做越复杂,研发人员增多,大家很难共同维护一个复杂的系统,往往修改部分内容,导致牵一发而动全身,所以我们需要升级系统架构,
随着互联网的发展,业务的复杂性和用户的体验性都需要提高,所以分布式架构出现了。该板块主要讲解的是分布式架构的相关解决方案。
主要包括如下模块:Dubbo,高性能的 RPC 服务发布和调用框架;SpringBoot,简化Spring应用的初始搭建以及开发过程;Spring Cloud,一系列框架的有序集合,如服务发现注册、配置中心、负载均衡、断路器、数据监控等。
该板块的学习,可以具备大型互联网项目开发的必备技术和实际经验,为进入BATJ打下基础
技术树
Dubbo
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架(已贡献给Apache),使得应用可通过高性能的RPC实现服务的输出和输入功能。
Zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,分布式RPC框架Dubbo的注册中心往往使用Zookeeper来实现。
SpringBoot
Spring Boot是是用来简化Spring应用的初始搭建以及开发过程,不管是互联网项目还是传统项目都在使用SpringBoot进行开发,入行必要技能之一。
SpringCloud
Spring Cloud是一系列框架的有序集合。结合SpringBoot巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、负载均衡、断路器、数据监控等。
Eureka
Eureka是个基于REST的服务,SpringCloud将它集成在其子项目中,以实现SpringCloud的服务发现功能,SpringCloud重要组成组件。
Consul
Consul是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是分布式的,高度可用的系统,且开发简便。
Hystrix
Hystrix是一个库,在分布式环境中,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互,SpringCloud重要组成组件。
Zuul
Zuul是SpringCloud的重要组件,被构建为可以无缝的和Eureka一起运行,但是也可以通过配置来指定静态服务列表或者使用其他的服务发现。
Gateway
Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关可以完成路由转发、权限校验、限流控制等作用。
Skywalking
Skywalking是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等,在微服务网状调用中很有用。
Pinpoint
Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。
九、服务器中间件
在分布式系统架构中,服务与服务之间的异步通信,是非常常见的需求之一,消息中间件的诞生正是为了解决这类问题。目前市面上的主流消息中间件有RabbitMQ、RocketMQ、Kafka,我们将学习这3个消息中间件,实现分布式项目中的异步通信。学习完这些后,可以实现分布式项目的异步通信、分布式应用日志收集、分布式事务等。
中间件板块是大型互联网项目中必备的。服务中间件可以帮助各子模块间实现互相访问,消息共享或统一访问等功能。其包括远程服务框架中间件,例如阿里(Apache)的RPC框架Dubbo等;消息队列中间件,例如:阿里巴巴开源分布式中间件RocketMQ、高吞吐量消息发布和流处理服务Kafka等。
学习服务中间件是中级JavaEE工程师必要技术,也是JavaEE架构师必须精通的技术。
技术树
RabbitMQ
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息中间件。使用Erlang语言编写,在大型互联网项目中消息中间件事比用技术之一。
RocketMQ
RocketMQ是一款分布式、队列模型的消息中间件,与RabbitMQ类似,大型互联网项目必备神器,可以完成系统解耦、性能提升、削峰填谷等。
Kafka
Kafka是由Apache开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
JMS
JMS即Java消息服务应用程序接口,是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
Sharding-JDBC
Sharding-JDBC是当当应用框架ddframe中从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据库分库分表访问。
MyCat
MyCat是一个开源的,面向企业应用开发的数据库集群中间件,操作MyCat就像操作原始Mysql一样,但是它会帮你进行分库分表操作。
Redis
Redis是一个开源的使用C语言编写的高缓存key-value数据库,常用作内存数据库,也自带持久化方案,大型互联网项目中常用作缓存。
Neo4j
Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。在社交网站项目中常用,存储还有关系。
MongoDB
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
十、服务器技术
程序开发完成后,我们把它们打包部署到服务器中运行,所以我们需要学习常见的服务器技术,常见的服务器有Linux和Window server,Linux性能高,是当前主流。我们写好的项目需要用一个软件运行起来,这个软件叫web容器,我们需要在服务器上安装web容器来发布项目,当前主流的web容器有tomcat、jetty、nginx、undertow。
不管是使用原生Javaweb进行开发,还是使用框架进行开发,项目最终需要对外发布才能供全世界的人访问到,而服务器板块就可以解决这个问题,所以服务器是项目发布的必要技术。该板块包括虚拟化和web应用服务器的学习,主要包括如下几个模块:Vmware,虚拟机软件;Linux,专门用于服务器的系统;Nginx,集群部署时反向代理服务器;Tomcat,项目发布时主要使用的服务器。
该板块学习后,我们就可以把开发好的项目发布到服务器中,然后供你的小伙伴远程访问了,超酷!
技术树
Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,Tomcat结合Nginx进行集群搭建,是大型互联网项目常用选择。
Jetty
Jetty 是一个开源的servlet容器,它为基于Java的web容器,Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。
Nginx
Nginx (engine x) 是一个高性能的http和反向代理web服务器,同时也可以充当邮件服务器,我们常常使用Nginx进行反向代理进行集群搭建。
Linux系统
Linux是一套免费使用和自由传播的且性能稳定的多用户网络操作系统,正式基于这个优点,项目在部署时首选该系统。
CentOS
CentOS是Linux发行版之一,它是来自于Red Hat依照开放源代码规定释出的源代码所编译而成。也是我们常常使用的版本。
Ubuntu
Ubuntu(又称乌班图)是一个以桌面应用为主的开源GNU/Linux操作系统,因为桌面应用丰富,也会作为部分人的办公系统使用。
Vmware
VMWare (Virtual Machine ware)是一个“虚拟PC”软件公司。它的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。
Virtualbox
VirtualBox 是一款开源虚拟机软件,号称是最强的免费虚拟机软件,可虚拟的系统包括Windows、Mac OS X、Linux、甚至Android等。
十一、容器技术
具备了服务器操作系统及web容器,我们就可以部署单机的站点,在分布式系统中,几十上百的服务,如果使用单机这种部署方式,会投入很高的人力,同时出错的几率也大。所以服务器虚拟化技术Docker也称为如今的必备技术了,Docker可以帮助运维人员实行快速部署,批量维护.使用Kubernetes实现自动化部署、大规模可伸缩、应用容器管理。
容器化技术是近两年超级火的一个专题,通过容器化技术可以对环境进行打包,方便移植,大大提高了开发效率。该板块包括容器化技术Docker和其平台管理引擎Kubernetes,其中,Docker 是一个开源的应用容器引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。而Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。通过该板块的学习,你可以通过上述技术快速搭建环境,节省开发时间,提高开发效率。
技术树
Docker
Docker 是一个开源的应用容器引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。
Kubernetes
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。
十二、业务解决方案
企业开发中会遇到一些通用的业务场景,诸如:搜索引擎、缓存、定时任务、工作流、报表导出、日志管理、系统监控等,那么这些通用的解决方案也有现成优秀的免费开源中间件,可供使用。诸如:ElasticSearch、Lucene、Solr、redis、MongoDB、slf4J、ECharts、Quartz、POI等。业务解决方案课程的业务方案和技术难点,解决了企业开发中90%以上的痛点和难点。
虽然我们已经具备了基础技术和高阶技术,但是要想与企业开发相接轨,还需要对实际项目的业务解决方案进行探究。而此版块就是在实际业务场景中的真实解决方案集合,常用的业务解决方案有如下:搜索业务场景解决方案、日志收集与分析场景解决方案、工作流引擎场景解决方案、任务调度场景解决方案、地图开发平台场景解决方案、支付开放平台场景解决方案、图表可视化场景解决方案。通过分析实际业务来学习这个解决方案技术集,完全可以达到中级甚至高级工程师水平。
技术树
Elasticsearch
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,是目前较流行的企业级搜索引擎。
Kibana
Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。
Logstash
Logstash作为Elasicsearch常用的实时数据采集引擎,可以采集来自不同数据源的数据,并对数据进行处理后输出到多种输出源,是Elastic Stack的重要组成部分。
Beats
Beats 平台集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向Logstash或Elasticsearch发送数据。
JCL
JCL采用了设计模式中的“适配器模式”,对外提供统一接口,在适配类中将对日志的操作委托给具体的日志框架,比如Log4J,Java Logging API等。
LOG4J
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件等,也可以控制每一条日志的输出格式。
Logback
logback是log4j团队创建的开源日志组件。与log4j类似,但是比log4j更强大,是log4j的改良版本,性能有了很大的提升,内存占用也更小。
SLF4J
SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。
Lucene
Lucene是一个开放源代码的全文检索引擎工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
Solr
Solr是一个独立的企业级搜索应用服务器,基于Lucene索引工具包封装,通过API可以将数据存储到索引库,也可对数据进行检索,响应速度快。
D3
D3.js是一个用于根据数据操作文档的JavaScript库。D3可以使用HTML,SVG和CSS将数据变为可视化组件,观看数据一目了然。
ECharts
ECharts是一个商业级数据图表,它是一个纯Js的图标库,兼容绝大部分的浏览器,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。
AntV
AntV是一套专业、简单、无限可能的可视化解决方案,在多年可视化设计与开发的积累基础上,蚂蚁金服团队推出了 AntV 产品,目前流行度很高。
JasperReport
JasperReport是一个强大、灵活的报表生成工具,由Java语言编写,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。
POI
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
Quartz
Quartz是一个完全由java编写的开源任务调度框架,对于项目中一些复杂的时间调度不必手动进行编码控制触发,使用Quartz的配置表达式就可以简单完成调度功能。
Elastic-Job
Elastic-Job是当当网大牛基于Zookepper,Quartz开发并且开源的Java分布式定时任务,解决Quartz不支持分布式的弊端。
FreeMarker
FreeMarker是一款老牌的模板引擎, 数据基于一种模板进行展示,学习成本低,功能强大的特点导致有一定的市场占有率。
Thymeleaf
Thymeleaf是一种用于Web和独立环境的现代服务器端的Java模板引擎。其目标是将优雅的自然模板带到开发工作流程中,并将HTML在浏览器中正确显示。
Shiro
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro可以方便的对系统进行权限控制。
SpringSecurity
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。通过配置方式就可以完成复杂的权限控制。
Activiti
Activiti是工作流引擎框架,日常使用的办公系统的审批流程,如:请假流程、财务审批等都可以通过Activiti进行快速开发。
微信支付
微信开放平台作为第三方移动程序提供接口,使用户可将第三方程序的内容发布给好友或分享至朋友圈,第三方内容借助微信平台获得更广泛的传播。
支付宝
支付宝开放平台基于支付宝的海量用户,将强大的支付、营销、数据能力,通过接口等形式开放给第三方合作伙伴,帮助第三方合作伙伴创建更具竞争力的应用。
百度地图
百度地图API是一套为开发者提供的基于百度地图的应用程序接口,包括Js、iOS、Andriod、静态地图等多种版本,提供基本地图、位置搜索、周边搜索等服务。
高德地图
高德开放平台,为开发者提供免费的地图解决方案,覆盖Js、Android、iOS、Webservice等平台,包含全球定位、数据检索、路线规划、街景等服务。
企业开发首选的安全框架Spring Security深入浅出
如果你觉得这套java学习路线图还不错,也看在小妹儿用了将近三天手机整理的文字和教程+资料的份上,可不可换取小哥哥你的一个赞呢?
都看到这里了,小妹儿看你也是爱学习的,那就收藏一下,方便以后查找借鉴学习嘛,再顺手点个赞那小妹就更感激不尽啦~