Java学习路线

如题所述

根据个人实际的经历,结合多种书籍,特别整理出了下面的java学习路线:

一、Java SE部分

1、java基础:基础语法;面向对象(重点);集合框架(重点);常见类库API;

2、java界面编程:AWT;事件机制;Swing;

3、java高级知识:Annotation;IO和NIO、AIO;多线程、线程池;阻塞、非阻塞、异步网络通信;反射、动态代理;

二、JDBC编程

4、SQL基础:基础SQL语句;基本查询;多表查询;子查询;结果集的交、并、差运算;

5、JDBC基础:常见数据库用法;JDBC操作常见数据库;RowSet与离线结果集;数据库连接池;事务管理、批处理;

6、JDBC进阶:存储过程、函数;触发器;理解JCBC的不足;掌握ORM工具优势和设计;

三、DHTML编程

7、HTML基础:基本HTML标签;常见表单标签;DIV+CSS布局;

8、JavaScript知识:javascript基本语法;javascript基本对象特征;Json语法;深刻理解javascript的动态特征;

9、Dom和事件机制:DOM操作、编程;常见浏览器事件机制;掌握用户交互技巧;

四、XML编程

10、XML基础:XML基础规则;DTD和SCheme;XML和样式单;

11、XML进阶:DOM、SAX和JAXP;dom4j、JDOM等工具;XQuery和XQJ;基于XML的数据交换;

12、Web Service:JAX_WS2、SAAJ规范;WSDL和SOAP协议;CXF框架、拦截器;CXF整合Spring;

五、Java Web编程

13、Web编程基础:Tomcat服务器;Jsp语法、EL、内置对象;Servlet API;Servlet 3.0注解;Listener和Filter;

14、Web编程进阶:自定义标签库;MVC和DAO、Servlet、标签的作用;JSTL、DisplayTag等常见标签库用法;

15、Web编程原理:请求/响应、架构;Http协议;深刻理解Jsp运行原理;掌握Web容器底层的线程池、socket通信、调用Servlet的命令模式;

六、Ajax编程:

16、Ajax编程:XML HttpRequest和异步请求;发送请求和处理响应;常见Ajax库(Prototype、Jquery、ExtJs、DWR)用法;结合Http协议、异步请求深入研究ajax库的设计;

七、Android开发

17、Android基础:Android开发调试环境;Android应用结构;界面组件与界面编程;资源管理;四大组件;

18、Android中级:文件IO和SQLite;图形、图像与动画;音频、视频的录制与播放;传感器编程;GPS应用;

19、Android高级:网络编程与Web Service;OpenGL_ES 3D开发;整合Google服务;使用NDK开发;java和c相互调试;

八、轻量级Java EE

17、Struts2:MVC与struts体系;Action和Result;国际化和标签库;文件上传、下载;类型转换和输入检验;拦截器与插件开发;

18、Hibernate:ORM与持久化映射;关系映射、继承映射;延迟加载、性能调优;HQL查询、条件查询、SQL查询;二级缓存和查询缓存;

19、Spring:IoC与Bean配置、管理;Bean生命周期;SP、EL;AOP与事务权限控制;S2SH整合开发;Spring整合Jpa;

九、经典Java EE

20、JSF<选学>:MVC与JSF设计理念;托管Bean与导航模型;JSF流程与事件机制;JSF标签库;类型转换与输入检验;

21、EJB及相关技术:JNPI与RMI;会话Bean及其生命周期;IoC与EJB拦截器;JMS与MDB;会话Bean与Web Service;

22、JPA:ORM框架与JPA规范;JPA注解与常用API;JTA事务与事务管理;JPQL查询;EJB、JPA整合;

十、Java 拓展、进阶:

23、Java EE实践与架构:Ant+Ivy或Maven;SVN、CVS;深刻理解10种以上设计模式;掌握各种Java EE架构及各自优势;

24、Workflow:Workflow规范及功能;JBPM等workflow框架;多次重构、反复思考;大型项目经验;

25、Java EE进阶:掌握各MVC框架运行原理、能开发类似框架;掌握Spring、HiveMind、AspectJ等框架原理、能开发类似工具;掌握Hibernate、iBatis等框架原理,能开发类似工具;深入研究EJB机制、大致了解应用服务器的实现;

希望对您有所帮助!~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-13
首先先搞懂JavaSE的部分,Swing和swt部分就可以少看或不看,因为现在用的比较少。重点是看懂Java中的面向对象、集合框架、JDBC、异常、IO、线程和网络编程。JavaSE搞定后再学习Servlet、JSP,然后才是经典的Struts2、Hibernate和Spring,学习框架时重点理解框架的运行原理,甚至可以尝试自己写个轻量级的框架。理解运行原理的最好方法就是阅读源代码,还是要感谢Java中的开源项目。这期间还要多找各种大小的项目去完成,不一定要大,但是要精致,功能要完整,这样可以练习所学知识,并且可以在做项目中发现自己的知识体系中不足的地方。关于看视频,我不推荐,很多同学一天到晚就知道看视频,殊不知,编程真理在于逗练习,练习,不停练习地!

