从最初JAVA小白至今已有几载,总想对JAVA学习总结出些许经验来,趁着有空就写吧,权当对自己总结,谈不上经验之谈,还望大家可以互相交流(自设一个交流小群:457036818,有兴趣可以交流一下),现在就按照我学习JAVA路线图来谈谈我一些小感受。
一、Java核心
Java的核心主要包括几个部分:
1、初级的有语法基础、面向对象思想。
学习任何一门语言语法都是必要的,因为Java比较接近自然语言,换句话来说是相对比较容易学的一门语言。同时面向编程更是其核心的思想,在学习当中你要理解并且记住这么一句话,那就是:一切皆是对象。
2、中级的IO流、多线程、反射及注解等。
IO流程、多线程等是相对比较高级一点的了,通过学习我们会发现其实这些都是非常有用且非常有趣。比如会所我们可以读取一个Excel文件、将一个文件分离,做一个时钟、使用多个线程发送邮件等等很多有意思的事。另外反射及注解更是后面流行框架SSH等的基础,在使用中你会慢慢体会到它的无穷魅力。
3、高级一点的就是设计模式和框架之类了。
要学习好一门语言,单纯会使用是远远不够的,我们不仅要深入研究其原理,而且还要找到其他一些共性的东西,从而减少重复劳动,让代码可重用、更可靠且更容易被别人理解。
二、前端Web
相对目前来说Java最流行的应用大致还是Web开发。那么作为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就差不多了学透了。
九、总结
其实说到底,对一门技术的学习,需要坚持同时也需要你抱着极大的热枕去学习。对于技术学习还有一个通用的规则,那就是实践,实践是检验真理的唯一途径。把学到的理论用在实践上,做出一个案例出来,你在这过程中不仅巩固知识还能培养解决问题的能力。