给兄弟们写的学习历程(一)

下面可能会有一些是重点,但是我暂时没想起来的,以后再补充。但是,只要是我写下来的就一定是重点

这篇文章只到ssm结束,后续还有第二部分,但是能给这些东西掌握透,基本上javaWeb的工作还是可以胜任的

下一篇文章我就以“前后端分离”为主线写吧

  1. java基础
  1. 数据结构,基础数据类型和引用数据类型,String类型
  2. lambda表达式
  3. 集合框架
  4. 面向对象编程思想
  5. 封装继承多态,重写重载
  6. 异常处理
  7. 还有一些基础的,方法的定义,运算符,操作符。。。。。。
  8. 内部类,匿名类,代码简写方式
  9. guava,这是一个相当于jdk的补丁,有很多好用的方法,可以简化很多操作
  10. lombok,这是一个工具类,可以简化javaBean的封装
  1. java高级
  1. I/O流的概念,字符字节的概念
  2. 反射,反射的原理,反射的机制,反射的实现方式
  3. 多线程,重点不在于操作,而在于理解这个概念,使用场景
  4. 网络编程,这个可以了解一下,应用面比较窄,以后不一定用的上
  5. swing编程,是java使用最多的可视化编程工具包,以后不一定能用上,但是有时候优化代码会用到,而且其中使用的代码处理方式,都和js等这些语言处理方式很相似
  6. 还有一个东西叫做java虚拟机jvm,这个东西,是个难点,但不是重点,以后可能会在面试的时候需要学习,所以这个可以先不看,但是得知道他的实现方式,起码别人说起来知道这个东西
  1. html+css
  1. html的常用标签,以及分类,使用场景,特点

块元素,内联元素,内敛块

  1. 表单元素,各个元素及其各项属性
  2. 了解一下H5的一些新特性
  3. css选择器
  4. css的盒子模型,这个是重点,浮动
  5. 基本布局
  1. javascript和jquery
  1. js的各个基础操作,包括运算,数据结构,数组,面向对象等等等,了解即可,其实都和java差不太多,基本看一下就会用了
  2. js选择器
  3. js操作DOM
  4. js的事件处理
  5. jquery选择器,过滤器
  6. jquery和js之间灵活切换,之间方法的对比
  7. jquery操作DOM
  8. jquery和js的ajax请求,这个是重点,但是不用太过深究,以后在作前后端分离的时候,不一定用的上ajax
  9. 还有很多的小知识点,不赘述,比如动画特效等
  1. bootstarp
  1. 首先理解这个东西不叫框架,这只是一个库,他只是封装了很多样式和js的使用场景
  2. 这个东西是个重点,因为在以后的工作中,这可能是后端程序员做前端唯一的依赖
  3. 各种class属性值的使用,尤其是关于表单的部分
  4. 会使用官方提供的帮助文档
  5. 能掌握一到两个使用bootstrap编辑出来的帮助网站admin,SBAdmin,ace Admin
  1. jdbc
  1. jdbc的一套使用方式,
  2. jdbc的原理,也就是说为什么使用jdbc驱动
  3. jdbc的一整套操作包括增删改查
  4. 还有一些需要理解为什么这么用,比如Statement和PreparedStatement,executeQeury ( )和executeUpdate ( ),结果集
  5. 数据库连接池,这是个重点,因为即使以后不使用jdbc,也会使用数据库连接池,推荐学习DBCP2和alibaba的Druid,原因是前者是使用最多的也是最稳定的,后者在以后使用ali的一套的时候,会很常的使用到,包括使用springBoot都是推荐使用Druid
  1. 数据库
  1. 推荐主要学习使用mysql,oracle在mysql的基础上做区分学习就可以了
  2. 基础数据库操作语句
  3. 存储过程,知道怎么实现即可
  4. 事务,这个是个重点,需要重点理解原理和使用场景
  5. 索引,视图什么的,知道是什么东西就好了,不会用到
  6. 还有一个重点,是数据库的查询语句,这个推荐查看我的另一篇文章,具体查看
  1. servlet和jsp
  1. 理解C/S架构和B/S架构的区别
  2. 明白服务器在整个生态体系中的地位
  3. 理解http和servlet的形成原因,以及基础操作和其中的各个方法
  4. 会手动配置servlet,其实从servlet3.0之后增添了注解的配置现在已经不手动配置了,但是还是要明白servlet是怎么实现的,以及他的地位
  5. 理解jsp的九大内置对象,理解四大域对象
  6. 理解session这个概念,以及四大域对象的作用范围
  7. EL表达式和jstl表达式,这个会使用很长时间,到以后使用别的模板,才会不用
  8. 理解过滤器和拦截器,会实现
  9. 文件上传下载的实现方式
  10. cookie和session的区别,cookie的实现
  11. 会解决各个系统之间会出现的乱码问题
  12. 请求转发和重定向的区别
    13.如何从前台获取数据,如何从后台向前台发送数据
  1. 一些小工具,建议在这个场景学习

git,这个是一个版本管理工具,和svn一样,但是实现模式不一样,建议重点学习git,svn了解即可
maven,这个是依赖管理工具,为了实现不同代码因为依赖的关系导致可移植性太差的问题
node,这个是前端的东西,但是还是建议了解一下,了解即可
npm,这个我的理解是一个下载工具,我所使用的都是他的下载功能,可以镜像到国内的cnpm,哪个公司的我忘记了,好像是阿里的,懒得查了
一些编辑器的操作,建议,eclipse和myeclipse,intellij IDEA,webstome,Visual studio Code,
markdown,这个是一个很简洁的文本编辑语言,我自己感觉用的很舒服