再补充下:当学习Java的期间,会碰到各种各样的异常,请积累这些异常信息,以及如何出现的异常和如何处理的,因为java中常见的异常就那么几种,积累的多了,处理问题的能力就提高,这样水平会提高的很快!

SpringMVC 这几年的占有率迅速的提高,可能之后会取代 Struts2,但是无论怎么变化,这些还都是 MVC 模式,理解了这个模式,上手任何的 MVC框架都应该很快。
企业需要的变化还体现在大数据方面,因为 Hadoop 的流行,Java 的应用场景又多了一个。所以,不喜欢 web 的可以考虑学习大数据方面的知识。
另一个流行的场景自然就是 Android,学习 Android 依然需要你有 JavaSE 的底子+HTTP 协议的理解,再配合上 Linux 的知识就可以开始了。

再说下找项目的问题,初学者可能会碰到不知道做什么的问题,其实最开始大家都是从模仿开始的,例如你学会了 jsp+Servlet,那就可以模仿一个 v2ex 这样的论坛出来。学会了 SpringMVC,那就试着将论坛的代码重构,提供restful接口供客户端访问(Android、IOS 、web 等)。论坛做的没难度了,那就模仿一个团购网站,依然是不一定要做全部的功能,但是做出的功能要稳定,要精致。或者一个微信公众平台的开发都是不错的项目。

初学者看源代码有的人推荐看 Struts2、spring 的,但是我相信10个初学者9个看不懂,那就从简单的开始,例如 Apache 的 Commons 库,例如 lang、dbutils、io 等,这些都是非常不错的代码,类的数量不多而且质量也不错,这些看懂之后,你的基础水平增长的不是一点点。

再次提醒初学者,学习编程没有你想的那么简单,必须要多练习,多思考,最主要的是你对这个有兴趣。现在不少网站和媒体都宣传1个月学会前端、3个月入职 BAT 的口号,那也就是口号而已,别太认真。这条路没有捷径,写你的代码就是了!

推荐几本书:
Java基础部分
JAVA核心技术(卷1) (豆瓣)
Head First Java (豆瓣)
重构 (豆瓣)
Effective java 中文版(第2版) (豆瓣)
Head First 设计模式(中文版) (豆瓣)
严重不推荐《Java编程思想》,这句话一出,估计很多人会喷死我,因为这本书被很多人奉为Java中的圣经级的书籍。但是我真的想问问这些人,你们真的看过这本书吗看真的适合初学者去看吗看多少初学者就是看了这本书做到了从入门到放弃的过程。所以,我的观点是,有一定Java开发经验了再看这圣经。

数据库部分
MySQL必知必会 (豆瓣)
JSP和Servlet部分
Head First Servlets & JSP(中文版) (豆瓣)
HTTP权威指南 (豆瓣)
图解HTTP (豆瓣)

框架部分
Spring实战(第3版) (豆瓣)
Spring技术内幕 (豆瓣)
Java Persistence with MyBatis 3 (豆瓣)
深入浅出Hibernate (豆瓣) 虽然老,但是经典
Struts 2实战 (豆瓣)
Android
Android编程权威指南(第2版) (豆瓣)
其他
Redis实战 (豆瓣)
Redis设计与实现 (豆瓣)
Redis入门指南 (豆瓣)
来源于知乎本回答被网友采纳
第2个回答  2020-12-01
java的学习内容很多,涵盖较多方面,这里大致分为几个阶段提供给你参考。
一、预科学习:
HTML5:HTML5标签入门、HTML5表格、表单
CSS3:CSS3选择器和简单属性、CSS3定位和布局、CSS3复杂选择器和高级属性
数据库:mysql数据库安装和数据操作、约束和简单查询、复杂查询、数据库设计、oracle的安装与数据操作、oracle与mysql的对比学习

二、JavaSE
Java语言基础、程序逻辑:环境配置和第一个语言程序-HelloWorld 变量运算符 条件和循环 方法和数组
Java面向对象:面向对象入门 面向对象应用_管理系统类 Java常用类、String相关、算法相关 面向对象深入(重载、this、static )继承(重写、super、初始化顺序) 多态(抽象类和接口、final、克隆和比较接口 设计模式、对象和类的生命周期)
API:异常、日志 集合 集合工具类和泛型 IO JDBC基础线程 网络编程 反射 NIO Junit
Java面向对象思想:设计模式 面向对象原则
Java底层理论:集合底层 性能监控工具 反编 JUC

