下面可能会有一些是重点,但是我暂时没想起来的,以后再补充。但是,只要是我写下来的就一定是重点
这篇文章只到ssm结束,后续还有第二部分,但是能给这些东西掌握透,基本上javaWeb的工作还是可以胜任的
下一篇文章我就以“前后端分离”为主线写吧
- java基础
- 数据结构,基础数据类型和引用数据类型,String类型,
- lambda表达式
- 集合框架
- 面向对象编程思想
- 封装继承多态,重写重载
- 异常处理
- 还有一些基础的,方法的定义,运算符,操作符。。。。。。
- 内部类,匿名类,代码简写方式
- guava,这是一个相当于jdk的补丁,有很多好用的方法,可以简化很多操作
- lombok,这是一个工具类,可以简化javaBean的封装
- java高级
- I/O流的概念,字符字节的概念
- 反射,反射的原理,反射的机制,反射的实现方式
- 多线程,重点不在于操作,而在于理解这个概念,使用场景
- 网络编程,这个可以了解一下,应用面比较窄,以后不一定用的上
- swing编程,是java使用最多的可视化编程工具包,以后不一定能用上,但是有时候优化代码会用到,而且其中使用的代码处理方式,都和js等这些语言处理方式很相似
- 还有一个东西叫做java虚拟机jvm,这个东西,是个难点,但不是重点,以后可能会在面试的时候需要学习,所以这个可以先不看,但是得知道他的实现方式,起码别人说起来知道这个东西
- html+css
- html的常用标签,以及分类,使用场景,特点
块元素,内联元素,内敛块
- 表单元素,各个元素及其各项属性
- 了解一下H5的一些新特性
- css选择器
- css的盒子模型,这个是重点,浮动
- 基本布局
- javascript和jquery
- js的各个基础操作,包括运算,数据结构,数组,面向对象等等等,了解即可,其实都和java差不太多,基本看一下就会用了
- js选择器
- js操作DOM
- js的事件处理
- jquery选择器,过滤器
- jquery和js之间灵活切换,之间方法的对比
- jquery操作DOM
- jquery和js的ajax请求,这个是重点,但是不用太过深究,以后在作前后端分离的时候,不一定用的上ajax
- 还有很多的小知识点,不赘述,比如动画特效等
- bootstarp
- 首先理解这个东西不叫框架,这只是一个库,他只是封装了很多样式和js的使用场景
- 这个东西是个重点,因为在以后的工作中,这可能是后端程序员做前端唯一的依赖
- 各种class属性值的使用,尤其是关于表单的部分
- 会使用官方提供的帮助文档
- 能掌握一到两个使用bootstrap编辑出来的帮助网站admin,SBAdmin,ace Admin
- jdbc
- jdbc的一套使用方式,
- jdbc的原理,也就是说为什么使用jdbc驱动
- jdbc的一整套操作包括增删改查
- 还有一些需要理解为什么这么用,比如Statement和PreparedStatement,executeQeury ( )和executeUpdate ( ),结果集
- 数据库连接池,这是个重点,因为即使以后不使用jdbc,也会使用数据库连接池,推荐学习DBCP2和alibaba的Druid,原因是前者是使用最多的也是最稳定的,后者在以后使用ali的一套的时候,会很常的使用到,包括使用springBoot都是推荐使用Druid
- 数据库
- 推荐主要学习使用mysql,oracle在mysql的基础上做区分学习就可以了
- 基础数据库操作语句
- 存储过程,知道怎么实现即可
- 事务,这个是个重点,需要重点理解原理和使用场景
- 索引,视图什么的,知道是什么东西就好了,不会用到
- 还有一个重点,是数据库的查询语句,这个推荐查看我的另一篇文章,具体查看
- servlet和jsp
- 理解C/S架构和B/S架构的区别
- 明白服务器在整个生态体系中的地位
- 理解http和servlet的形成原因,以及基础操作和其中的各个方法
- 会手动配置servlet,其实从servlet3.0之后增添了注解的配置现在已经不手动配置了,但是还是要明白servlet是怎么实现的,以及他的地位
- 理解jsp的九大内置对象,理解四大域对象
- 理解session这个概念,以及四大域对象的作用范围
- EL表达式和jstl表达式,这个会使用很长时间,到以后使用别的模板,才会不用
- 理解过滤器和拦截器,会实现
- 文件上传下载的实现方式
- cookie和session的区别,cookie的实现
- 会解决各个系统之间会出现的乱码问题
- 请求转发和重定向的区别
13.如何从前台获取数据,如何从后台向前台发送数据
- 一些小工具,建议在这个场景学习
git,这个是一个版本管理工具,和svn一样,但是实现模式不一样,建议重点学习git,svn了解即可
maven,这个是依赖管理工具,为了实现不同代码因为依赖的关系导致可移植性太差的问题
node,这个是前端的东西,但是还是建议了解一下,了解即可
npm,这个我的理解是一个下载工具,我所使用的都是他的下载功能,可以镜像到国内的cnpm,哪个公司的我忘记了,好像是阿里的,懒得查了
一些编辑器的操作,建议,eclipse和myeclipse,intellij IDEA,webstome,Visual studio Code,
markdown,这个是一个很简洁的文本编辑语言,我自己感觉用的很舒服
下面是框架的学习,需要对java基础部分有很高的理解,建议能给java基础学好之后再学习这些部分
- hibernate
- 其实这个框架现在使用的并不多了,但是有些原本的项目会涉及到,还有之后学习的过程中,会偶尔遇到这个框架中的一些比较好的技术,所以还是需要略微的学习一下
- 数据映射,这个理解一下原理,会配置就可以了
- 理解下面七个核心API
- Configuration。 2.SessionFactory(重要)。 3. Session注意这个和jsp中的session不是同一个。4.Transaction(事务对象) 嗯,还有三个我记不清了,这个不是重点,下一个
- hibernate缓存,一级二级,了解即可
- hibernate绑定session
- 会一整套hibernate的数据操作即可
- 我也是很久不用这个了,很多都记不太清了,但是我认为的重点在于hibernate使用的hql数据库语言,还有他的事务部分处理的很好,包括暂时没用到的缓存机制也是他的特色。这一部分真要学习,不要照我这个,我这个只是给个建议,因为我真的很久不用,记不清了
- mybatis
- 这是ssm中的m,做数据持久层操作,使用场景还是很多的,虽然在springBoot中被springData JPA取代,但是基础实现原理还是一样的
- 理解几个概念,mapper,sessionFactory,sqlSession
- 会配置mybatis
- 会做mapper的映射文件,参数的引用方式(四种)
- mapper映射文件中数据库的操作方式,各个标签的使用方式和场景,会写动态SQL语句
- 映射文件中对缓存的处理
- 理解sessionFactory在mybatis中所处的地位
- 网上有mybatis的中文文档mybatis
- springMVC
- ssm的一个s,是spring下的一个完整的Web层“解决方案”
- springMVC重点在于理解他的工作原理,这个是重点,这个是重点,这个是重点
- 会配置springMVC,这个是基础,重点理解配置的原理,这个比较繁琐,建议系统学习,包括视图解析器,servlet映射,上下文配置等等一系列,这个很多,也很繁琐(所以之后才会衍生出了springBoot)
- springMVC各个注解,及其含义,使用场景
@Controller,@RequestMapping,@ResponseBody,@RequestParam等等,还有一些注解涉及到springBoot和RestFul,这里先不说
- Controller,这个是springMVC的核心,首先理解Controller的地位,然后他的地址映射(也就是前端访问的路径),Model,ModelAndView,Map,Session,等这些可以向前端页面中传值的实现方式。springmvc的转发和重定向方式
6.重点在于参数绑定,数据回显,文件上传等- 拦截器的实现方式
- 还是那句话,重点理解原理,实现方式不会可以查,但是这个原理必须得掌握
13.spring
- 说实在的spring这个东西,我不是很敢写学习重点,一来是因为我也不知道什么是重点,二来我感觉都是重点,也都是难点,它其实没有什么技术上的东西,我的理解就是它就相当于一个中间件,它绑定了springMVC和mybatis,实现了解耦合,实现了AOP,它更偏向于我下面想说的设计模式,它的重点在于AOP(面向切面编程),IOC(控制反转),松耦合
- 我学习spring的历程有点不一样,因为当时是我自学的,我学到spring的时候,发现,我怎么都自己都看不明白这些东西,就算看明白了也不知道在哪用,就算知道在哪用,也不知道怎么用,所以我就索性不看spring,我直接做了ssh的整合,整合完了之后我就开始学习springMVC和mybatis,然后做ssm整合,也就是说这两个中间的一个s,spring我一直都没学,等ssm整合完了,我就回头看spring,才大约理解了这个东西到底想干什么,不过我的方式肯定不适合别人,所以下面我列举一下重点吧,具体怎么学,我也没有什么好的建议
- AOP,面向切面编程,这算是一种编程思想,是个重点,之后的项目中都会用到,而且算是一个高级的技能,建议学习,
- IOC控制反转,spring的特点,它的原理是将对象的创建交给外部容器,而不是直接进行创建,这个结果导致了,对象使用的减少,从而提升性能。这个还有一个叫做依赖注入的一般一起使用,依赖注入的特点是它可以给对象注入对象,属性或者关系,使用这种方式从而做到松耦合的特点。这又导出了松耦合的概念
- 松耦合,目的是减少代码的复杂程度(我的理解),以前我们松耦合总是使用接口new实现类的方式,也就是我们会说我们是面向接口编程,松耦合完事之后,可以大大提升我们代码的灵活性,恰好契合了java的设计思想(这就是我说的为什么spring我认为他是一个设计模式的问题)
spring的六大模块,这个东西就是实战的概念了,只要紧紧切合这六大模块,就可以很方便的实现spring,这六大模块也切合一些其他的东西,
放张图,看起来好理解一点,其实spring的实现部分就是这个图
学spring,我认为,重点是学习它如何整合别的框架,它的设计思想,spring是一个大概念,我的理解是学习java历程分为两部分,spring之前,spring之后,所以建议兄弟们了解一下这个框架的作者Rod Johnson,他是我最崇拜的一个互联网大佬,spring这个大体系包括我们需要学习的很多东西,springMVC,springBoot,spring Security,spring Data,spring Cloud等等
注:可以传播,回报互联网;有纰漏和错误,欢迎留言。