下面是框架的学习,需要对java基础部分有很高的理解,建议能给java基础学好之后再学习这些部分

  1. hibernate
  1. 其实这个框架现在使用的并不多了,但是有些原本的项目会涉及到,还有之后学习的过程中,会偶尔遇到这个框架中的一些比较好的技术,所以还是需要略微的学习一下
  2. 数据映射,这个理解一下原理,会配置就可以了
  3. 理解下面七个核心API
  1. Configuration。 2.SessionFactory(重要)。 3. Session注意这个和jsp中的session不是同一个。4.Transaction(事务对象) 嗯,还有三个我记不清了,这个不是重点,下一个
  1. hibernate缓存,一级二级,了解即可
  2. hibernate绑定session
  3. 会一整套hibernate的数据操作即可
  4. 我也是很久不用这个了,很多都记不太清了,但是我认为的重点在于hibernate使用的hql数据库语言,还有他的事务部分处理的很好,包括暂时没用到的缓存机制也是他的特色。这一部分真要学习,不要照我这个,我这个只是给个建议,因为我真的很久不用,记不清了
  1. mybatis
  1. 这是ssm中的m,做数据持久层操作,使用场景还是很多的,虽然在springBoot中被springData JPA取代,但是基础实现原理还是一样的
  2. 理解几个概念,mapper,sessionFactory,sqlSession
  3. 会配置mybatis
  4. 会做mapper的映射文件,参数的引用方式(四种)
  5. mapper映射文件中数据库的操作方式,各个标签的使用方式和场景,会写动态SQL语句
  6. 映射文件中对缓存的处理
  7. 理解sessionFactory在mybatis中所处的地位
  8. 网上有mybatis的中文文档mybatis
  1. springMVC
  1. ssm的一个s,是spring下的一个完整的Web层“解决方案”
  2. springMVC重点在于理解他的工作原理,这个是重点,这个是重点,这个是重点
  3. 会配置springMVC,这个是基础,重点理解配置的原理,这个比较繁琐,建议系统学习,包括视图解析器,servlet映射,上下文配置等等一系列,这个很多,也很繁琐(所以之后才会衍生出了springBoot)
  4. springMVC各个注解,及其含义,使用场景

@Controller,@RequestMapping,@ResponseBody,@RequestParam等等,还有一些注解涉及到springBoot和RestFul,这里先不说

  1. Controller,这个是springMVC的核心,首先理解Controller的地位,然后他的地址映射(也就是前端访问的路径),Model,ModelAndView,Map,Session,等这些可以向前端页面中传值的实现方式。springmvc的转发和重定向方式
    6.重点在于参数绑定,数据回显,文件上传等
  2. 拦截器的实现方式
  3. 还是那句话,重点理解原理,实现方式不会可以查,但是这个原理必须得掌握

13.spring

  1. 说实在的spring这个东西,我不是很敢写学习重点,一来是因为我也不知道什么是重点,二来我感觉都是重点,也都是难点,它其实没有什么技术上的东西,我的理解就是它就相当于一个中间件,它绑定了springMVC和mybatis,实现了解耦合,实现了AOP,它更偏向于我下面想说的设计模式,它的重点在于AOP(面向切面编程),IOC(控制反转),松耦合
  2. 我学习spring的历程有点不一样,因为当时是我自学的,我学到spring的时候,发现,我怎么都自己都看不明白这些东西,就算看明白了也不知道在哪用,就算知道在哪用,也不知道怎么用,所以我就索性不看spring,我直接做了ssh的整合,整合完了之后我就开始学习springMVC和mybatis,然后做ssm整合,也就是说这两个中间的一个s,spring我一直都没学,等ssm整合完了,我就回头看spring,才大约理解了这个东西到底想干什么,不过我的方式肯定不适合别人,所以下面我列举一下重点吧,具体怎么学,我也没有什么好的建议
  3. AOP,面向切面编程,这算是一种编程思想,是个重点,之后的项目中都会用到,而且算是一个高级的技能,建议学习,
  4. IOC控制反转,spring的特点,它的原理是将对象的创建交给外部容器,而不是直接进行创建,这个结果导致了,对象使用的减少,从而提升性能。这个还有一个叫做依赖注入的一般一起使用,依赖注入的特点是它可以给对象注入对象,属性或者关系,使用这种方式从而做到松耦合的特点。这又导出了松耦合的概念
  5. 松耦合,目的是减少代码的复杂程度(我的理解),以前我们松耦合总是使用接口new实现类的方式,也就是我们会说我们是面向接口编程,松耦合完事之后,可以大大提升我们代码的灵活性,恰好契合了java的设计思想(这就是我说的为什么spring我认为他是一个设计模式的问题)
  6. spring的六大模块,这个东西就是实战的概念了,只要紧紧切合这六大模块,就可以很方便的实现spring,这六大模块也切合一些其他的东西,


    spring

    放张图,看起来好理解一点,其实spring的实现部分就是这个图
    学spring,我认为,重点是学习它如何整合别的框架,它的设计思想,spring是一个大概念,我的理解是学习java历程分为两部分,spring之前,spring之后,所以建议兄弟们了解一下这个框架的作者Rod Johnson,他是我最崇拜的一个互联网大佬,spring这个大体系包括我们需要学习的很多东西,springMVC,springBoot,spring Security,spring Data,spring Cloud等等

注:可以传播,回报互联网;有纰漏和错误,欢迎留言。

你可能感兴趣的:(给兄弟们写的学习历程(一))