从学习Java开发到现在虽然也已经快三年了,但是要说到分享一下经验实在是不敢当。权当是对自己的一个总结吧,希望大家不吝指教,互相交流。

照旧,还是现来整理一下我学习Java的一个路线图吧,然后按照这个路线图来谈谈我的一些感受。

一、Java核心

这是学习Java的基础,掌握程度的深浅甚至直接影响后面的整个学习进程。Java的核心主要包括几个部分:

1、初级的有语法基础、面向对象思想。

学习任何一门语言语法都是必须的,因为Java的接近自然语言,也是一种相对比较容易学的语言。同时面向对象编程更是其核心思想,要理解其实只要记住一句话就行了,那就是:一切皆是对象。

2、中级的IO流、多线程、反射及注解等。

IO流程、多线程等是相对比较高级一点的了,通过学习我们会发现这些都很有用而且很有趣。例如我们可以读取一个Excel文件、将一个文件分离,做一个时钟、使用多个线程发送邮件等等很多有意思的事。另外反射及注解更是后面流行框架SSH等的基础,在使用中你便会慢慢感受到它的无穷魅力。

3、高级一点的就是设计模式和框架之类了。

要学习好一门语言,仅仅会使用还是不够的,我们不仅要深入研究其原理,而且还要找到其一些共性的东西,从而减少反复的劳动,让代码可重用、更可靠且更容易被别人理解。

二、前端Web

现在来说Java最流行的应用还是Web开发。那么作为Web开发,对于前台的知识的学习也是必须的,当然并不是一定要按照前端工程师的标准去要求。但是一些基础的知识也是必须要掌握的,毕竟Web应用是前台和后台的一个交互的过程。像HTML、CSS、Javascript等都是基础的知识,另外作为开发人员对目前最流行的Javascript框架Jquery更是必学不可的。

三、数据库

有人说,所有的应用无非就是数据的输入、处理到输出的过程。期间同时可能还会涉及到数据的存储问题。对于结构化的数据,我们常用的还是像Oracle、Mysql和PostgreSQL之类的关系型数据库。同时针对数据库编程还是PL/SQL需要学习。使用Java访问数据库的话还有JDBC。那么对于非结构化的数据以及大数据该如何处理呢?其实这里也已经有了非常成熟的解决方案了,那便是Hadoop。就Hadoop而言他并不是一种思想,更多是一个实现了Mapreduce模式的框架。

四、J2EE

好了,前面这么多准备的工作。下面我们进入正题。作为Java开发,CoreJava是核心,而作为JavaWeb开发,我认为Servlet才是核心。Servlet是服务器端的Java应用程序,但是与普通的Java应用程序不同的是,它是由web服务器来加载启动,即我们常说的Servlet,如Tomcat便是servlet容器。另外谈到J2EE开发,这里有一个重要的模型不得不提一下,很多人其实已经想到了,那便是MVC(模型-视图-控制器)模型。在传统的web开发中,往往是JavaBean充当模型、JSP做视图而Servlet作为控制器。

五、框架

说到框架,其实已经提到了著名的MVC模型,SSH(Struts+Spring+Hibernate)就是一个非常好的实现。对于每一个框架的作用,我想就不用多说了,毕竟这里并不是想写一本教程。另外还有工作流开发的JBPM,搜索引擎Lucence及使系统对外提供接口的webservice应用组件等都是应该要掌握的。

六、服务器

关于服务器,像tomcat、jboss、weblogic及websphere等便不提了,因为太普遍了。这里要说的是Nginx,

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器。其以占有内存少,并发能力强而著称,连新浪、网易、 腾讯这类知名企业也在使用,所以还有什么理由不去学它呢?

七、工具

这里主要介绍几个开发辅助工具。如日志工具Log4j、测试工具Junit、版本管理工具SVN还有项目管理maven等。

另外还有第三方插件Ectable。

八、项目示例

