Java零基础入行课程大纲详解
内容有点多,你忍一下!
前言
内容接上一篇的技术大纲,上一篇的技术大纲只是分享了Java web部分大家需要学习的知识点,此文给大家分享框架部分大家需要学习的知识点,如果能掌握好框架部分,将来对大家的就业一定会有很大的帮助。- 基础语法
- 面向对象
- Java API
- 数据库
- Java web – 金刚境
- SSM框架 – 指玄境
- spring boot – 天象境
- spring cloud alibaba – 陆地神仙
- 天人境?
一、SSM框架
其实这个部分比较尴尬,为什么呢?如果以后去到一线城市工作,基本上很少用到这些框架,二线城市,用的也不是很多,但是如果某些二次开发的老项目,基本上都是用的这一套,所以这一套基本上不管是线上还是线下的培训机构都会讲这一套。一、MyBatis
- 简介
- 项目搭建
- 运行测试
- MyBatis配置
- SqlSession三种查询方法
- SqlSession三种参数传递
- SqlSession实现CURD
- 基于接口代理模式开发
- 代理模式简析
- 接口代理的参数问题
- 模糊查询
- 主键自增回填
- 接口代理CURD
- 动态SQL
- 手动处理映射关系
- 多表查询_数据准备
- 多表查询–一对一
- 多表查询–一对多
- 多表查询–多对多
- 多表查询–级联加载
- MyBati注解完成CURD
- MyBatis缓存
- MyBatis–逆向工程
- MyBatis–配置文件编译问题
二、Spring
- Spring简介
- IOC概念
- IOC代码测试
- IOC实现原理
- IOC和DI概念解释
- XML实现DI
- Bean工厂
- Bean生命周期
- 自动装配
- 读取属性配置文件
- IOC注解方式
- 代理模式
- JDK动态代理
- AOP概念
- AOP注解
- JDBC Template增删改查
- Spring事务
三、SpringMVC
- springMVC概念
- 创建并运行war项目
- 框架搭建
- 执行流程
- 三大组件
- 静态资源放行
- 控制请求方式
- 控制请求参数和请求头
- @PathVariable注解
- RESTFUL风格
- 参数注入引入
- 注入POJO类型参数
- 注入Date类型参数
- 注入List类型参数
- 注入Map类型参数
- 请求参数乱码问题
- 常见注解
- 响应void
- 请求转发和响应重定向
- forward
- redirect
- SpringMVC视图
- SpringMVC–ModelAndView
- SpringMVC–响应JSON
- SSM整合
- SpringMVC–作用域传递数据
- SpringMVC–文件上传
- SpringMVC–文件下载
二、团队协作工具以及服务器
这部分内容在大纲中没有加进来,但是其实是属于公司必然会用到的开发工具,刚学完SSM框架再来学习这些工具,对于工具的理解会更加深刻。一、Git团队开发和版本控制
- Git版本控制介绍
- Git简史
- Git的安装过程
- Git结构
- 代码托管中心本地库
- 远程库的交互方式
- 初始化本地仓库
- 常用命令add和commit命令
- 常用命令status命令
- 常用命令log命令
- 常用命令reset
- 常见命令reset的hard,mixed,soft参数
- 常见命令删除文件
- 找回本地库删除的文件
- 常见命令找回暂存区删除的文件
- 常见命令diff命令
- 分支
- 查看分支
- 创建分支
- 切换分支
- 冲突问题解决
- 注册GitHub账号
- 远程库的交互方式
- 初始化本地库
- 创建GitHub远程库
- 在本地创建远程库地址的别名
- 推送操作
- 克隆操作
- 邀请加入团队push操作
- 远程库修改的拉取
- 协同开发合作时冲突的解决办法
- 跨团队合作
- SSH免密登录
- IDEA集成Git初始化本地库添加暂存区提交本地库
- 使用idea拉取和推送资源
- 使用Idea克隆远程仓库到本地
- 使用idea解决冲突如何避免冲突
二、Maven
- Maven简介
- Maven的下载目录结构
- IDEA整合Maven
- Maven远程仓库
- Maven本地仓库
- 仓库配置
- 仓库优先级问题
- JDK的配置
- Maven工程类型
- 在IDEA中创建Maven工程
- Maven目录结构
- Maven工程关系依赖关系
- Maven工程关系依赖的传递特性
- Maven工程关系依赖的两个原则排除依赖
- Maven工程关系依赖范围
- Maven工程关系继承关系
- Maven工程关系聚合关系
- 常见插件编译器插件
- 常见插件资源拷贝插件
- 常见插件Tomcat插件
- Maven常见命令
三、Linux
- 安装VMWare workstation
- Linux系统安装步骤
- 配置虚拟机的网络服务
- 基于虚拟机的快照克隆多台虚拟机的方法
- xhell、xftp工具
- linux内外部命令的判断方式
- 命令的执行流程
- linux查看命令帮助文档
- bash shell定义变量
- 进程简单管理
- hash优化命令查询时间的原理
- 介绍Linux文件系统
- 文件系统相关的命令
- vi文本编辑器
- Linux中正则表达式
- Linux文本处理命令-cut sort wc
- Linux行编辑器-sed的使用方式
- Linux sed命令修改各种配置文件案例
- Linux文本分析工具awk脚本
- Linux用户与权限
- Linux软件安装与卸载
- Linux rpm软件安装卸载相关的操作
- Yum安装与配置
- 配置本地Yum源
三、SpringBoot
SpringBoot是一个轻量级框架,也可以说是开始进入到微服务了。这部分在企业中用的比较多,面试也是考的比较多的,学习时要先学会应用,在应用的基础上查看源代码理解框架底层原理。 在学习完这部分内容之后,最好是能找到一个项目练手,将这部分技术应用在项目当中。一、SpringBoot
- SpringBoot简介
- SpringBoot项目搭建
- SpringBoot启动原理
- SpringBoot项目配置
- 整合MyBatis
- 整合logback
- 整合PageHelper
- 整合Druid
- 整合JSP
- 整合FreeMarker
- FreeMarker指令
- Thymeleaf简介
- Thymeleaf标准变量表达式
- Thymeleaf内置对象
- 模板引擎
- 开发者工具
- 项目打包发布
- SpringBoot异常处理
- Junit支持
- Bean管理
- 拦截器配置
- @Configuration
- @Import
- @Conditional
- @ImportResource
- 静态资源前缀和位置
- 欢迎页和favicon
- 拦截器放行静态资源
- 文件上传
- MyBatisPlus项目搭建
- MyBatisPlus实现CURD
- MyBatisPlus分页
- JUnit5简介
- JUnit5常见注解
- JUnit5断言机制
- Junit5前置条件
- JUnit5嵌套测试
- JUnit5参数化测试
二、zookeeper
- RPC简介
- RPC和HTTP对比
- 使用HttpClient实现RPC-服务器端的编写
- 使用HttpClient实现RPC-get请求操作
- 使用HttpClient实现RPC-post请求操作
- 使用HttpClient实现RPC-返回对象类型
- 使用HttpClient实现RPC-返回集合类型
- 流数据
- 使用@RequestBody接收流数据参数
- 使用ajax发送json参数
- ajax跨域请求
- RM简介
- RMI代码实现
- JDK的安装
- zookeeper的安装
- zookeper客户端命令
- zookeeper内容发布
- zookeeper消息订阅
- 手写RPC框架项目架构
- 手写PRC框架接口的编写
- 手写PRC框架Provider
- 手写PRC框架Consumer
三、Dubbo
- 简介
- 架构图理解
- 支持的协议
- 支持的注册中心
- 第parent工程的编写
- 接口&provider编写
- consumer编写
- 运行测试
- Admin界面搭建
- 负载均衡效果
四、FastDFS
- 分布式文件系统概述
- FastDFS简介
- FastDFS架构
- 安装-基础搭建
- 安装Tracker
- 安装Storage
- 文件上传
- 文件下载
- 正向代理
- 反向代理
五、Nginx
- Nginx简介
- Nginx安装
- Nginx原型图
- Nginx架构模型
- Nginx负责均衡策略
- KindEditor文件上传
六、Redis
- NOSQL数据库简介
- Redis简介
- Redis单机版安装
- Redis单机版的启动
- Redis常用的五大类型
- 常用命令
- Redis持久化策略-RDB
- Redis持久化策略-AOF
- 主从复制介绍
- 主从复制搭建
- 哨兵简介
- 哨兵搭建
- redis集群搭建
- Jedis详解
- SpringBoot整合SpringDataRedis操作redis
七、Solr
- Solr简介
- Solr原理和数据存储注意事项
- Solr单机版安装
- 可视化界面初识
- 新建核心
- IK Analyzer配置
- Managed-schema详解
- dataimport
- documents菜单项讲解
- query菜单项讲解
- SolrJ的增删改查
- SolrJ查询、排序、分页、高亮
- Spring Data Solr保存
- Spring Data Solr修改、删除
- Spring Data Solr查询
- zookeeper集群搭建
- SolrCloud
八、RabbitMQ
- AMQP简介
- RabbitMQ简介
- RabbitMQ运行原理
- Erlang安装
- Rabbitmq安装
- 创建Rabiitmq账户
- Web管理插件可视化界面说明
- 交换器Direct
- 交换器Fanout
- 交换器Topic
九、SpringSecurity
- Spring Security的简介
- 自定义登录逻辑
- 表单相关常用参数配置
- 设置url
- 异常403处理方法
- 角色和权限限制url访问
- rbac表设计
- 从数据库中查询出角色和权限
- 自定义授权逻辑
- @Secured的注解
- @PreAuthorize注解
- Remember
- Me功能实现
- thymeleaf中security属性的使用
- 退出登陆功能实现
- Spring Security中CSRF详解
十、ElasticSearch
- ElasticSearch简介
- ElasticSearch单机版安装
- ElasticSearch集群版安装
- ElasticSearch索引管理
- ElasticSearch文档管理
- ElasticSearch文档搜索
- Spring-data-ElasticSearch
四、SpringCloud Alibaba
Spring Cloud Alibaba是国内乃至全球用的最多的微服务了,如果是一线的互联网公司,必然会用到这一套框架,先要冲击大厂的同学也需要在此框架上加深理解。一、SpringCloud Alibaba Dubbo
- SpringCloud Alibaba Dubbo简介
- 基于Zookeeper发布服务
- 基于Zookeeper订阅服务
- 远程服务器调用处理
二、SpringCloud Alibaba Nacos
- SpringCloud Alibaba Nacos简介
- 搭建Nacos服务器
- 基于Nacos发布服务
- 基于Nacos订阅服务
- 实现远程服务调用处理
- Nacos Config配置中心
三、SpringCloud Alibaba Sentinel
- 搭建Sentinel服务器
- Sentinel实时监控
- Sentinel簇点链路
- Sentinel授权规则
- Sentinel系统规则
- @SentinelResource注解
- 持久化规则
四、SpringCloud Alibaba Seata
- Seata简介
- 搭建Seata服务器
- Seata–AT模式
- Seata–TCC模式
- Seata–Saga模式
- Seata–XA模式
- SeataAT事务模式应用方式
- SeataTCC事务模式应用方式
五、天人境?
对于应届毕业生,这个境界,无非就是所有的大厂都能轻松搞定,但是很多大厂基本上都要求是双一流大学,这是必要条件,但是部分大厂也不会一棒子打死,会在一些一本,甚至是二本中挑选一些非常优秀的学生,虽然在一本和二本中这样的学生较少,但是还是能找到一些不错的苗子,只要自己肯努力,自己够优秀,不管你是什么学历,就能被大厂破格录取。 下面这些内容也是在面试大厂中经常被同学们提到的八股文技术知识点。一、JVM调优
- JVM基础
- Class文件格式
- Class文件解读
- 类加载器
- 双亲委派
- 父加载器
- 类加载器范围
- 自定义类加载器
- 加密编译器
- 懒加载
- 初始化
- 单例模式
- 双重检查
- 硬件层数据一致性
- 缓存行
- 伪共享
- 乱序问题
- 乱序证明
- 硬件级别保证有序
- volatile实现细节
- synchronized实现细节
- 排序规范
- 对象的创建过程
- 对象在内存中的存储布局
- 对象的大小
- 对象头具体包括什么
- Runtime Data Area
- 栈帧栈的执行流程
- invoke指令
- 垃圾GC常用垃圾清除算法
- 堆内存逻辑分区
- 栈上分配
- 对象何时进入老年代
- 关于年轻代老年代的两个问题
- 常见的垃圾回收器
- CMS
- JVM常用命令行参数
- GC日志详解
- 调优前的基础概念
- 什么是调优
- 风险评控
- top命令观察到问题
- jstack定位线程状况
- 定位OOM问题
- arthas
- 分析dump文件
- arthas的反编译和热替换
- G1特点
- 并发标记算法
- RSet与赋值效率
- CMS日志分析
- G1日志分析
- GC常用参数
- Parallel常用参数
- CMS常用参数
- 纤程
二、多线程
- 多线程内容特点
- 线程的历史
- 什么是进程线程纤程
- 线程的切换
- 单核CPU设定多线程是否有意义
- 线程数是不是越大越好
- 线程数设多少最合适
- 创建线程的5种方法
- Thread_Runnable_Lambda
- 使用ThreadPool
- 线程池和Callable
- 运用FutureTask
- 线程状态
- 线程状态迁移
- NEW_RUNNABLE_TERMINATED
- WAITING_TIMEDWAITING
- BLOCKED
- 线程状态在Lock和synchronized的区别
- park之后的线程状态
- 线程的interruption
- 线程打断3方法
- interrupt_and_isInterrupted
- interrupt_and_interrupted
- interrupt_and_sleep
- interrupt_and_wait
- interrupt_and_synchronized
- interrupt_and_lock
- interrupt_and_lockInterruptibly
- 使用stop方法结束线程
- suspend_resume
- volatile结束线程
- interrupt结束线程
三、高并发
- 并发编程三大特性
- 可见性的基本概念
- 用volatile保障可见性
- 某些语句触发内存缓存同步刷新
- volatile修饰引用类型
- 三级缓存
- 缓存行的基本概念
- 缓存一致性
- Disruptor中缓存行对齐的写法
- Contended
- 硬件层面的缓存一致性
- 为什么缓存一行是64字节
- 并发编程之有序性问题的提出
- 乱序的验证
- 乱序的分析
- 为何会存在乱序
- 乱序的原则
- 通过一个小程序认识可见性和有序性
- 对象的半初始化状态
- this对象逸出
- happens-before原则
- CPU用屏障指令阻止乱序
- JVM要求实现的四种屏障
- 用volatile禁止指令重排
- volatile在hotspot中的实现
- 识原子性的概念
- 底层原子性和JVM原子性
- 用上锁保证原子性
- 上锁的本质
- 锁的粒度
- 悲观锁与乐观锁
- CAS的概念解析
- CAS的ABA问题
- CAS的底层原子性保障
- 通过Atomic类深入认识CAS
- 深入Hotspot代码深入理解CAS
- 乐观锁与悲观锁的效率
- synchronized和三大特性
- synchronized锁升级
四、多线程与高并发
- 线程的概念
- 线程的启动方式
- 线程的3个方法
- 线程的状态
- 锁的概念
- 锁的特性
- 锁的可重入属性
- 异常跟锁
- 锁的底层实现
- Volatile保证线程可见性
- Volatile禁止指令重排序
- Volatile不能保证原子性
- synchronized优化
- CAS
- LongAdder
- ReentrantLock
- CountDownLatch
- CyclicBarrier
- Phaser
- ReadWriteLock
- Semaphore
- Exchanger
- LockSupport
- ReentrantLock源码
- AQS源码
- AQS源码
- ThreadLocal
- 强引用
- 软引用
- 弱引用
- 虚引用
- 容器概览
- Vector到Queue的发展
- ConcurrentHashMap的发展
- 经常在多线程情况下使用的容器
- 阻塞队列中比较特殊的几个队列
- 线程池几个常用类
- CompletableFuture
- 线程池参数
- 默认拒绝策略应用场景
- SingleThreadPool
- CachedPool
- FixedThreadPool
- ScheduledPool
- 并发和并行对比
- ThreadPoolExecutor源码
- WorkStealingPool
- ForkJoinPool
- 两个Pool的区别
- 流式API
- JMH测试
- Disruptor的核心
- Disruptor开发步骤
- ProducerType
- 等待策略
- 消费者的指定和异常处理
五、设计模式
- 单例模式
- 策略模式
- 工厂模式
- 装饰者模式
- 观察者模式
- Composite组合模式
- Flyweight享元
- Facade门面Mediator调停者
- ChainOfResponsibility责任链
- 代理模式
- 迭代器模式
- 访问者模式
- 构建起模式
- 设配器模式
- 桥接模式
- Prototype原型
- Command命令
- Memento备忘录
- TemplateMethod模板方法
- State状态
- Intepreter解释器
六、算法与数据结构
- 什么是算法
- 什么是数据结构
- 紧密结构
- 跳转结构
- 集合结构
- 集合的应用场合
- ArrayList
- Vector实现类源码
- 泛型参数存在继承关系的情况
- LinkedList简要底层原理
- HashSet的简要原理
- TreeSet的原理
- HashMap的原理
- HashMap底层数组的扩容
- HashSet底层原理
- TreeMap底层源码
- TreeSet底层源码
- 数据结构–栈
- Stack
- 同步类容器
- 同步类容器源码解析
- ConcurrentMap并发容器
- COW容器引入
- CopyOnWriteArrayList
- CopyOnWriteArraySet
- 队列
- BlockingQueue
- ArrayBlockingQueue
- LinkedBlockingQueue
- SynchronousQueue
- PriorityBlockingQueue
- DelayQueue
- 双端队列Deque
- 常数时间的操作
- 时间复杂度的意义
- 选择排序
- 冒泡排序
- 插入排序
- 选择排序
- 额外空间复杂度
- 常见的时间复杂度
- 对数器
- 二分法
- 局部最小值
- 认识异或运算
- 不用额外变量交换两个数的值
- 单双向链表节点结构
- 单双链表如何反转
- 把给定值删除
- java和c++在内存释放上的问题
- 什么是栈和队列
- 栈和队列的实际实现
- 如何用队列结构实现栈结构
- 如何使用栈结构实现队列结构
- Master公式
- 哈希表
- 归并排序
- 归并排序时间复杂度
- 一个数组中求降序对
- Partition过程
- 荷兰国旗问题
- 完全二叉树结构
- 堆是什么
- 大根堆
- 下沉的复杂度
- 堆排序优化
- 比较器
- 前缀树
- 实现前缀树
- 不基于比较的排序
- 基数排序
- 基数排序代码拆解
- 计数排序和基数排序
- 选择、冒泡、插入排序有没有稳定性
- 归并、快排、堆排序有没有稳定性
- 链表问题
- 快慢指针
- 特殊的单链表节点
- 两个无环链表是否相交
- 两个链表都有环的结构
- 二叉树算法
- 二叉树遍历
- 实现二叉树按层遍历
- 统计二叉树最大的宽度
- 二叉树的序列化和反序列化
- 二叉树的递归
- 平衡树
六、总结
以上就是现在大厂中用的最多的框架,如果将以上框架学完,有一定的理解,再加上一定的项目经验,在一线城市,至少也是12-15K起步,如果能进入大厂,那就是15-20K起步了。对于应届毕业生而言确实是一个非常不错的就业方向。
如果同学们确定了以后用Java作为就业方向,希望大家能坚持下来,稳扎稳打,多多积累项目经验,最后找到一份好的工作。
课程大纲的分享就到这里了,后续我会分享每一个知识点的笔记,如果有正在学习Java的同学可以关注收藏私信,有什么建议也可以私信楼主。
想要免费获取Java资料的同学欢迎私信。