Java SE学习之路

我们知道Java有三个方向,JavaSE,JavaME,JavaEE(老程序员可能会叫J2EE等,不过SUN已经改名了)。JavaME主要是嵌入式与游戏开发。那我们先看JavaSE,因为只有学好了JavaSE才可以学JavaEE,所以说JavaSE是JavaEE的根基。
Java的历史当然得了解,但除去与别人讨论卖弄工作基本用不到,您可以暂时放放,那天累了调剂学习。那能知道他的历史呢?google,baidu搜吧!以后要养成个意识,凡是不了解想明白的东西就上google,baidu,不仅仅限于编程知识。
下面我们详细看JavaSE学习路线:
1.Java跨平台原理,JDK的部署与HelloWorld。您得知道Java跨平台原理,知道怎么配置环境变量以及编写一个HelloWorld程序。
2.程序的基本语法,比如什么是常量变量流程控制循环等任何一门编程语言都必备的知识,再学习下冒泡啊递归啊等算法,然后给数组排个序,打印个或实心或空心三角形等这些玩意。如果您学过C,C++这会非常轻松。
3.学习Java的OOP,这是重点也是难点。你们要想听一遍课就熟练应用这些知识基本是不可能的。一个优秀的老师能把这些给你讲清楚就已经非常了不起了,同样一个优秀的学生能把这些概念背下来在看到类似的代码知道原因也非常了不起。至于创造,建议先别要求那么高。先把OOP众多概念背下来,以后JavaEE的学习中,在项目代码中再体会理解。所以这部分重点是理解加背概念。下面是平时讲课顺序
a) 学习类和对象的知识,知道什么是类与对象以及在java中如何创建类与对象。
b) 包的知识
c) java中数据类型的分类(值类型,引用类型)
d) 声明对象与创建对象
e) java中方法参数的两种传递方式。
f) 构造方法
g) 继承以及继承的特点(this与super关键字)
h) 封装,包括访问修饰符
i) 抽象类,接口
j) 多态(方法重载与方法重写),知道抽象类接口都是为多态服务
k) static与final关键字
l) 用以上的知识做一个面向对象的某某管理系统
4.异常包括分类以及五个关键字try catch finally throw throws
5.集合框架
6.到这如果想做个有成就感的程序可以直接学习JDBC,当然这需要您数据库的知识的支持(比如能建库建表,会增删改查的sql语句),然后可以做个控制台版本的某某管理软件。当然您这个系统一定要使用vo类,要使用DAO模式,最好能加上接口编写两个DAO实现,Statement与PreparedStatement各一个,在此基础上更深刻的理解OOP编程。
7.设计模式的知识这时您也可以学习一些,了解工厂,单态这两种设计模式,然后使用它重构您上面做好的管理系统。
(到这里,如果您急的找工作就业,也算小有所成,可以做个合格的小师弟了,然后向大师兄努力,学习JavaWeb;如果您不急着就业,可以把基本功练的更扎实些,可以接着学习下面三部分的知识)
8.多线程编程
9.网络编程
10.Java中的I/O操作
(以上三部分知识有个共同的特点是相对于前面七点在工作项目代码中使用很少,但理论还是相当重要,比如作为程序员您总得知道进程线程的区别联系吧,而且好多工具的底层就用到这些知识,比如JavaWeb部分我们使用的WebServer一定是个多线程的容器,它要与客户端通信一定需要网络编程,要处理用户的请求数据给客户端相应数据一定需要流来读写,所以这部分知识必须学,只不过您可以先暂时放放以后再学)
11.AWT-SWING/SWT:
有会问java是不是不能进行C/S结构程序开发,当然可以了。Java开发C/S 结构程序可以使用两个技术,一个是AWT/SWING,这个是SUN搞出来的,比如Java以前非常火的一个IDE工具JBuilder就是用它开发的;还有一个是SWT,这个最早是由IBM发明的,用的语言还是JAVA,但API已经与SWING不同了,比如现在非常好用的Eclipse就是用它开发的。
用java开发C/S程序相对于winform除了能夸平台并没有什么优势可言,比如复杂的技术,比如没有很好的开发工具支持快速开发(jb还可以eclipse生成的代码太乱了),比如运行超多内存的占用,所以现在使用Java开发C/S程序的少之有少,企业的招聘岗位少之有少,那就不讲不学了吧!但您搞软件开发总得写过些C/S程序吧,总得知道C/S下如何做权限,如何共享数据这些基本知识吧,而且AWT/SWING中用到了很多优秀OO设计思想,更高兴的是学习完这可以把我们前面做的控制台版本的管理系统挂上形成一个可给用户交互使用的系统,所以您有时间,学吧,急着找工作,就别学了(如果找工作顺利,那以后估计永远也不会学了。)。
12.Java的新特性
以前喜欢说JDK1.5的新特性,现在Java7也出来了,也不算啥新特性,这部分知识包括:static import,泛型,注解,可变参数等,比如泛型应该在讲解集合框架中说明,这部分也应该学习,但注解建议了解。
13.反射
反射的知识也属于JavaSE的内容,也建议暂时不要学习,等到高级阶段,自己有一些代码经验积累后再详细学习,反射的代码虽然工作项目代码使用较少,但很多框架或者你搞底层开发也一定是用得到的。
总结:以上的学习路线虽然写了13条,但如果您想速成的话先学习前面七条就可以了,或者从另外一个角度说,掌握了前面七条暂时可以像更高的阶段JavaWeb进发了!