三、Java web
web基础:TOMCAT/WEB程序结构/HTTP协议 Servlet基础入门、servlet作用域(cookie、session、ServletContext)、 Cookie和Session 、Servlet的交互/JSP原理及运用、 JavaBean/EL/JSTL/MVC思想 、JSP+Servlet+JDBC综合练习、Session购物车案例/验证码/防止表单重复提交、监听器过滤器
第三方工具包:连接池、事务、分页、文件上传下载、Dom4j/Log4j/Log back
JavaScript和jQuery框架技术:JS入门和DOM基础 、DOM模型深入 、jQ基础、 jQ操作DOM
MVC动态Web开发技术:自定义MVC框架、DAO框架、前端框架(layUI)
Web开发高级运用:tomcat server服务器配置 、nginx使用、 jetty配置
网络编程:网络原理、HTTP协议基础、Linux操作系统、云服务搭建

四、SSM框架
Spring框架、SpringMVC框架、MyBatis框架:mybatis入门、 配置文件详解和动态sql的使用、 mybatis管理关系映射和延迟加载、 查询缓存和逆向工程 、Spring入门和集成、myBatis SpringMVC入门 、SSM集成、 Spring配置详解 、Spring AOP、 Spring事务配置 、SpringMVC高级功能 、SpringMVC原理

五、前沿技术
高可用、高并发、高扩展:Spring Boot 、缓存 、分布式 、全文索引、 服务中间件、 myCat、 云服务 、人脸识别 、语言识别 、JVM底层+优化

希望能够帮到你!!!
第3个回答  2020-06-30
Java学习热度一直不减,无论有多少后起之秀,其地位一直是无法撼动!学习java之前,重要的其实不是技术,而是心态,先将自己的心态调整好,后期的学习你会更加轻松一些。
心态调整好了,学习Java就会变得相当轻松,入门也非常之快。但是入门并不等于目的,如果想要在这个行业顺利找到满意的工作,站住脚跟,你需要更加深入的理解、学习。然而,这对于零基础者来说将会更难,只有专业的指导和引领,才能更好的踏入Java开发的大门,可以先根据这套学习路线图大体了解一下自己需要学习的技术,然后开始翻书籍和教程,这个过程是必不可少的。
一、java学习路线图
阶段一是 java基础,通过对基础阶段的学习,可以清晰了解JavaEE开发工程师的定位及发展规划,同时也要在心里默默做下接下来迎战的心理准备。
阶段二是 javaWeb,是进阶阶段,掌握Java的基本语法,数据类型及各种运算符,开始可以写一些运算相关的程序。
阶段三是 java框架,框架是程序中另一种存储数据的方式,比直接使用数组来存储更加的灵活,在项目中应用十分广泛。
阶段四是 java+云数据,亿级并发架构演进、Linux基础、搭建tomcat环境以及大数据开发云计算等高级Java教程,是Java技术的高端知识。本回答被网友采纳
第4个回答  2020-11-07

简单粗暴直接上

一、JavaSE基础阶段

    面向对象编程(基础)

    面向对象编程(进阶)

    异常机制

    Java常用类

    数据结构和算法

    集合(容器)

    IO流

    多线程

    网络编程

    集合提升训练

    多线程提升训练

二、数据库阶段

    MySQL基础

    MySQL 查询语句

    数据库对象

    JDBC

    反射和注解

    数据库建模和UML建模

    设计模式

三、WEB前端

    JavaScript

    jQuery

    BootStrap

    Vue

四、JavaEE阶段 (核心阶段)

    HTTP/Tomcat

    MVC 架构

    Servlet

    JSP

    EL+JSTL+过滤器+监听器

    Ajax和JSON

    分页和文件上传/下载

五、JavaEE阶段(高级框架)

    Spring 5.2.2

    SpringMVC 5.2.2

    RBAC

    EasyUI 1.7.0

    支付/短信验证

六、框架强化

    Linux - CentOS 8

    Maven

    Logback

    Quartz

    Spring Boot 2.2.2

    Shiro

    Swagger

    Git/GitEE

    MyBatis

七、分布式架构

    Zookeeper

    RPC

    Dubbo

    Redis

    Solr

    RabbitMQ

    FastDFS

    Nginx

    Spring Security

    Spring Session

    MyBatis Generator

    Mycat

八、微服务阶段

    ElasticSearch

    MongoDB

    Spring Cloud Netflix Eureka

    Spring Cloud Netflix Ribbon

    Spring Cloud OpenFeign

    Spring Cloud Netflix Hystrix

    Spring Cloud Config

    Spring Cloud Gateway

    Docker

    K8S

    LCN

相似回答