搬运一下大佬的学习路线
下面进入正题部分,以web方向为基础的java学习路线:
(由于java真正的知识范围很广,这里只罗列出我个人觉得重要的,至少是web中用的上的东西。)
- 一.J2SE阶段
·java基础【变量、运算符、标识符等】
·面向对象【封装、继承、多态】;
·API;
·集合框架【List、Map】;
·泛型;
·IO流;
·多线程;
·JDBC;
·正则表达式;
·高级特性【枚举、装箱拆箱、反射、断言、注解等】
在j2se阶段,重在熟练掌握if语句、for循环的运用,接口、继承、构造方法的理解和使用,学会查API文档。这个阶段的难点在于集合、泛型、jdbc等内容,需要了解其基本的用法和意义。
- 二.数据库阶段
·sql server;
·Mysql;
·Oracle;
数据库阶段可以说是从只会编一些没什么实际作用的死程序,到能够开发小型项目的转折点,以上三种数据库至少掌握其中一种,个人建议从Mysql入手。当然数据库的种类不止这三个,这里所列的是行内使用最多的数据库。
- 三.Web前端基础
·html;
·CSS ;
·Javascript(JS);
·DOM;
·ajax;
·jQuery;
做后端的人,前端的基础也是必不可少的。如果以后想做前端的话,js是关键,作为风口浪尖上的热门语言,js拥有一大批拥护者认为它将是十年后的大趋势,然而也有一些人认为js的灵活性又造成了其过于复杂的代码和混乱的逻辑,在开发中容易出错且难以调试。不过html和js的基础用法对于任何web开发人员来说都是尤为重要的。
- 四.Web后端基础
·JSP;
·JavaBean;
·Servlet;
·过滤器、监听器;
·EL表达式语言;
·jsp自定义标签;
·JSTL标准标签库;
·MVC开发模式(JSP+Servlet+JavaBean);
后端基础个人建议以Servlet为中心来学习,因为servlet和java有着更紧密的联系,而jsp又是sevlet的简化抽离,就算是MVC的Model2开发模式(jsp+servlet+javabean),servlet也是作为核心的控制层,它更是开源框架的技术基础。
- 五.开源框架
·Struts、
·Hibernate、
·Spring;
【SSH整合框架】
·springMVC;
·Mybatis
·Ibatis;
【SSM、SSI整合框架】
首个mvc模式的开源框架Struts以及后来的Struts2推出至今已经盛行了14年了,随着Spring等框架的推出和发展,使得Struts2由于大量的配置文件和独家标签库而显得相对笨重许多。这些开源框架,到底哪个好用,哪个会被取代之类的问题都不重要,因为他们都是开发的工具,作为工具来说,被更好用的工具替代是必然的,只是时间问题,所以在学习的过程中,一定要掌握工具的用法熟悉实现流程就可以了,不要死磕其实现原理。不过如果你想成为技术大牛,或者想自己也能开发一套框架出来用就另当别论了。
- 六.开发工具
初级开发工具:(这里需要在初学阶段掌握,为了模块分类清晰,放在此处)
·JDK、Tomcat;
·eclipse/Myeclipse;
·Navicat;
高级开发工具:
·Maven项目管理工具;
·Git分布式版本控制系统;
·ANT代码生成工具;
·SVN/CVS/VSS版本控制工具;
这里罗列的是一些用户量多、影响范围广的几种工具,看公司或个人的喜好来选择适合自己的开发工具。
- 七.领域拓展
·算法;
·并发编程;
·设计模式;
·敏捷开发;
·需求分析;
·测试;
·运维;
·数据挖掘;
·网络安全;
在这里你可以选择你要从事的更加细致专业的开发任务,或者说选择做软件开发过程中的哪一个模块,技术要求更加的精益求精。
- 八.技术前沿
(处于该阶段的程序员都有可能成为引领互联网时代前进的业界精英。下面所列基本是各大技术论坛中讨论的热门技术话题,仅供参考)
·Node.js;
·AngularJS;
·EJB;
·集群;
·负载均衡;
·分布式架构;
·搜索引擎;
·规则引擎;
·事务JTA;
·JNDI;
·面向服务架构;
·面向云架构;
·NoSQL-MongoDB;
·Hadoop大数据;
·Docker云计算;
.
·机器学习;
·人工智能;
·虚拟现实;