Java SE学习之路_第1张图片

当然,刚才说到J2EE包含的范围很广,即使我把我所了解的所有技术说出来,也并不能代表J2EE,这是一个很深很广的学问,需要大家以后再工作的时候慢慢去发现了。我所了解的还包括:
JDBC:Java数据库连接对象,基础中的基础,Hibernate也只是对它的封装而已
JNDI: Java 命名与目录接口,J2EE重要规范之一
EJBS: 上面已经提到过了
RMI: 提供远程调用方法的支持,主要用于程序分布式开发
JMS: Java消息服务,中间件技术
JAVA IDL: 提供J2EE平台与CORBA交互能力和互联能力的技术
JTS: 组件事务监视器
JTA: 事务划分的一个技术
JAVAMAIL: Java中的邮件技术
JAF: Java启动框架,没研究过
Log4j,一款日志处理的框架应用
Junit:单元测试的好帮手
freemarker、velocity:两款不错的模板引擎
与Flash的交互Flex:目前很多的SNS应用就是使用到了这个技术
Web services:想知道我们论坛天气预报的效果是怎么做的吗?请关注这个技术
SOA:面向服务架构,未来技术发展的趋势之一
……
不过前面介绍到得这些都不是J2EE的基础,是属于框架应用级别的.要真正把上面说到的知识掌握好,还是的学习J2EE最核心的东西:JDBC、JSP、servlet和JavaBean,后面三个也是学习SSH的基础(Struts/Spring/Hibernate的简称).鉴于J2EE的内容太过复杂,建议大家最初只学习: JSP, servlet和JavaBean,等这个基础掌握好再把SSH学习了,再对其他J2EE技术有个大致的了解就可以出去找工作了。当然,找工作的前提除了把Java学习好,还会有一些其他的技术也是必须要掌握的。

-_- 我很简单,Java却要求我学这么多复杂的东西。除了这些技术的东西,在这阶段,大家更多的是会接触到比如设计模式的东西,比如工厂模式、桥梁模式、单例模式等等,还要学习建模思想(比如UML建模等等)和软件生命周期等等。这些是升华大家编程思想的手段和途径。
数据库技术:
数据库几乎是程序中不可或缺的一部分,在整个软件开发中更是占据了重要作用.数据库在整个软件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做软件,就要先设计好的数据库.目前数据库几乎都是关系型数据库,代表的有:
SQL Server,目前最新的好像是2008,我不是很喜欢追赶时髦,用的还是2005,不过也很不错了,在此之前还有2000.
MySQL,最知名的开源数据库之一,我很喜欢它的小巧耐用,学过SQL SERVER数据库再学它,无师自通,易如反掌.
ORACLE.甲骨文公司的产品,大型数据库,正版的一般公司买不起.只有看看了,不过现在Java开发60%都是会使用到这个数据库,再加上现在甲骨文已经把sun公司收购了,JAVA和ORACLE得关系更加暧昧,各位得多花些时间在这上面了.
除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说sqlite。你在制作安装程序的时候可以把这个数据库打包进你的安装程序。
网页编程基础:
网页编程基础要学的内容也比较多,但主要集中在以下这三个技术之上,大家每天看的各种样式的网页都是它们呈现的:
HTML:超文本标记语言
CSS:层叠样式表
Javascript:浏览器客户端脚本语言
现在更是流行各种JavaScript库,比如:Jquery、ExtJs等,你要是会其中的某一个库的使用,找工作so easy。
J2ME:
如果你在学习了以上技术还不过瘾,可以再学习手机程序的开发,就我个人看来,开发手机程序技术其实蛮简单的,难点在于优化,比如怎么让你写的程序尽量的节约手机资源,“代码诚可贵,手机价更高“,所以不得不比PC机多考虑很多成本和实用性问题。J2ME的学习的话,切忌不要单纯的再模拟器上测试,一定要找真机测试,真机和模拟器的效果之间差别是很大的。更多手机开发技术,有兴趣的朋友可以和我一起探讨。
开发工具:
开发工具的选择主要还是看大家的习惯,我个人比较喜欢使用eclispe,功能很强大,也很好拓展其他的功能。当让初学你也可以选择JCreator,或者最好就直接用记事本。等你熟悉了Java代码之后,就可以使用JBuilder、eclispe或者netbeans这一类的工具了。

你可能感兴趣的:(Java SE学习之路)