java学习步骤

490 阅读7分钟

第一阶段

  • Java简介
    • 了解什么是Java;
    • 代码语法基本格式;输出表达式。
    • 了解Java大致的编译以及执行过程
  • Java语言基础、循环、数组 ; 了解类和对象
    • 掌握Java的基本数据类型和引用数据类型有哪些;
    • 掌握强制数据类型转换和自动类型提升规则;
    • 常量如何声明及赋值;循环的语法及作用;
    • 数组的声明及定义;
    • 掌握类的概念以及什么是对象。
  • OOP封装、继承、多态
    • 面向对象的三大特征,本节内容非常重要也相对来说较为难以理解,一定要耐下心来好好理解。
  • java.util.*包下的常用类
    • util包下的Collection、Comparator、Iterator、List、Map、Set接口都很重要,着重看一下他们的实现类,如:ArrayList、LinkedList、HashSet、HashMap、Hashtable、TreeMap、TreeSet等。
  • java.lang.*包下的常用类
    • lang包下的基本数据类型对应的包装类(Byte、Short、Integer、Long、Double、Float、Character、Boolean);
    • 字符串相关的类String、StringBuffer、StringBuilder。
  • IO流操作,多线程及Socket
    • 掌握IO读写流相关的类,了解字节流,字符流和字符流缓冲区;
    • 掌握线程的概念,多线程的创建、启动方式,锁和同步的概念及运用;
    • 掌握Socket通信的概念,如何声明客户端服务端,如何完成双端数据通信。
  • 数据库基础(Mysql)及JDBC
    • 掌握数据库的基本概念,Mysql的安装、启动与停止
    • Mysql数据库客户端的安装与使用
    • JDBC的概念,在Java中使用Mysql驱动包连接Mysql

通过第一阶段的学习掌握Java语法和常用类,数据库入门技术相关知识。让自己对于存储,IO,这些有个大概的了解。这时候,暂时不需要花大量的精力以及篇幅去学习多线程和Socket,当然这里不是说他们不重要,而是对于现阶段的你,或许很难非常清晰的明白以及了解他们具体的作用。这里第一节忽略掉了Swing,Swing章节的内容可以不学,因为在实际的工作中基本上没有用武之地。使用第一阶段的技术完成一个小型的系统,找一个自己做容易理解的系统练练手,比如超市管理系统、成绩管理系统等等这类需求简单却能讲整章内容结合起来使用的项目。当然这个时候可能会有人觉得没有图形界面没法完成系统操作。实际上我们可以通过Console的输入输出来做系统界面。

新手在第一阶段的学习时,是最难熬的,因为这个时候需要背的东西特别多,且不再像看小说一样,什么东西都能看明白。路就变成了前面熟悉,左右陌生。这个时候人的求知欲作祟,往往会把自己带着偏移了方向,因为我们自己也不知道这样走对不对。渐而远之,也就慢慢放弃了。而这样的放弃,是最不值得的。所以,学习Java一定要按照某一个大纲,一直往下不要往其他地方偏,先走完一遍之后,再回头慢慢捡。

第二阶段

  • Servlet
    • 掌握Java中的Web项目目录结构;
    • 掌握Java Web项目的重要中间件Tomcat;
    • 掌握Servlet中的Request和Response;
    • 掌握Servlet的基本运行过程。
    • 掌握Servlet的声明周期
  • 动态网页技术 -JSP在Java Web中的角色;
    • JSP的编码规范,以及JSPServlet;
    • JSP显示乱码的解决办法等。
  • JSP数据交互
    • JSP中如何编写Java代码,如何使用Java中的类;
    • JSP中的参数传递。
  • 状态管理Session和Cookie
    • 掌握Session的作用及作用域;
    • 掌握Cookie的作用及作用域;
    • 掌握Session及Cookie的区别,存储位置,声明周期等;
    • 掌握Session及Cookie分别在JSP和Cookie中的使用
  • JSTL和EL表达式
    • 使用EL表达式输出page、request、session、application作用域中的值
    • 使用JSTL来做逻辑判断或循环控制
  • JNDI数据库连接池
    • JNDI的作用以及如何使用JNDI连接数据库
  • 分页和文件上传
    • 掌握在JSP中如何使数据达到分页的目的;
    • 掌握在JSP表单中如何上传文件,Servlet如何处理上传请求(Commons-Fileupload、Commons-IO)。
  • Filter、Listener;
    • 掌握Filter和Listener
    • 掌握Session过滤器和编码过滤器

