看文章标题应该就道出了我的内心了,我决定要认真的学习JAVA了,只要认学真,用心、努力的去学我不信我学不会!
虽然我还是特别喜欢C++,虽然我的C++仍停留在大学做计算题的水平,但我依然不会放弃C++,因为它是我的理想。现在不懂不精通,但我以后一定可以的。把这个愿意先放在心底,因为公司的发展需要所有的东东都要基于JAVa来实现,所以我也要用心的去学习JAVa。现在也只能说是有一点语法上的知识,至少程序设计就是靠着C#和.NET的分析,然后用着JAVA语言得以实现,并不是真正意义上的JAVA编程思想,所以在网上G了一下,找到了一些文章都是说JAVA要如何去学,下面粘出一篇自认为比较好的,可能也是说的让我这个初学者比较明白的吧。
J2EE总体的学习计划
第一部分:
JAVA语言基础知识。包括异常、IO流、多线程、集合类、数据库。(切记基础知识一定要时时刻刻巩固)
要求:对java的封装,生命周期等有一定的了解;
异常------掌握try-catch-finally的使用
IO流------掌握字节流、字符流和对象序列化的处理.。熟练使用各种输入、输出流类(InputStream、
OutputStream、FileInputStream、FileOutputStream、DataInputStream、
DataOutputStream、BufferedInputStream、BufferedOutputStream、Reader、Writer、
InputStreamReader、OutputStreamWriter、BufferReader、BufferedWriter、
ObjectInputStream、ObjectOutputStream)。
多线程-------掌握多线程实现的两种实现方法,分别是继承Thread类与实现Runnable接口。理解线程间的同步与互斥。
集合类-------掌握Set、Collection、Map、List、Iterator、Enumeration接口的使用,掌握HashSet、ArrayList、Vector、HashMap、HashTable类的使用。
数据库-------掌握JDBC
API的使用,包括DriverManager类、Connection接口、Statement类和接口、PreparedStatement接口、ResultSet接口。
还有了解java反射机制,对Java1.5的新功能必须有了解与使用,泛型等。.
另外-------理解Unicode、GB2132、GBK、UTF-8、ISO8859编码方式。
参考:《Java编程思想》、张孝祥视频教学。
第二部分:
JAVA网络编程。包括Socket、RMI、HTML、XML、JSP、JavaBean、Servlet。
要求:Socket--------了解java.io包中的套接口类和服务器套接口类的使用。
RMI--------掌握RMI基本工作原理、掌握定义远程服务接口类、远程接口类、客户端调用类和部署、编译RMI应用程序。
HTML--------了解HTML语言的语法、各种标签。
JSP-------掌握JSP2.0语法、隐含对象、EL、JSTL1.1、JSP自定标签。
JavaBean-------理解JavaBean的特点和事件模型。
XML--------了解XML语言的语法、DTD、Schema。
Servlet---------掌握HTTP协议、Servlet工作过程、Servlet会话跟踪、Servlet过滤器、Serlvet事件侦听器、配置web.xml。
UML-------掌握用例图、类图、活动图、顺序图、状态图。
Aglet-------学会安装使用tahiti服务器,掌握Aglet API。[以后再学,在彭老师的项目才会用到]
开发工具------掌握Rational Rose 、ant 、cvs版本控制、myeclipse、dreamweave等开发工具使用。
另外-------学习过程中学会使用Tomcat、JBoss/Weblogic服务器
参考书:《JSP2.0技术手册》林上杰编著;
《深入体会Java Web开发内幕---核心基础》
在JSP上不要花太多时间,在时间放在servlet多一些.
第三部分:
流行MVC架构和Java对象持久化技术。包括webwork、Spring、Hibernate
要求:MVC-------理解MVC设计模式、处理过程。
webwork-------理解webwork实现MVC的机制、工作流程。掌握配置webwork应用、webwork控制器组
件、webwork应用的国际化、异常处理、webwork标签库。(其实很多遗留系统用的是Struts,但现在越来越少人用了,所以我鼓励你们学
webwork,但要必须要了解一下Struts)
Spring-------掌握控制反转(IoC)、面向方面编程(AOP)、事务服务(JTA)、邮件服务(JavaMail)、持久化服务(DAO、JDBC、ORM)、远程服务(RMI)。
Hibernate--------理解ORM,掌握映射对象标识符、映射关系(一对多、多对多、一对一)、映射类型、检索策略、检索方式、数据库事务与并发、管理Hibernate的缓存。
学习过程:先学习webwork2,再学习Hibernate,最后学Spring。
下面的东西有时间了解一下:
测试/敏捷开发-----关注测试,掌握Junit单元测试框架,以及现在两个流行的mock工具EasyMock/JMock,熟
悉其中一种。(提示:测试非常重要,有效的测试可以减少很多开发的时间,当然刚开始觉得不耐烦,好像没有必要写测试代码,一定要说服自己尝试写测试代码,
或多或少的)
UNIX系统------了解最主要的shell编程,及主要的相关的命令行操作.
AJAX-----了解基本的javascript,csss,以及ajax常用的用法,还有JSON框架.
(ajax的框架太多,但不要花太多时间去学,因为你不知道公司用不用ajax,而且用的那一框架你没有办法知道,所以懂最基础就可以了)
参考书:《webwork in action中文版》
《精通Struts》、《精通Hibernate》孙卫琴著,
《Spring技术手册》林信良著
《JUnit in action中文版》Vincent
Massol著的
书籍只是用来入门的,其他的工具必须多上英文网址,尽量多看一些英文文档,提高自己的水平,同时有空的时候也可以下载的一些开源项目的文档。
最后一句话:无论什么技术,学了不要以为自己多牛,学技术只是为了更好提高自己做项目的能力以及提升自身的水平。你做的项目效果怎样才能最终看出你自身的水平。
不知道为什么,看了以上这些东东,总感觉学JAVA就是为了WEB一样,像今天去购书中心看一下JAVA方面的书籍,结果都是讲WEB的,现在很流行的那些框架也是和做Web相关的。难得我只想学JAVA的桌面程序不行吗?学JAVA的游戏开发不行吗?或者说以上这些都是所谓的J2EE方面的?
而应用程序方面是J2SE?移动应用比如JAVA的游戏是J2ME???
一大串的问号,JAVA的东西太多了,由于开放性导致框架特别多,虽然免费但太乱了,多了并不一定就好,每种都有几处之长,有几处之短;别外一种又补这的短现自己的短……要怪就只能怪SUN无能,连自己的东东都掌握不住方向。
唠叨完毕,去下载一本书看《JAVA大学教程》第六版似乎很好看,涵盖的内容也比较全面,适合初学者。