《Java程序设计》课程教学资源索引
说明:
本课程针对零Java编程基础的计算机专业学生,前提是学过C语言。
课程主要讲授J2SE,教学目的是带领学生迈入Java开发的大门,初步
理解和把握面向对象的思想与理论,为进一步学习J2EE,或者Android
开发扫清障碍。
所提供之示例均使用Eclipse Indigo,在JDK 1.6下调试通过。
==============================================================第一部分  Java开发基础
第一讲:Java导论与开发环境。包括两个PDF文档,主要介绍Java的
基础知识、Java开发环境的搭建,以及Java开发工具的选择和使用,
是Java学习的第一步。
1 Java导论与Java开发环境
2 Eclipse初步
第二讲Java应用程序与Applet。包容一个pdf文档及相关示例源码。本
讲主要介绍两种最基本的Java程序类型,并介绍Java编程的一些基础
知识。
第三讲Java语法基础。包容两个pdf文档及相关示例源码。
1 Java语法基础
2 程序控制结构
这一讲基本上介绍完了Java最基本的语法,学生已经可以使用Java编
写简单的”结构化“程序。另外,为方便学习,资源包中还添加了从
Oracle网站上下载的Java语言规范3.0(pdf版本)。
第四讲数组。
与C不一样,Java中的数组是一个对象,并且拥有一些独特的性质(比
如可以定义“不整齐”的多维数组,本质上是以“数组”为“元素类型”的一维
数组),另外,数组在实际开发中用得很广泛,本讲介绍了数组排序与
查的示例,并布置了一个作业:将数字转换为”汉字表达“。此作业的
参考答案在下次课程中给出。
第五讲方法
本讲介绍Java编程中与”方法“相关的特性,其中的重点是”方法重载(overload)“的概念。另外,本讲还介绍了JDK中用于处理日期Calenda类的使用方法,同学们将会发现这个类拥有一些比较特殊的行为特性,这些特性可能有点违背“常识”。Calenda类的设计是好是坏,就由同学们自己感悟吧。
第六讲字符串
Java中字符串是一个对象,它的最大特点是“只读”。同学们需要理解为什么Java要将字符串设置为只读
的,字符串赋值的真正含义,如果的确需要一个能修改内容的字符串,应该选用哪个类。除此之外,还简要介绍了另几个与字符串处理相关的类。
到此为止,Java编程基础介绍完毕。后继的课程将系统介绍Java的面向对象特性,这些是重点内容,对同学们参与实际项目开发非常重要,必须扎实掌握。
第二部分  Java面向对象特性
第七讲面向对象理论基础
本讲以一个小学数学题为例,讲解结构化方法与面向对象方法差异,并介绍了OOA、OOD和OOP的概念,对“愚公移山”这一传统故事从“软件开发”的视角进行重新解释,帮助同学们直观地了解面向对象软件的开发过程。
第八讲创建与使用类
类和对象是面向对象编程的两个核心概念,本讲介绍了Java面向对象编程中至关重要的内容:类的“模板”,原始数据类型与对象类型变量的内存模式,类的静态成员,类初始化块,包装类,特别地,在本讲的最后介绍了JDK所提供的一个字节码反汇编器javap,向同学们展示了使用javap分析代码的基本技巧。
第九讲包
主要介绍如何使用包中的类,如何自定义包,下载的资源中除了本讲相关资料外,还包括第五讲布置的作业参考答案。
第十讲继承、接口与多态
本讲介绍面向对象的核心特性,以一个“动物园”示例直观展示了多态应用于开发所带来的好处,并通过javap反汇编展示编译器是如何为多态代码生成字节码指令,而这些指令又是如何在运行时实现多态特性的。第十一讲内部类
本讲内容比较简单,主要是Java的内部类特性。内部类在实际开发中用得较多,关键点在于了解清楚内部类如何访问外部类中的成员。
零基础学java有必要吗第十二讲异常处理
本讲介绍Java异常处理机制的基础知识,这部分内容比较重要,在实际开发中有广泛的应用。
第十三讲对象组合与数据结构
本讲集中介绍Java面向对象编程的基本技巧,特别是如何使用Java实现常见的链表、队列、树等数据结构。用面向对象的思想编程实现各种数据结构,是每一名Java软件工程师所必须具备的基本技能。
另外,本资源包中还包容了两个课程设计题目:
1 设计一个支持多级括号及运算符优先级的“四则运算计算器”
2 设计一个能求解线性方程组的程序
通过完成这两个程序设计题目,能充分锻炼同学们的开发能力,促进对数据结构与算法的学习。有关数据结构与算法的问题经常会成为大公司的面试题。
第十四讲对象集合
JDK中提供了数十个大大小小的对象集合类型,基本上能满足开发中的实际需求。但由于历史原因,JDK中的这些集合类在设计上存在着一些不合理的地方,包容了一些陷阱。本讲会涉及一些这方面的内容,同时展示如何通过阅读JDK源码理解Java集合类的特性,并帮助同学们“绕开”这些隐藏的陷阱。
第十五讲泛型程序设计
依稀记得在Java刚出来没多久时,记者采访Java之父——James Gosling,他说Java不打算引入泛型,但形势比人强,当一种语言被广泛使用时,原先觉得并不重要的功能反而突显出来,Java最终还是引入了泛型。但由于最初并未考虑泛型,所以JVM基本上对泛型是“无
视”的,这导致javac不得不将泛型代码“翻译”为传统的代码。本讲介绍了Java泛型编程的特点,其中有关编译器翻译泛型代码的“擦除”原理是
重点,理解它是把握Java泛型编程特性的关键。
到此为止,有关Java面向对象基本特性介绍完毕,后面将介绍JDK中另外一些比较深入的技术领域。
第三部分深入Java技术领域
第十六讲 Java GUI界面设计与事件处理
本讲包容4个PDF文档以及数十个代码示例,系统地介绍了Java AWT与Swing开发GUI应用程序的基础知识。虽然由于性能问题,直接使用Java开发桌面应用相当罕见,但本部分所涉及到的知识却相当有用,特别是AWT事件处理模型,在实际开发中有广泛的应用,需仔细理解并把握。另外,有关容器的概念,有关布局管理器的功用,都能自然地延伸到Android应用开发领域。
JDk中有关Java 2D API部分的内容并未介绍,JavaFX和SWT也仅是提了一下,需要用到它们的同学请自学。
第十七讲文件与流操作
Java中存取文件内容是通过流对象实现的,而在J2EE开发中,很多技术都要应用流来传输与存储信息,因此掌握本讲的内容是进一步学习
J2EE技术的前提。JDK中与流相关的类型有数十个,相当地繁杂,本讲选择了一些进行详细介绍,其余的只是提供一些实例供大家自行阅读。
第十八讲序列化
序列化是一个很重要的技术,它的主要用途是把内存中的对象保存到一个流中。其他领域的技术有很多都应用了序列化,因此,它也是必须掌握的内容。
第十九讲反射
本讲包容3个内容:1 反射技术基础 2 JavaBean 3 注解。这三个技术在许多Java框架中用得很多。默认情况下,本讲用到的组件Eclipse中都已默认安装,为了方便起见,在资源包中也提供了独立的组件包,可以在Eclipse中添加到项目的Build Path中。
第二十讲 Ant
Ant是Java平台上一个非常优秀的自动化构建工具,简单易用同时又功能强大。本讲介绍Ant的相关知识。为了便于学习,我从Apache网站上下载了Ant 1.8.2的组件包、文档与源码,一并加入到了教学资源包中。
第二十一讲多线程
在多核时代,多线程是所有Java开发者必须掌握的技能。本讲介绍了Java多线程开发的基础知识,并从JDK中选取典型的常用的组件(比如各种锁和线程安全的数据结构)进行了介绍。我从互联网上搜集到了一些公司面试的真实Java多线程试题,将它们作为教学实例一并加入到了教学资源包中,相信会对同学们顺利通过技术面试有所帮助。
到此为止,本学期有关J2SE部分的基础教学内容讲授完毕。作为Java 平台技术的自然延伸,下一讲将介绍Android平发平台的基础知识。
第二十二讲 Android开发技术基础
包容4个PDF文档及若干个示例项目,主要介绍Android开发环境的搭建、Android应用的开发过程及Android编程中的核心概念,其目的主要是帮助学生初步了解Android平台,为其顺利进行Android开发打
开大门。
至此,《Java技术及应用》课程全部更新完毕,这套教学资源汇集了我所读过的多本Java技术书籍以及多个在互联网上公开发布的其他网友奉献的技术资源,难于一一列举,特在此对奉献这些免费优质技术资源的人表示感谢。我个人主要完成的工作是,对这些庞杂的技术资源进行了整理与重构,便于教师教学和学生自学,希望我所发布的这些资料能给Java教师提供更丰富的教学资源,也能帮助广大初学者更有效率地学习和掌握软件技术。
谢谢大家!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。