重点学习Servlet、Filter、Listener.学习完第二阶段的内容之后,就可以进行B/S版本的系统开发了。这个时候我们可以挑选个稍微复杂点儿的项目来练练手,能找到商业项目练手的那是最好不过的, 没有的话,就写写学生管理系统,档案管理系统,人事管理系统之类的练练手吧。

第三阶段

  • Struts2应用通过学习Struts,了解什么是MVC;
    • 掌握Struts是如何完成界面控制的;
    • 掌握Struts的参数接收及传递;掌握Struts的拦截器;
    • 掌握Struts的OGNL和标签使用。
  • Hibernate应用
    • 了解什么是ORM,ORM在项目中的作用及优势;
    • Hibernate中的hbm与实体类之间的关系;
    • 什么是HQL,什么是关系映射(一对一,多对一,多对多);
    • 了解Hibernate的事务、懒加载和缓存。
  • Spring应用
    • Spring容器的作用;
    • Spring的AOP和IOC;
    • Spring托管Hibernate事务;
    • Spring整合Struts2和Hibernate。

通过第三阶段了解目前Java领域比较经典的三大框架,了解他们的大概功能,并加以使用。通过使用SSH开发一个简易CRM之类的项目来加强了解,理清楚框架的大致原理,搞清楚这三个框架之间的作用域以及角色在第三阶段的内容学习完了之后,就应该对整个系统研发有个大概的印象,实际上这个时候,独立完成一个系统之后,再回过头来仔细思考下Servlet+JDBC+JSP与SSH实现项目的相同点及区别。这样会让你更加的有收获。

第4阶段

  • SpringMVC的应用
    • SpringMVC中的控制器注解、请求注解、参数注解、响应注解等;
    • SpringMVC中的静态资源处理;
    • SpringMVC的容器
  • Mybatis的应用
    • Mybatis的Mapping与实体映射;
    • Mybatis中的SQL语句写法;
    • Mybatis的缓 存。
  • Spring+SpringMVC+Mybatis整合
    • SSM的整合使用;
    • 回顾SSH与SSM的区别。
  • Redis+Mysql的查询优化设计
    • Redis的安装与连接;
    • Redis常用命令;
    • Redis存储机制;
    • Redis的持久化机制。
  • FastDFS的使用
    • 什么是分布式文件系统;
    • 分布式文件系统解决的问题是什么;
    • FastDFS的使用
  • Linux操作系统
    • Linux中的常用命令;
    • Linux下的JDK、tomcat安装;
    • Linux下的项目部署方式。
  • Nginx的使用
    • Nginx的作用;
    • 反向代理和正向代理分别是什么;
    • Nginx实现tomcat代理。
  • Mysql集群方案
    • Mysql集群的常用方案有哪些;
    • Mycat中间件的概念
    • Mycat的使用准则;
    • 了解数据库的主从复制;
    • 了解数据库的主备切换;
    • 为什么需要主从和主备。
  • Solr入门
    • 什么是全文检索;
    • Solr做搜索的优势是什么;
    • Lucene、ElasticSearch、Solr之间的关系;
    • Solr的安装与使用。
  • JVM
    • 回顾所有所学习到的知识,联系所有框架中的自定义容器、上下文来理解变量及对象的存储
    • 理解垃圾回收是怎么一回事
    • 理解集中回收算法
    • 完全理解整个堆栈模型

通过第四个阶段了解更简单易用的SpringMVC,应用和存储集群相关的概念及实现方案。让自己具备一个设计高可用,可扩展的项目框架视野。这样对于后面继续专研SpringCloud/Dubbo、zookeeper这些RPC相关的框架有很大的好处。 第四阶段的内容更加偏向于互联网技术栈,通过这一节的内容能够脱离出基本的增删改查,了解出了增删查改之后,需要了解的集群、系统性能优化、外部缓存服务器使用、集群负载等概念。这些思维对于后面的提高以及学习会很有好处。