当前位置:首页 > 读后感 > JAVA学习路线图_
 

JAVA学习路线图_

发布时间:2019-06-24 03:44:40 影响了:

Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的 oop 特性:封装、继承、多态。此外还有泛型、反射的特性,很多框架的技术都依赖它,比如 Spring 核心的 Ioc 和 AOP,都用到了反射,而且 Java 自身的动态代理也是利用反射实现的。此外还有 Java 一些标准库也是非常常见,比如集合、I/O、并发,几乎在 Web 开发中无处不在,也是面试经常会被问到的,所以在自学 Java 后端之前,不妨先打好这些基础,另外还有 Java8 的一些新特性,也要重点关注,比如 Lambda 表达式、集合的 Stream 流操作、全新的 Date API 等等,关于新特性,我也写了几篇关于这方面的博客,请自行找吧,就不贴出来了。

关于书籍推荐,我是不建议初学者一开始就拿着「Java 编程思想」啃的,因为当初我就是那个当天下午决定自学 Java,晚上就抱着这本书啃的人,说实话,我当时真的不懂它在说啥,因为我没有一点的面向对象语言编程的基础,而这本书又写得太博大精深了,在当时的我来说,完全是天书,但是我认为它仍然是 Java 界的圣经,每读一次都有所收获。我在这里推荐你们一开始先看「Java 核心技术」,这本书讲得比较通俗易懂,初学者比较能接受。

关于视频推荐,我当初就是听某客的毕向东老师讲的 Java 基础教程(可以关注我的微信公众号获取),毕老师讲的实在是太生动有趣了,不知不觉把我带进 Java 的坑里无法自拔,有时候我会听他视频时笑出声来,也许是我那段自学阶段最有趣的时刻了。

关于 sql 方面:SQL 教程、MySQL 教程

我是了解了一些基础语法之后,就直接跟着视频的老师做一些表操作实战练习了,比如单表查询、多表查询等。我建议学 sql 切勿眼高手低,需多加练习,不要只看懂了就行,因为工作中写得一手简练的 sql 是非常重要的。在这里我说下我在项目一直秉承着 sql 语句是能避免多表查询就避免多表查询,能够分开多条语句就分开多条语句,因为这里涉及到多表查询性能和数据库扩展的问题。

关于 JDBC 方面:JDBC 教程、 JDBC 获取连接对象源码分析

你需要弄懂 JDBC API 的用法,其实它只是一组规范接口,所有数据库驱动只要实现了 JDBC,那么我们就可以通过标准的 API 调用相应的驱动,完全不用知道驱动是怎么实现的,这就是面向接口编程的好处。而且对于 JDBC 我是直接看视频去理解的,跟着视频做了一个基于 Apache Dbutils 工具做了一个具有事务性的小工具,我特意用思维导图总结了一下:


路线(1)

步骤一

java基础 ,也就是java se相关的内容 ,这期间捎带把面向对象编程的思想理解好。

步骤二

jsp、servlet、jdbc,等。

步骤三

接着学习企业级开发的相关框架 ,现在轻量级的流行 ssh框架(struts2+hibernate+spring),ejb3.0。

步骤四

数据结构 设计模式 关系型数据库MySQL Oracle SQLServer等jboos,tomcat等服务器。

路线(2)

第一阶段:
您将学习 JAVA 编程的基础部分,即 J2SE 部分,共分 2 门课程

J2SE JAVA 开发基础知识;

Eclipse 开发环境;

J2SE 5.0 API ;

多线程技术;

Socket 网络技术;

Regular Expression;

Java反射技术;

Properties技术;

聊天室系统

实战数据结构 数据结构实战训练;

数组、链表等常用数据结构实战;

实战链表开发

第二阶段:
您将学习 JAVA WEB 技术,共分 7 门课程

数据库技术 Oracle 基础管理;

SQL 语言;

PL/SQL 语言;

触发器、存储过程;

MySQL 简介;

SQLServer 简介;

选课系统

雇员管理系统

BBS 系统

JDBC技术 JDBC Connection;

Statement;

PreparedStatement;

CallableStatement;

ResultSet;

Scrollable RS;

Updatable RS;

RowSet and DataSource;

连接池技术;

在线商城类别管理模块

HTML & CSS

& JavaScript

网页技术 HTML 语言;

CSS 语言;

JavaScript 语言;

JS常用模版;

后台管理模版;

用户注册模块

用户管理模块

JSP&Servlet 技术 Servlet 技术;

JSP 技术;

Tag Library 技术;

Filter技术;

报表系统;

FileUploading;

Tomcat 服务器技术;

在线商城

统计报表模块

BBS 系统

SCM技术 CVS初步;

SVN简介;

Java Web 实战演练 综合运用所学知识;

HTML + CSS + JS;

JSP + Servlet +

JavaBean;

FileUploading;

分页技术;

数据校验;

MVC初步;

在线商城

XML + WebService技术 Apache Axis初步;

XML + XSL + DTD/Schema;

SOAP + WSDL + UDDI;

REST技术简介 在线商城增强

AJAX技术 AJAX技术基础;

AJAX技术框架;

AJAX技术调试技巧;

在线商城增强

第三阶段:
您将学习 J2EE 技术

名称 内容简介 涉及到的项目

