admin 管理员组

文章数量: 1087139


2024年3月21日发(作者:批处理ping多个ip)

《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软件工程师所必须具备的基本技能。

另外,本资源包中还包容了两个课程设计题目:

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教师提供更丰富的教学资源,也能帮助广大初学者更有效率地学习

和掌握软件技术。

谢谢大家!


本文标签: 开发 介绍 技术 同学