Springside是以Spring框架为核心的J2EE应用参考示例,是JavaEE中的比较主流的技术选型及最佳实践的总结与演示,非常值得一看。把它看透了,J2EE就差不多了甚至是比较厉害的了。

九、话外话

其实说到底,对于技术的学习,有一个规则是通用的,那便是实践。把学习到的东西马上用起来做出一个示例来,我认为是一种比较好的学习方法。首先它是对零散知识的一个自然总结,另外通过一些小示例的实践,可以增加学习的兴趣。而且可以通过示例,深入学习其实现的原理,加深掌握的程度且能更快的应用到实际开发中,提高工作效率。

我的JavaEE学习路线图的更多相关文章

  1. JavaEE学习路线图

    http://www.cnblogs.com/gaoming7122/archive/2012/11/20/2778308.html

  2. 一份Java学习路线图

    Java学习路线图 本文会持续更新,敬请关注.下划线的文字会在这个博客继续更新. 回顾自己的Java学习经历,从学校的课堂到现在每天的项目开发,一份路线路线图浮出来. 其中有未做好的地方,也有自我感觉 ...

  3. Android开发最佳学习路线图

          为了帮助大家更好的学习Android开发的相关知识,尚观4G智能操作系统研究室(www.up4g.com)为大家制作下面学习路线图:希望能帮助到广大的android爱好者. 在開始之前我们 ...

  4. Android开发学习路线图

    Android开发学习方法: Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大.因此,一个好的学习方法对我们学习Android开发很重要. 在此建议, ...

  5. Hadoop学习路线图

    Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括, ...

  6. SAP ABAP学习路线图--标准教程

    SAP ABAP学习路线图--标准教程 摘自:http://www.cnblogs.com/clsoho/archive/2010/07/05/1771400.html

  7. iOS学习路线图

    一.iOS学习路线图   二.iOS学习路线图--视频篇       阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天       学习后目标:    ...

  8. Java学习路线图,专为新手定制的Java学习计划建议

    怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:    首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...

  9. Node.JS 学习路线图

    转载自:http://www.admin10000.com/document/4624.html 从零开始nodejs系列文章, 将介绍如何利Javascript做为服务端脚本,通过Nodejs框架w ...

随机推荐

  1. git中的版本库,暂存区和工作区

  2. iOS 单元测试之XCTest详解(一)

    iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...

  3. OpenCV成长之路(3):模仿PhotoShop中魔术棒工具

    本文的主题实际上是图像的颜色空间的转换,借助一个颜色选取程序来说明OpenCV中颜色转换函数的用法以及一些注意事项. 一.几种常见的颜色空间: RGB颜色空间:RGB采用加法混色法,因为它是描述各种“ ...

  4. (原)android中的动画(二)

    帧动画的使用需要在xml文件中指定每一帧所对应的图片 animation-list写法如下: <?xml version="1.0" encoding="utf-8 ...

  5. ccs3中icon转换为字体的方法

    小图标转换为字体有几大优点 文件小,一般50k以内 避免了加载多个icons,减少了加载次数,有利于页面优化. 兼容性很好,可以随便放大缩小,都能正常显示. 维护起来也很简单,只用找到这个字体文件(比 ...

  6. Python自动化之线程进阶篇(二)

    queue队列 class queue.Queue(maxsize=0) #先入先出 class queue.LifoQueue(maxsize=0) #后入先出 class queue.Priori ...

  7. MySQL 编程的6个重要的技巧

    一.每一行命令都是用分号(;)作为结束 对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:   二. ...

  8. Git引用

    原文: http://gitbook.liuhui998.com/7_3.html git中,分支(branch), 远程跟踪分支(remote-tracking branch)以及标签(tag)都是 ...

  9. java导出生成word

    最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的 ...

  10. VS中计算程序运行时间

    VS中计算程序运行的时间   http://bbs.csdn.net/topics/39068881 有时候在设计程序完了之后需要计算程序运行的时间. 这时候可以使用Windows的库函数 GetIi ...