流行Web框架简介 Struts / WebWork / Tapestry

JSF / Velocity / Freemarker

Hibernate / Ibatis SQLMap等简介

Struts and JSTL Struts应用开发基础;

MVC理论基础;

Struts TagLib;

JSTL基础;

Struts国际化支持;

Hibernate Hibernate应用开发基础;

ORM基础理论;

关系映射技术;

性能调优技术;

Spring Spring IoC技术;

Spring AOP技术;

Spring 与 Struts / Hibernate结合运用;

Spring 声明事务管理;

Log4J and JUnit技术 Logging API;

JUnit单元测试技术;

SSH项目实战 综合运用所学知识;

Spring + Struts + Hibernate;

CVS;

Log4J;

JUnit;

WEB OA 系统

UML UML技术;

UML分析技术;

UML设计技术;

UML与软件架构;

RationalRose / MagicDraw CRM系统

UML + SSH项目实战 综合运用UML + SSH;

Spring + Struts + Hibernate;

CRM基础理论;

CRM系统

EJB3.0 EJB3.0基础知识;

SessionBean;

EntityBean;

MetaData技术;

PersistenceAPI;

JBoss;

信用管理系统

项目实战 综合运用所学知识 信用管理系统

Linux技术 Linux操作系统基础;

Linux下配置Java开发环境;

Linux下开发Java程序。


路线(3)

一、前期准备

1.1 培养兴趣

兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;
每个月就有几万十几万甚至更多的进帐,凭空多出个"食利阶层"。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。

1.2 慎选程序设计语言

男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。

如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。

如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或.NET,甚至LAMP组合。每个领域要求的背景知识不一样。做应用软件需要对数据库等很熟悉。总之,你需要根据自己的特点来选择合适你的编程语言。

1.3 要脚踏实地,快餐式的学习不可取

1.4 多实践,快实践

1.5 多参考程序代码

1.6 加强英文阅读能力

对学习编程来说,不要求英语, 但不能一点不会。

1.7 万不得已才请教别人

笔者在Martix与Java论坛的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。

你是否在google中搜索了问题的解决办法?

你是否查看了Java API文档?

你是否查找过相关书籍?

你是否写代码测试过?

如果回答都是"是"的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。

1.8 多读好书

1.9 使用合适的工具

工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及。

二、 Java学习路线

 基础语法及Java原理

基础语法和Java原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。学习Java也是如此,必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余。参加SCJP(SUN公司认证的Java程序员)考试不失为一个好方法,原因之一是为了对得起你交的1200大洋考试费,你会更努力学习,原因之二是SCJP考试能够让你把基础打得很牢靠,它要求你跟JDK一样熟悉Java基础知识;
但是你千万不要认为考过了SCJP就有多了不起,就能够获得软件公司的青睐,就能够获取高薪,这样的想法也是很危险的。获得"真正"的SCJP只能证明你的基础还过得去,但离实际开发还有很长的一段路要走。

OO思想的领悟

掌握了基础语法和Java程序运行原理后,我们就可以用Java语言实现面向对象的思想了。面向对象,是一种方法学;是独立于语言之外的编程思想;是CBD基于组件开发的基础;属于强势技术之一。当以后因工作需要转到别的面向对象语言的时候,你会感到特别的熟悉亲切,学起来像喝凉水这么简单。

使用面向对象的思想进行开发的基本过程是:

●调查收集需求。

●建立用例模型。

●从用例模型中识别分析类及类与类之间的静态动态关系,从而建立分析模型。

●细化分析模型到设计模型。

●用具体的技术去实现。

●测试、部署、总结。

 基本API的学习

进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的"不需要重新发明轮子"。我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。那么这些类中究竟提供了哪些方法给我们使用?方法的参数个数及类型是?类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。他们只能提供文档给我们查看,Java DOC文档(参考文献4.4)就是这样的文档,它可以说是程序员与程序员交流的文档。

基本API指的是实现了一些底层功能的类,通用性较强的API,如字符串处理/输入输出等等。我们又把它成为类库。熟悉API的方法一是多查Java DOC文档(参考文献4.4),二是使用JBuilder/Eclipse等IDE的代码提示功能。

 特定API的学习

Java介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API。如果你做界面开发,那么你需要学习Swing/AWT/SWT等API;
如果你进行网络游戏开发,你需要深入了解网络API/多媒体API/2D3D等;
如果你做WEB开发,就需要熟悉Servlet等API啦。总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API。

 开发工具的用法

在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对Java技术本身的注意力。过了这一阶段你就可以开始熟悉IDE了。

程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。

从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。

Java开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;
而Eclipse、JBuilder占有的市场份额是最大的。JBuilder在近几年来一直是Java集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的Java IDE大战中,以其快速的版本更新击败IBM的Visual Age for Java等而成就一番伟业。IBM在Visual Age for Java上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓"柳暗花明又一村"。浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。

 学习软件工程

对小型项目而言,你可能认为软件工程没太大的必要。随着项目的复杂性越来越高,软件工程的必要性才会体现出来。参见"软件开发学习路线"小节。

勤查API文档

当程序员编写好某些类,觉得很有成就感,想把它贡献给各位同行。这时候你要使用"Javadoc"工具(包含在JDK中)生成标准的Java DOC文档,供同行使用。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3