内容有点多,你忍一下!
文章目录
Java零基础入行课程大纲详解前言一、SSM框架
一、MyBatis二、Spring三、SpringMVC 二、团队协作工具以及服务器
一、Git团队开发和版本控制二、Maven三、Linux 三、SpringBoot
一、SpringBoot二、zookeeper三、Dubbo四、FastDFS五、Nginx六、Redis七、Solr八、RabbitMQ九、SpringSecurity十、ElasticSearch 四、SpringCloud Alibaba
一、SpringCloud Alibaba Dubbo二、SpringCloud Alibaba Nacos三、SpringCloud Alibabasentinel四、SpringCloud Alibabaseata 五、天人境?
一、JVM调优二、多线程三、高并发四、多线程与高并发五、设计模式六、算法与数据结构 六、总结
前言 内容接上一篇的技术大纲,上一篇的技术大纲只是分享了Java web部分大家需要学习的知识点,此文给大家分享框架部分大家需要学习的知识点,如果能掌握好框架部分,将来对大家的就业一定会有很大的帮助。
基础语法面向对象Java API数据库Java web – 金刚境SSM框架 – 指玄境spring boot – 天象境spring cloud alibaba – 陆地神仙天人境? 废话不多说,直接上大纲 一、SSM框架 其实这个部分比较尴尬,为什么呢?如果以后去到一线城市工作,基本上很少用到这些框架,二线城市,用的也不是很多,但是如果某些二次开发的老项目,基本上都是用的这一套,所以这一套基本上不管是线上还是线下的培训机构都会讲这一套。 一、MyBatis
简介项目搭建运行测试MyBatis配置SqlSession三种查询方法SqlSession三种参数传递SqlSession实现CURD基于接口代理模式开发代理模式简析接口代理的参数问题模糊查询主键自增回填接口代理CURD动态SQL手动处理映射关系多表查询_数据准备多表查询–一对一多表查询–一对多多表查询–多对多多表查询–级联加载MyBati注解完成CURDMyBatis缓存MyBatis–逆向工程MyBatis–配置文件编译问题 二、Spring
Spring简介IOC概念IOC代码测试IOC实现原理IOC和DI概念解释XML实现DIBean工厂Bean生命周期自动装配读取属性配置文件IOC注解方式代理模式JDK动态代理AOP概念AOP注解JDBC Template增删改查Spring事务 三、SpringMVC
springMVC概念创建并运行war项目框架搭建执行流程三大组件静态资源放行控制请求方式控制请求参数和请求头@PathVariable注解RESTFUL风格参数注入引入注入POJO类型参数注入Date类型参数注入List类型参数注入Map类型参数请求参数乱码问题常见注解响应void请求转发和响应重定向forwardredirectSpringMVC视图SpringMVC–ModelAndViewSpringMVC–响应JSONSSM整合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整合MavenMaven远程仓库Maven本地仓库仓库配置仓库优先级问题JDK的配置Maven工程类型在IDEA中创建Maven工程Maven目录结构Maven工程关系依赖关系Maven工程关系依赖的传递特性Maven工程关系依赖的两个原则排除依赖Maven工程关系依赖范围Maven工程关系继承关系Maven工程关系聚合关系常见插件编译器插件常见插件资源拷贝插件常见插件Tomcat插件Maven常见命令 三、Linux
安装VMWare workstationLinux系统安装步骤配置虚拟机的网络服务基于虚拟机的快照克隆多台虚拟机的方法xhell、xftp工具linux内外部命令的判断方式命令的执行流程linux查看命令帮助文档bash shell定义变量进程简单管理hash优化命令查询时间的原理介绍Linux文件系统文件系统相关的命令vi文本编辑器Linux中正则表达式Linux文本处理命令-cut sort wcLinux行编辑器-sed的使用方式Linux sed命令修改各种配置文件案例Linux文本分析工具awk脚本Linux用户与权限Linux软件安装与卸载Linux rpm软件安装卸载相关的操作Yum安装与配置配置本地Yum源 三、SpringBoot SpringBoot是一个轻量级框架,也可以说是开始进入到微服务了。这部分在企业中用的比较多,面试也是考的比较多的,学习时要先学会应用,在应用的基础上查看源代码理解框架底层原理。 在学习完这部分内容之后,最好是能找到一个项目练手,将这部分技术应用在项目当中。 一、SpringBoot
SpringBoot简介SpringBoot项目搭建SpringBoot启动原理SpringBoot项目配置整合MyBatis整合logback整合PageHelper整合Druid整合JSP整合FreeMarkerFreeMarker指令Thymeleaf简介Thymeleaf标准变量表达式Thymeleaf内置对象模板引擎开发者工具项目打包发布SpringBoot异常处理Junit支持Bean管理拦截器配置@Configuration@import@Conditional@importResource静态资源前缀和位置欢迎页和favicon拦截器放行静态资源文件上传MyBatisPlus项目搭建MyBatisPlus实现CURDMyBatisPlus分页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持久化策略-RDBRedis持久化策略-AOF主从复制介绍主从复制搭建哨兵简介哨兵搭建redis集群搭建Jedis详解SpringBoot整合SpringDataRedis操作redis 七、Solr
Solr简介Solr原理和数据存储注意事项Solr单机版安装可视化界面初识新建核心IK Analyzer配置Managed-schema详解dataimportdocuments菜单项讲解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注解RememberMe功能实现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 Alibabasentinel
搭建Sentinel服务器Sentinel实时监控Sentinel簇点链路Sentinel授权规则Sentinel系统规则@SentinelResource注解持久化规则 四、SpringCloud Alibabaseata
Seata简介搭建Seata服务器Seata–AT模式Seata–TCC模式Seata–Saga模式Seata–XA模式SeataAT事务模式应用方式SeataTCC事务模式应用方式 五、天人境? 对于应届毕业生,这个境界,无非就是所有的大厂都能轻松搞定,但是很多大厂基本上都要求是双一流大学,这是必要条件,但是部分大厂也不会一棒子打死,会在一些一本,甚至是二本中挑选一些非常优秀的学生,虽然在一本和二本中这样的学生较少,但是还是能找到一些不错的苗子,只要自己肯努力,自己够优秀,不管你是什么学历,就能被大厂破格录取。 下面这些内容也是在面试大厂中经常被同学们提到的八股文技术知识点。 一、JVM调优
JVM基础Class文件格式Class文件解读类加载器双亲委派父加载器类加载器范围自定义类加载器加密编译器懒加载初始化单例模式双重检查硬件层数据一致性缓存行伪共享乱序问题乱序证明硬件级别保证有序volatile实现细节synchronized实现细节排序规范对象的创建过程对象在内存中的存储布局对象的大小对象头具体包括什么Runtime Data Area栈帧栈的执行流程invoke指令垃圾GC常用垃圾清除算法堆内存逻辑分区栈上分配对象何时进入老年代关于年轻代老年代的两个问题常见的垃圾回收器CMSJVM常用命令行参数GC日志详解调优前的基础概念什么是调优风险评控top命令观察到问题jstack定位线程状况定位OOM问题arthas分析dump文件arthas的反编译和热替换G1特点并发标记算法RSet与赋值效率CMS日志分析G1日志分析GC常用参数Parallel常用参数CMS常用参数纤程 二、多线程
多线程内容特点线程的历史什么是进程线程纤程线程的切换单核CPU设定多线程是否有意义线程数是不是越大越好线程数设多少最合适创建线程的5种方法Thread_Runnable_Lambda使用ThreadPool线程池和Callable运用FutureTask线程状态线程状态迁移NEW_RUNNABLE_TERMINATEDWAITING_TIMEDWAITINGBLOCKED线程状态在Lock和synchronized的区别park之后的线程状态线程的interruption线程打断3方法interrupt_and_isInterruptedinterrupt_and_interruptedinterrupt_and_sleepinterrupt_and_waitinterrupt_and_synchronizedinterrupt_and_lockinterrupt_and_lockInterruptibly使用stop方法结束线程suspend_resumevolatile结束线程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优化CASLongAdderReentrantLockCountDownLatchCyclicBarrierPhaserReadWriteLockSemaphoreExchangerLockSupportReentrantLock源码AQS源码AQS源码ThreadLocal强引用软引用弱引用虚引用容器概览Vector到Queue的发展ConcurrentHashMap的发展经常在多线程情况下使用的容器阻塞队列中比较特殊的几个队列线程池几个常用类CompletableFuture线程池参数默认拒绝策略应用场景SingleThreadPoolCachedPoolFixedThreadPoolScheduledPool并发和并行对比ThreadPoolExecutor源码WorkStealingPoolForkJoinPool两个Pool的区别流式APIJMH测试Disruptor的核心Disruptor开发步骤ProducerType等待策略消费者的指定和异常处理 五、设计模式
单例模式策略模式工厂模式装饰者模式观察者模式Composite组合模式Flyweight享元Facade门面Mediator调停者ChainOfResponsibility责任链代理模式迭代器模式访问者模式构建起模式设配器模式桥接模式Prototype原型Command命令Memento备忘录TemplateMethod模板方法State状态Intepreter解释器 六、算法与数据结构
什么是算法什么是数据结构紧密结构跳转结构集合结构集合的应用场合ArrayListVector实现类源码泛型参数存在继承关系的情况linkedList简要底层原理HashSet的简要原理TreeSet的原理HashMap的原理HashMap底层数组的扩容HashSet底层原理TreeMap底层源码TreeSet底层源码数据结构–栈Stack同步类容器同步类容器源码解析ConcurrentMap并发容器COW容器引入CopyOnWriteArrayListCopyOnWriteArraySet队列BlockingQueueArrayBlockingQueuelinkedBlockingQueueSynchronousQueuePriorityBlockingQueueDelayQueue双端队列Deque常数时间的操作时间复杂度的意义选择排序冒泡排序插入排序选择排序额外空间复杂度常见的时间复杂度对数器二分法局部最小值认识异或运算不用额外变量交换两个数的值单双向链表节点结构单双链表如何反转把给定值删除java和c++在内存释放上的问题什么是栈和队列栈和队列的实际实现如何用队列结构实现栈结构如何使用栈结构实现队列结构Master公式哈希表归并排序归并排序时间复杂度一个数组中求降序对Partition过程荷兰国旗问题完全二叉树结构堆是什么大根堆下沉的复杂度堆排序优化比较器前缀树实现前缀树不基于比较的排序基数排序基数排序代码拆解计数排序和基数排序选择、冒泡、插入排序有没有稳定性归并、快排、堆排序有没有稳定性链表问题快慢指针特殊的单链表节点两个无环链表是否相交两个链表都有环的结构二叉树算法二叉树遍历实现二叉树按层遍历统计二叉树最大的宽度二叉树的序列化和反序列化二叉树的递归平衡树 六、总结
以上就是现在大厂中用的最多的框架,如果将以上框架学完,有一定的理解,再加上一定的项目经验,在一线城市,至少也是12-15K起步,如果能进入大厂,那就是15-20K起步了。对于应届毕业生而言确实是一个非常不错的就业方向。
如果同学们确定了以后用Java作为就业方向,希望大家能坚持下来,稳扎稳打,多多积累项目经验,最后找到一份好的工作。
课程大纲的分享就到这里了,后续我会分享每一个知识点的笔记,如果有正在学习Java的同学可以关注收藏私信,有什么建议也可以私信楼主。
想要免费获取Java资料的同学欢迎私信。



