Java常用框架有哪些↔
Java常用框架有哪些
作为一名 Java 程序员,接触到的框架、软件、中间件肯定不会少,并且升级换代比较频繁,可能三五年就会淘汰一批,虽然有些框架看似“经久不衰”,比如很多年前非常流行的 SHH 中就有 Spring,但其实 Spring 早期和现在的版本,使用差异也挺大的。
我就说一说我目前用到的技术栈,以及我对 Java 框架学习的路线思考,大家可以参考参考。
01. 基础
在正式说之前,我还是要啰嗦一句,就是在学习这些 Java 框架的同时,也不要放松对算法、数据结构、网络、Java 基础知识的学习,框架变化的很快,但是这些基础知识会一直伴随着我们。
02. Java 框架
我们现在绝大部分项目,都是基于 Spring Boot 开发的,所以我建议可以先学习 Spring 、Spring MVC、Spring Boot 这几个框架,前两个框架是基础,Spring Boot 算✡是在 Spring 基础之上发展而来的,使用 Spring Boot 可以很方便的与其他常用框架做集成。
大部分 Java 项目都离不开关系型数据库,所以学习学习一个 ORM 框架,可以选择学习 Mybatis 或 Hibernate,在之后,可以了解一下 Spring Data JPA,这个算是对 ORM 框架更高级的封装。
还有一些框架,可能需要根据你的实际情况来选择学习了,比如本地缓存框架可以学习 EhCache,不过更重要的可能会要求你了解什么是缓存、存储淘汰策略等知识。
在网上,可能就是现在比较流行的分布式服务框架、微服务框架了,现在比较流行的 Spring Cloud 和 Dubbo 了,当然了,它们并不是一个框架,而是一套框架,或者说一套解决方案,如果是个人喜好的话,建议学习 Spring Cloud。
03. 中间件
Java 程序员需要掌握的中间件也不少,重点可以学习 Redis 和 消息队列 MQ。
Redis 是非♠关系型数据库的一种,适用于很多场景,比如缓存、分布式锁等等,Redis 的相关知识简直就是互联网公司面试的必考题了;
消息队列 MQ 也是应用很广泛的中间件之一,对于系统和系统之间的解耦,流量的限流削峰都起到了非常重要的作用,可以选择 RabbitMQ 或 Kafka 学习一下。
04. 其他
有一些我也不太好分类,就放在其他里面了。
关系型数据库,至少 SQL 和索引要精通一些吧,现在很多公司,特别是互联网公司都会选择 MySQL,那么 MySQL 的一些底层知识最好能有所学习,比如数据库引擎、索引的原理什么的。
其余的还有 Maven 、Git、自动化测试、自动化发布、Docker 等等,最好也能有所了解和应用。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
Java中有哪些不错的IDE值得推荐
每个Java程序员都需要一个代码编辑器或IDE,以帮助程序员们在编写Java、使用类库和框架时处理一些特殊的场景。但是IDE有很多选择,究竟哪款最适合自己呢?
一、怎样选择适合的IDE
主要考虑以下几点要素:
- 项目的性质;
- 你在组织中的角色;
- 团队使用什么开发过程;
- 程序员的水平和技能;
- 团队是否对工具进行了标准化。
二、程序员较为流行的几种JAVA IDE
1. Java IDE Eclipse
最有名的Java IDE,插件资源非常丰富。
2.Java IDE NetBeans
配置比Eclipse简单、汉化做得不错、装插件方便、在线中文文档多。
3. Java IDE JBuilder(收费)
插件丰富,体积大、资源占用大。
4. Java IDE IntelliJ IDEA(收费)
被公认为最好的Java开发平台之一,调试功能非常优秀。
5.Java IDE JDeveloper (Oracle)
支持UML建模、调试功能优秀。
6.Java IDE SlickEdit(收费)
易于安装和配置、支持的平台丰富、调试功能强大。
7. 开源Java IDE jEdit
内嵌的Beanshell引擎、灵活、执行效率高。
8.开源Java IDE JCreater
小而且快,常用的功能都支持,很适合初学者。
以上分享,希望对大家有帮助,若有补充欢迎评论区留言。
觉得不错请点赞支持。
送大家一份技术年货【最新90个架构专题资料合集】,由原BAT架构师依据过往项目实践经验,耗时1年、精心创作,目前已更新至90期。内容涵盖(以下仅部分内容截图):
领取方法:转发+私信【阿里架构师】,即可领取。转发、转发、转发+私信【阿里架构师】哦~
如何从零开始学习Java
从零开始学习Java,一定要是从基础内容进行学起,这个也是要在学习的时候多加注意,因为现在有的培训机构课程安排其实并不是从最基础的开始的。下边小编就简单的来介绍一下Java从零基础学习都是学习那价格阶段,学习一些什么内容。
第一阶段:Java基础
01Java编程语言概述
o 计算机语言介绍
o Java语言的前世今生
o Java技术体系平台
o Java核心机制与JVM运行原理
o 搭建 Java开发环境
o JDK 的安装与配置
o 开发第一个Java 应用程序
o Java 程序的执行原理
o Java Code Style
o 变量的声明与使用
o 变量内存空间分配与原理
o 进制与位运算
o 变量的数据类型
o 数据类型之间的转换
o 变量的运算与底层运算原理
02Java基础语法
o 流程控制语句的介绍
o Java 编译器执行流程
o if 分支结构
o switch 选择结构与相关规则
o 循环结构
o for 循环
o while 循环
o do-while 循环语句
o 各语句性能对比与应用场景
o 特殊流程控制语句
o 方法的声明与使用
o 方法调用的过程分析
o 跨类调用方法
o 参数的值传递
o 方法的重载 Overload
03Java数组
o static 修饰符
o 类的成员之代码块
o 静态代码块与非静态代码块
o 单例 (Singleton) 设计模式
o final 修饰符
o 包 (package) 的管理与作用
o DOS 命令行下编译器操作
o 使用 jar 命令打包应用程序
o 数组的创建与使用
o 一维数组与多维数组
o 数组的默认初始化与内存分析
o 数组的常见算法分析
o 操作数组的工具类 Arrays
o 命令行参数
o 可变参数
04面向对象编程
o 面向对象和面向过程的理解
o 类和对象的理解
o 类和对象的创建、使用
o 属性
o 方法
o 包
o this
o 构造器
o 封装
o JavaBean
o 继承
o super关键字
o 重写
o 多态
o Object类
05高级类特性
o 抽象类 (abstract) 实际应░用举例
o 接口 (interface) 的应用与常见问题
o Java8/Java9/Java10对接口的改进
o Template Method 设计模式
o Factory Method 设计模式
o 代理模式 (Proxy)
o 类的成员之内部类
o 匿名内部类
o Java8 中匿名内部类的新特性
o Enum枚举
o 枚举的属性与方法
o 接口实现枚举类
o Annotation 注解
o JDK 内置注解
o 自定义注解
o 元注解
06Java API
o Wrapper 包装类
o 装箱与拆箱
o 包装类的缓存分析
o 字符串处理类
o String 类的使用与内存原理
o String 类的算法分析
o StringBuffer 与 StringBuilder
o 字符串处理类性能分析
o 其他常用类
o Java.lang.System类
o Java.util.Date类
o Java.text.SimpleDateFormat类
o Java.util.Calendar类
o Java.lang.Math类
o Java.math.BigInteger类与Java.math.BigDecimal
07异常处理
o 异常的原理
o 异常的堆栈抛出机制
o 异常的结构体系
o 受检与非受检异常
o 异常的处理
o try-catch 示例
o 使用finally回收资源
o throw 制造异常
o 异常的处理之throws
o Java 7增强的throw 语句
o 方法重写与 throws
o 自定义异常
o 实战中自定义异常的应用解析
o 异常信息的访问
o Java 程序的常见问题及解决方法
08集合与泛型
o 集合框架概述
o Collection 系列集合
o List 系列集合与Set系列集合
o java.util.ArrayList源码与数据结构分析
o java.util.LinkedList 源码分析
o java.util.HashSet 内部原理
o java.util.TreeSet 数据结构分析
o java7 中Map 系列集合与数据结构分析
o java8 中 Map 系列集合新特性对比
o java.util.concurrent.ConcurrentHashMap
o Iterator 与 ListIterator
o Collections 工具类
o 集合中使用泛型
o 自定义泛型
o 通配符
09Java IO流
o IO流结构体系
o IO流原理分析
o IO流的分类
o IO流与文件操作
o IO流的包装与链接
o 缓冲流
o 文件的复制与性能对比
o 对象流
o 对象的序列化与反序列化
o 控制台IO
o 标准输入流与标准输出流
o 打印流
o 转换流
o 字符编码与解码
o RandomAccessFile 类
10Java 多线程
o 线程的原理
o 线程的创建与启动
o 创建线程的几种对比
o 继承 Thread 类与实现 Runnable 接口
o 创建线程对比
o 线程的控制
o 线程的调度
o 线程的优先级
o 线程的生命周期
o 多线程的安全问题与解决办法
o 线程的同步
o 互斥锁
o 线程的死锁问题
o 线程通信
o 生产者与消费者案例
11Java Reflection(Java反射)
o Java 反射机制的研究与应用
o 反射的原理分析
o JVM与类
o 类的加载、连接、初始化
o 类初始化的时机
o 类加载器 ClassLoader简介
o 类加载机制
o 创建并使用自定义的类加载器
o 开启反射的源头 Class
o 获取 Class 实例的四种
o 从 Class 中获取信息
o Proxy 和 InvocationHandler 创建动态代理
o 动态代理和AOP(Aspect Orient Programming)
o 泛型和Class类
o 使用反射来获取泛型信息
12网络编程
o 网络编程基础知识
o 网络编程的主要问题
o 如何实现网络中主机的相互通讯
o 网络通讯要素
o 网络通信协议
o OSI参考模型
o TCP/IP参考模型(或TCP/IP协议)
o 数据的封装与拆封
o Java.net.InetAddress 类
o TCP 协议与UDP协议
o 基于TCP协议的网络编程
o Socket 的TCP编程
o 基于UDP协议的网络编程
o URL编程
o 针对HTTP协议的URLConnection
13Java8 新特性
o Lambda 表达式
o 类型推断
o Java8核心函数式接口
o Lambda表达式的参数传递
o 方法引用与构造器引用
o 强大的 Stream API
o Stream 操作的核心步骤
o 惰性求值与内部迭代
o 筛选与切片
o 映射与排序
o 查找与匹配
o 归约与收集
o 并行流与串行流
o Optional 容器类
o ….
14Java9/Java10/Java11新特性
o 模块化系统
o jShell命令
o 接口的私有方法
o 语法改进:try和钻石操作符
o String存储结构变更
o 增强的Stream API
o 全新的HTTP客户端API
o 局部变量的类型推断
o 集合新增创建不可变集合的方法
o 字符串新增一系列处理方法
o Optional加强
o 更简化的编译运行程序
o 废弃Nashorn引擎
o ZGC
o …
15经典项目
o 家庭记账软件
o 客户管理系统
o Bank管理系统
o 开发团队调度软件
o 考试管理系统软件
第二阶段:数据库关键技术
01Mysql 基础
o 1.Mysql的安装和使用
o 2.图解Mysql程序结构
o 3.Mysql服务器的配置
o 4.Mysql 客户端使用
o 5.用户权限管理
o 6.Mysql数据库的使用
02SQL语言
o 1.SQL语句的三种类型
o 2.DML、DDL、DCL
o 3.数据处理
o 4.子查询
o 5.创建和管理表
o 6.约束与分页
03JDBC
o 1.JDBC概述
o 2.获取数据库连接
o 3.数据库连接池C3P0 、DBCP、Druid
o 4.使用JDBC 完成数据库DML操作
o 5.大数据的操作
o 6.批量处理与元数据
04DBUtils
o 1.使用QueryRunner
o 2.可插拔式结果集处理
o 3.批量处理
o 4.大数据结果集处理
o 5.自定义结果集处理
o 6.利用DBUtils编写通用 DAO
第三阶段:Web开发与实战应用
01HTML5与CSS3
o 1.B/S架构
o 2.HTML基本使用
o 3.HTML DOM
o 4.CSS选择器
o 5.常用样式
o 6.盒子模型与布局
o 7.HTML5新特性
o 8.CSS3新特性
02JavaScript
o 1.JavaScript基本语法
o 2.JavaScript流程控制
o 3.数组、函数、对象的使用
o 4.JavaScript事件绑定/触发
o 5.JavaScript事件冒泡
o 6.JavaScript嵌入
o 7.JavaScript DOM操作
o 8.DOM API
03jQuery
o 1.jQuery快速入门
o 2.jQuery语法详解
o 3.jQuery核心函数
o 4.jQuery对象/JavaScript对象
o 5.jQuery选择器
o 6.jQuery 文档处理
o 7.jQuery事件
o 8.jQuery动画效果
04AJAX&JSON
o 1.Ajax技术衍生
o 2.XMLHttpRequest使用
o 3.同步请求&异步请求
o 4.JSON语法
o 5.Java JSON转换
o 6.JavaScript JSON转换
o 7.jQuery 基本Ajax方法
o 8.底层$.ajax使用
05XML
o 1.XML用途
o 2.XML文档结构
o 3.XML基本语法
o 4.DOM&SAX解析体系
o 5.DOM4j节点查询
o 6.DOM4j文档操作
o 7.xPath语法
o 8.xPath快速查询
06bootstrap
o 1.bootstrap快速使用
o 2.栅格系统
o 3.表单、表格、按钮、图片
o 4.下拉菜单
o 5.按钮组使用
o 6.导航条
o 7.分页、进度条
07Web服务器基础
o 1.HTTP协议
o 2.HttpWatch
o 3.Tomcat服务器搭建
o 4.Tomcat目录结构解析
o 5.Tomcat端口配置
o 6.Tomcat启动&停止
o 7.Tomcat&Eclipse整合
o 8.Eclipse配置优化
08Servlet
o 1.Servlet体系
o 2.Servlet生命周期
o 3.ServletConfig&ServletContext
o 4.请求&响应
o 5.重定向&转发
o 6.中文乱码解决方案
o 7.项目路径问题
09JSP
o 1.JSP语法
o 2.JSP原理
o 3.JSP脚本片段&表达式
o 4.JSP声明&指令
o 5.JSP九大隐含对象
o 6.域对象使用
10JSTL
o 1.JSTL简介
o 2.JSTL-核心标签库
o 3.JSTL-函数标签库
o 4.JSTL-fmt标签库
o 5.自定义标签库使用
o 6.自定义标签库原理
11EL
o 1.EL表达式简介
o 2.EL使用
o 3.EL取值原理
o 4.EL的11大隐含对象
o 5.EL2.2与3.0规范
o 6.EL逻辑运算
o 7.函数库深入
12Cookie&Session
o 1.Cookie机制
o 2.Cookie创建&使用
o 3.Session原理
o 4.Session失效
o 5.URL重写
o 6.Session活化&钝化
o 7.Token令牌应用
13Filter&Listener
o 1.Filter原理
o 2.Filter声明周期
o 3.Filter链
o 4.Filter登录验证
o 5.Filter事务控制
o 6.Listener原理
o 7.八大监听器使用
o 8.Listener监听在线用户
14国际化
o 1.国际化原理
o 2.ResourceBundle&Locale
o 3.国际化资源文件
o 4.日期/数字/货币国际化
o 5.页面动态中英文切换
o 6.页面点击链接中英文切换
o 7.fmt标签库的使用
15文件上传下载
o 1.文件上传原理
o 2.Commons-IO&Commons-FileUpload
o 3.文件上传参数控制
o 4.文件上传路径浏览器兼容性解决
o 5.文件下载原理
o 6.文件下载响应头
o 7.文件下载中文乱码&浏览器兼容性
第四阶段:经典&流行框架
01Spring5.0
o 1.SpringIOC&DI机制
o 2.Spring配置式组件管理
o 3.Spring注解式自动装配
o 4.Spring表达式语言
o 5.SpringAOP&动态代理
o 6.SpringJDBC使用
o 7.Spring声明式事务
o 8.Spring单元测试
o 9.Spring源码分析
02SpringMVC
o 1.SpringMVC配置&运行流程
o 2.SpringMVC数据绑定
o 3.模型处理&@ModelAttribute
o 4.RestfulCRUD
o 5.表单标签&静态资源处理
o 6.数据转换&格式化&JSR303数据校验
o 7.HttpMessageConverter
o 8.Ajax&国际化&文件上传下载
o 9.异常处理
o 10.整合&父子容器
03MyBatis
o 1.MyBatis配置&查询数据
o 2.MyBatis全局配置文件
o 3.MyBatis映射文件
o 4.关联查询,动态SQL
o 5.MyBatis缓存机制&整合Ehcache
o 6.MyBatis逆向工程
o 7.MyBatis、Spring、SpringMVC整合
o 8.MyBatis运行原理&源码分析
o 9.MyBatis拦截器&插♧件开发
o 10.分页插件&存储过程调用
04Struts2
o 1.Struts2流程
o 2.值栈与ONGL
o 3.Struts2标签库
o 4.Struts2模型驱动原理
o 5.Struts2声明式异常处理
o 6.Struts2类型转换&自定义类型转换
o 7.Struts2拦截器原理&自定义拦截器
o 8.Struts2源码分析&运行原理
05Hibernate
o 1.Hibernate环境搭建&配置
o 2.hibernate.cfg.xml&主键生成策略
o 3.Session核心方法
o 4.ORM映射:单向/双向1-n映射
o 5.ORM映射:基于主/外键映射&n-n
o 6.检索策略&迫切左外连接
o 7.Hibernate缓存机制
o 8.QBC、HQL
o 9.Session管理
06JPA
o 1.JPA技术体系
o 2.JPA注解
o 3.JPA相关API
o 4.JPA映射
o 5.JPQL
o 6.二级缓存
o 7.Spring整合JPA
07SpringData
o 1.SpringData快速入门
o 2.SpringData_Repository接口
o 3.Repository查询规范
o 4.@Query&@Modifying
o 5.CrudRepository
o 6.PagingAndSortingRepository
o 7.JpaRepository
o 8.JpaSpecificationExecutor
o 9.自定义Repository
08Maven
o 1.Maven环境搭建
o 2.Maven构建&自动化构建
o 3.本地仓库&中央仓库
o 4.maven创建web工程
o 5.pom.xml、依赖管理
o 6.坐标、依赖、生命周期等
o 7.eclipse下的maven使用
o 8.继承&聚合
o 9.maven构建SSH/SSM应用
o 10.自动部署&持续集成&持续部署
09SVN
o 1.SVN简介
o 2.SVN服务器搭建
o 3.SVN创建版本库
o 4.Eclipse整合svn插件
o 5.使用SVN更新提交
o 6.SVN仓库分析
o 7.SVN协同修改&冲突解决
o 8.SVN权限管理
o 9.SVN时光机
o 10.TortoiseSVN
10Shiro
o 1.Shiro入门
o 2.Spring集成Shiro
o 3.Shiro工作流程
o 4.权限URL配置
o 5.认证流程&认证Realm
o 6.密码比对,MD5&盐值加密
o 7.授权流程
o 8.标签&权限注解
o 9.会话管理、SessionDao
o 10.缓存
o 11.实现”记住我”
11Activiti5
o 1.工作流&工作流引擎
o 2.BPMN2.0规范
o 3.Activiti5框架表结构
o 4.Activiti5核心组件&服务接口
o 5.Activiti5插件安装&整合Spring
o 6.流程定义
o 7.流程实例&任务&历史
o 8.任务领取&流程变量
o 9.排他网关&并行网关
12WebService
o 1.WebService简介
o 2.WebService主流框架
o 3.cxf的使用
o 4.SOAP协议
o 5.WSDL讲解
o 6.JAX-WS
o 7.与Spring整合
o 8.JAXB
o 9.JAX-RS
o 10.支付接口原理
13Linux
o 1.Linux系统-基础
o 2.Linux网络基础
o 3.Linux在VMware下的安装
o 4.Linux下Java环境的搭建
o 5.Linux下Tomcat安装和配置
o 6.Linux下 Oracle/MySQL 安装与配置
o 7.Shell 编程
14Redis
o 1.NoSQL&Redis入门
o 2.Redis/memcache/MongoDB对比
o 3.Redis安装&启动
o 4.分布式数据库CAP原理
o 5.Redis五大数据类型和基本操作命令
o 6.Redis总体配置Redis.conf
o 7.Redis持久化(RDB和AOF)
o 8.Redis事务控制
o 9.Redis发布和订阅
o 10.Redis(Master/Slave)主从复制
o 11.Jedis
15Git&Git Hub
o 1.Git安装配置
o 2.Git本地库搭建
o 3.Git常用操作命令
o 4.Github注册与配置
o 5.Github与Git协同办公
o 6.TortoiseGit安装配置
o 7.Egit操作push/pull,
o 8.Git工作流
o 9.集中式&GitFlow&Forking
16MySQL高级
o 1.MySQL架构组成
o 2.MySQL备份和恢复
o 3.MySQL查询和慢查询日志分析
o 4.MySQL索引优化
o 5.MySQL存储引擎优化
o 6.MySQL锁机制优化
o 7.MySQL高可用设计
o 8.MySQL集群
17JVM原理
o 1.JVM简析
o 2.JVM组成结构
o 3.JVM堆、栈原理
o 4.JVM-Heap三区原理
o 5.JVM垃圾收集机制
o 6.堆内存调优
o 7.GC回收策略
o 8.GC三大算法
18Quartz
o 1.Quartz作业调度简介
o 2.Quartz作业调度执行以及持久性
o 3.Quartz基本使用
o 4.Quartz核心类讲解
o 5.Quartz Trigger 触发器
o 6.Quartz Job&JobDetail
o 7.Quartz Calendars日历讲解
o 8.JobListener监听器和TriggerListener监听器
o 9.Spring整合Quartz
19Nginx
o 1.Nginx反向代理介绍
o 2.Nginx 下载和安装
o 3.Nginx 编译和启动、访问
o 4.在Linux下搭建Nginx集群
o 5.在Windows搭建Nginx集群
o 6.解决Session共享问题
20JUC 线程高级
o 1.volatile 关键字
o 2.内存可见性分析
o 3.原子变量与CAS (Compare And Swap) 算法分析
o 4.ConcurrentHashMap 锁分段机制
o 5.CountDownLatch 闭锁
o 6.实现 Callable 接口
o 7.Lock 同步锁
o 8.Condition 控制线程通信
o 9.线程按序交替
o 10.ReadWriteLock 读写锁
o 11.线程八锁
o 12.线程池
o 13.线程调度
o 14.ForkJoinPool 分支/合并框架
o 15.工作窃取窃取模式
第五阶段:Java高级&流行技术
01Dubbo
o 1.分布式服务框架简介
o 2.dubbo+zookeeper介绍
o 3.注册中心的安装启动
o 4.监控中心的启动
o 5.dubbo在项目中整合
o 6.dubbo的服务提供者配置和启动
o 7.dubbo的服务消费者配置和启动
o 8.dubbo运行测试
o 9.负载均衡和bug调试等其他功能
02SpringBoot
o 1.SpringBoot的简介
o 2.基于SpringBoot 多模块实战开发
o 3.基于SpringBoot 文件上传
o 4.基于SpringBoot Elasticsearch搜索引擎开发
o 5. 基于SpringBoot 的Thymeleaf 模板引擎
o 6.基于SpringBoot 的Redis实战开发
o 7.基于SpringBoot 的ActiveMQ实现
03SpringCloud
o 1. 微服务架构
o 2. SpringCloud的简介
o 3.Eureka Server的高可用
o 4.Ribbon实现客户端负载均衡
o 5. Feign实现声明式REST调用
o 6.Hystrix实现微服务的容错处理
o 7.Zuul构建微服务网关
o 8.SpringCloud Sleuth 实现微服务
04Docker
o 1. Docker的架构
o 2. Docker上运行微服务
o 3. Docker Registry 管理Docker镜像
o 4. Maven插件构建Docker镜像
o 5. Docker Compose编排SpringCloud微服务
05NIO
o 1. JAVANIO简介
o 2.JAVA NIO与IO的主要区别
o 3. 缓冲区(Buffer)和通道(Channel)
o 4. 直接缓冲区与非直接缓冲区
o 5.Channel的原理
o 6.分散读取与聚集写入
o 7.Charset字符集
o 8.文件通道(FileChannel)
o 9.内存映射文件
o 10.阻塞与非阻塞
06FastDFS
o 1.FastDFS 简介
o 2.FastDFS linux安装和配置
o 3.FastDFS 配置Tracker服务器
o 4.FastDFS 配置Storage服务器
o 5.FastDFS 配置启动项
o 6.FastDFS 文件上传测试
o 7.FastDFS nginx的http访问代理配置
o 8.FastDFS java客户端测试
o 9.http访问
07Elasticsearch
o 1.Elasticsearch 简介与安装
o 2.Elasticsearch linux环境配置
o 3.Elasticsearch kibana的介绍和安装
o 4.Elasticsearch 数据类型的介绍
o 5.Elasticsearch dsl语句介绍和使用
o 6.Elasticsearch 数据结构mapping的使用
o 7.Elasticsearch java客户端的介绍和使用
o 8.Elasticsearch 导入数据和查询测试
o 9.Elasticsearch 数据检索
08Thymeleaf
o 1.Thymeleaf 简介
o 2.Thymeleaf 在springboot中的配置
o 3.Thymeleaf 标准表达式语法
o 4.Thymeleaf 循环分支判断
o 5.Thymeleaf 页面引入介绍
o 6.Thymeleaf 超链接和js调用
o 7.Thymeleaf 其他功能介绍
09MyCat
o 1.MyCat 简介
o 2.MyCat的下载和安装
o 3.MyCat分片配置
o 4.MyCat分片使用和测试
o 5.MyCat读写分离
o 6.MyCat 实现从MySQL主从复制
10ActiveMQ
o 1.ActiveMQ 简介
o 2.ActiveMQ mq两种消息类类型的介绍
o 3.ActiveMQ 安装和启动
o 4.ActiveMQ 队列消息的java客户端测试
o 5.ActiveMQ 订阅消息的java客户端测试
o 6.ActiveMQ 消息的持久化和事务介绍
o 7.ActiveMQ 与springboot整合
o 8.ActiveMQ 项目中发送消息实例
o 9.ActiveMQ 项目中监听消息实例
11ECharts
o 1.ECharts简介
o 2. ECharts配置文件的引入
o 3. ECharts数据格式化
o 4. ECharts各种图表类型的配置初始化
o 5. ECharts图形的渲染
o 6. ECharts各类图表类型的实现
12分布式事务
o 1.阶段提交协议讲解
o 2.使用消息队列来避免分布式事务
o 3.如何可靠保存凭证
o 4.业务与消息解耦
o 5.如何解决消息重复投递的问题
13单点登录
o 1.单点登录简介
o 2.单点登录的在项目中技术实现介绍
o 3.单点登录的认证中心介绍
o 4.单点登录的认证中心的创建和测试
o 5.单点登录项目的拦截器的使用
o 6.单点登录的项目注解的使用
o 7.单点登录的项目实践和测试
14Zookeeper
o 1.Zookeeper简介及组件
o 2.Zookeeper的工作流程,leader select过程
o 3.搭建Zookeeper为分布搭建、集群搭建
o 4.Zookeeper Cli
o 5.使用Zookeeper的客户端API连接Zookeeper
o 6.Zookeeper rmi高可用分布式集群开发
o 7.Netty 异步io通信框架
o 8.Zookeeper实现netty分布式架构的高可用
第六阶段:企业接轨项目以在线教育项目为例
01Vue
o 1、vue-例子+提取代码片段
o 2、vue基础:数据渲染和指令、双向数据绑定
o 3、vue基础:事件、综合练习
o 4、vue基础:修饰符、条件渲染、-列表渲染
o 5、vue基础:计算属性、侦听属性
o 6、vue基础:过滤器
o 7、vue进阶:组件、指令(局部、全局)
o 8、vue进阶:生命周期
02ES6
o 1、前端开发工程师、ES6简介
o 2、vscode安装
o 3、ES6基础语法:let、const
o 4、ES6基础语法:解构赋值、模板字符串
o 5、ES6基础语法:声明对象、方法简写
o 1、ES6基础语法:对象拓展运算符、函数默认参数、不定参数、箭头函数
o 2、ES6基础语法:Promise
o 3、ES6模块化+总结
03Mybatis Plus
o 1、入门程序
o 2、主键策略和分布式id生成器
o 3、自动填充
o 4、乐观锁
o 5、分页插件
o 6、逻辑删除
o 7、性能分析插件
o 8、条件构造器
04课程中心微服务搭建
o 1、数据库设计
o 2、分布式项目的创建
o 3、MP代码生成器
o 4、跨域
o 5、Swagger2配置和常用注解
o 6、统一返回结果
o 7、统一异常处理
o 8、统一日志处理
05课程中心微服务功能实现
o 1、讲师模块分页和条件查询
o 2、讲师模块逻辑删除
o 3、讲师模块新增和修改
06 前后端分离技术
o 1、Node.js
o 2、NPM
o 3、Babel
o 4、Webpack
o 5、element-ui
o 6、Easy Mock
o 7、vue-element-admin
o 8、vue-admin-template
o 9.http访问
07 后台管理系统前端页面的搭建
o 1、项目的创建
o 2、Eslint语法规范检查
o 3、项目的路由
o 4、使用Ngix搭建接口服务器代理
o 5、api模块的定义
o 6、组件的开发
08课程中心前端功能实现
o 1、讲师模块列表显示和查询表单
o 2、讲师模块删除
o 3、讲师模块新增、回显和更新
09阿里云OSS
o 1、使用阿里云OSS
o 2、RAM子用户
o 3、API和SDK的使用
10云存储微服务
o 4、创建云存储微服务
o 5、实现文件上传接口
o 6、前端整合讲师头像上传功能
11POI操作Excel
o 1、POI读写Excel的基本使用
o 2、POI的大数据量导出
o 3、数据类型的处理
o 4、POI导入课程分类
o 5、课程分类管理
12课程基本信息管理
o 1、步骤导航
o 2、多级联动
o 3、整合富文本编辑器
13阿里云VOD
o 1、视频点播API的使用
o 2、视频点播SDK的使用
o 3、视频安全策略
o 4、阿里云视频播放器
14SpringCloud服务发现
o 1、微服务架构
o 2、微服务架构的基础设施
o 3、注册中心Eureka
o 4、Eureka的自我保护模式
o 5、注册中心高可用
o 6、服务注册
o 7、服务调用
15社交登录-登录
o 1、ngrok
o 2、生成授权URL
o 3、开发回调URL
o 4、前端整合登录
16SpringCloud配置中心
o 1、Config Server
o 2、Config Client
o 3、Spring Cloud Bus
o 4、集成WebHooks实现动态更新
17SpringCloud Hystrix
o 1、服务容错
o 2、触发降级
o 3、超时设置
18其他
o 1、ECharts
o 2、用户中心为微服务
o 3、统计分析微服务
o 4、OAuth2
o 5、JWT
o 6、SpringCloud 网关
o 7、SpringCloud 服务追踪
o …
第七阶段:大数据技术
01大数据技术概论
o 1、大数据概念
o 2、大数据的特点
o 3、大数据能干啥?
o 4、大数据发展前景
o 5、企业数据部的业务流程分析
o 6、企业数据部的一般组织结构
o 7、大数据技术生态体系
02Hadoop概述与安装
o 1、Hadoop是什么
o 2、Hadoop发展历史
o 3、Hadoop的优势及前景
o 4、Hadoop组成结构
o 5、推荐系统框架图
o 6、配置ssh免登录密+C202:C204钥
o 7、Hadoop集群环境搭建
o 8、Hadoop配置文件
03HDFS伪分布式文件
o 1、HDFS架构
o 2、NameNode启动流程
o 3、HDFS常用API调用
o 4、HDFS上运行官方案例
o 5、编写上传文件到HDFS案例
o 6、编写读取HDFS文件案例
04YARN
o 1、YARN的由来及组成架构
o 2、详解全局资源管理ResourceManager
o 3、详解节点资源管理NodeManager
o 4、详解应用程序管理Application Master
o 5、详解Container
o 6、YARN上运行官方案例
05MapReduce详解
o 1、MapReduce编程模型
o 2、Shuffle执行流程详解
o 3、maven工具的使用
o 4、WordCount开发环境准备
o 5、WordCount案例实战
o 6、项目打包、部署和运行
o 7、MapReduce在实际应用中常见的优化
06Hadoop-HA高可用
o 1、Hadoop2.x集群搭建
o 3、NameNode的高可用性(HA)
o 4、HDFS Federation
o 4、ResourceManager 的高可用性(HA)
o 5、Hadoop集群常见问题和解决方法
o 6、Hadoop集群管理
07HDFS完全分布式
o 1、虚拟机准备
o 2、主机名设置
o 3、完全分布式文件配置
o 4、集群时间同步
o 5、集群测试
o 6、官方案例实战
08Hive入门
o 1、Hive发展前景及架构概述
o 2、Hive优点及使用场景
o 3、Hive安装环境准备
o 4、Hive安装部署
o 5、Hive基本操作
o 6、Hive运行日志配置和查看讲解
o 7、Hive常见属性配置
09Hive深入
o 1、Hive 表的创建
o 2、Hive 数据类型
o 3、Hive 外部表的讲解
o 4、Hive 分区表
o 5、Hive 常见查询
o 6、Hive UDF编程
10Hive高级
o 1、Hive中使用snappy压缩
o 2、Hive Storage Format讲解
o 3、Hive 企业使用优化
o 4、自定义UDF去除数据双引号项目实战
o 5、自定义UDF转换日期时间数据项目实战
o 6、依据业务编写HiveQL分析数据
怎样学习Java
学习计划
首先,我把Java系统学习分成两个阶段。
第一阶段:建立完整的的技术栈,成为一个有富于生产力的高级软件工程师。
在这个阶段要掌握一系列的基础知识和工具。这些东西前后关联,所以学习过程成线性顺序,要从上往下进行。
下面是第一阶段的学习路线:
第二阶段:这个阶段的目标是成为Java技术专家、架构师,因此必须在上一阶段的技术上,往高处(例如设计模式、大数据)走,往深处(Spring源码、Java虚拟机)走。
这个阶段的知识,并不存在前后的关联。在完成第一阶段的学习之后,完全看工作的需要,以及个人的兴趣,安排学习的优先级。
下面是第二阶段的学习目标:
接下来,我就点一下这个学习计划中的“关键点”。
Servlet
要成为一个优秀的Java web专家。无论是你用Spring MVC实现的普通REST接口,还是微服务。往深地走,都要深刻理解Servlet以及容器(例如Tomcat).
因此,在深度学习微服务,以及Spring MVC之前,一定要把Servlet学精,因为他是整个Java web的基石。所以,在成为软件专家的路上,Servlet是最基本的垫脚石,务必重视。
SQL
在我作为程序员入行的时候,没少在SQL语言下功夫,尤其是在SQL语言优化方面,包括在存储过程中各种折腾。
但现在,SQL优化在开发过程中的优先级显著降低,有几个原因:
- 各种OR map框架(例如Hibernate、Mybatis)的出现,使SQL的工作量大大降低。
- 各种OR map框架本身也会对编写的、自动生成的SQL进行优化。
- 当前的服务器架构,如果要提高性能,首先应该考虑架构的横向扩展性,而不是在SQL上进行极端优化。
但现在也不是说可以完全“任性”地编写SQL。只是说对于程序员,只要掌握最常见的SQL优化原则,做到工整就够了。
缓存、队列
缓存,队列。业界都有了较成熟的方案,例如Redis,ActiveMQ等。在学习的过程中,第一步是掌握核心概念,以及他们要解决的问题。然后就要亲自安装,使用这些软件,建立感性的认识。
其次就是在掌握核心概念的基础上,掌握这些开源软件的Java API,然后试着在此基础上,编写典型的Demo,从而在Java语言层面上彻底掌握。
至于有些朋友提到的把概念再“实现一遍”。不知道朋友指的是使用API,还是把缓存和队列软件,用Java语言实现一下。如果是后者,不是说不可以,关键是太费时间。同时,就业界实践来说,不是特别必要。如果你真有兴趣,把优先级放低一点,作为一个更长期的目标。
Linux
这个学习计划是一个长期的,深入的学习计划。最终是要成长为技术专家、或架构师。那么有必要适时的掌握下Linux。因为在实践中,服务器往往委托于Linux服务器。而且将来,还有不少开源软件只能在linux上运行。
因此,在开始学习缓存和队列前,需要先掌握了Linux的基本用法。然后再学习的过程中,就把这些开源软件在Linux上运行。
这样,在你学习Java的过程中,顺便也把Linux学习了,这远比你将来单独学习Linux要有趣,印象要深刻。
微服务
微服务并不是一门具体的技术,而是一个设计理念,很多语言和框架都可以实现,例如Java中的Spring MVC等。
因此,如果已经掌握了Spring MVC、Spring boot。那么对微服务的掌握是水到渠成的事情。你要做的就是注意力放在微服务的应用场景上。
设计模式
设计模式是较为靠上的东西。如果Java基础不是太好的话,很容易陷入空泛,眼高手低。
如果你的Java基础太薄弱,例如没有掌握“抽象类”。那么我建议你先把设计模式学习停一下,先把Java的基础知识补充下,至少要学完《Java核心技术》第六✂章,也就是掌握完整的现象对象的概念。然后再回来学习设计模式。
在学习设计模式的时候,一定要动手。最起码要把书中列举的设计模式,用Java语言实现一下。如果你阅读时是经典的GOF《设计模式》,其中的代码(用C++描述),就不容易用Java实现。建议你可以参照《Head First设计模式》,其中的demo都是短小精悍,很适合用Java来实现。
这样,一则有利于理解设计模式。二则在学习设计模式的过程中,也进一步增强对Java基础知识的掌握。这种学习过程是一个相互促进的过程。
学习笔记很重要
特别重要的一点,学习的过程中,尽量的写学习笔记,其中包括难点和重点。
因为,系统深入的学习Java必然是一个长期的,综合的过程。到后期,一定会出现学着后面,忘了前面。如果你没有学习笔记,又没有实践中积累的代码,那么就会出现边学边忘的情况。
而有了学习笔记,可以给自己的学习留下了“踪迹”,以后复习的时候用来参考,很快就能把早前学习的记忆“唤醒”。
而且,这些学习笔记在后来的工作中,还能成为自己的参考手册,随用随查。
还有,那就是学习笔记还是一个特别好的面试宝典。因为既然你记下了笔记,这些东西往往经过你深度思考,深度消化的东西,也是你区别于其他工程师的卓越之处。
此回答转自乐字节
原创文章,作者:Ame,如若转载,请注明出处:https://www.lbseo.cn/13503.html