本书从Java语言的基本特点入手,逐步介绍了Java语言的基本概念和编程方法,并深入介绍了Java的高级特性,内容包括Java语言的基础知识、异常处理、图形用户界面设计、事件处理、小应用程序、输入输出处理、线程和网络通信等。\r\n 本书内容详尽,实例丰富,不仅适合Java语言的初学者使用,也可作为专业人员的参考书。书中每章均附有习题,便于教学。\r\n\r\n
1 概述\r\n\r\n1.1 什么是Java语言\r\n1.1.1 Java语言的特点\r\n1.1.2 Java的三层架构\r\n1.1.3 Java语言的目标\r\n1.1.4 Java虚拟机\r\n1.1.5 垃圾收集\r\n1.1.6 代码安全\r\n1.2 一个基本的Java应用程序\r\n1.3 程序的编译和运行\r\n1.3.1 编译\r\n1.3.2 运行\r\n1.4 常见错误\r\n1.4.1 编译时错误\r\n1.4.2 运行时错误\r\n1.5 使用Java核心API文档\r\n习题\r\n\r\n2 标识符、关键字和数据类型\r\n\r\n2.1 Java的基本语法单位\r\n2.1.1 空白、注释及语句\r\n2.1.2 关键字\r\n2.1.3 标识符\r\n2.2 Java编码体例\r\n2.3 Java的基本数据类型\r\n2.3.1 基本数据类型\r\n2.3.2 类型转换\r\n2.3.3 变量、说明和赋值\r\n2.4 复合数据类型\r\n2.4.1 概述\r\n2.4.2 复合数据类型\r\n2.5 类和对象的初步介绍\r\n2.5.1 Java的面向对象技术\r\n2.5.2 Java的类定义\r\n2.5.3 与OOP有关的关键字\r\n2.5.4 类定义示例\r\n2.5.5 创建一个对象\r\n2.5.6 引用变量的赋值\r\n2.5.7 默认初始化和null引用值\r\n2.5.8 术语概述\r\n习题\r\n\r\n3 表达式和流控制\r\n\r\n3.1 表达式\r\n3.1.1 操作数\r\n3.1.2 运算符\r\n3.1.3 表达式的提升和转换\r\n3.2 流控制\r\n3.2.1 表达式语句\r\n3.2.2 块\r\n3.2.3 分支语句\r\n3.2.4 循环语句\r\n3.2.5 特殊的流控制语句\r\n习题\r\n\r\n4 数组和字符串\r\n\r\n4.1 数组\r\n4.1.1 数组说明\r\n4.1.2 创建数组\r\n4.1.3 数组边界\r\n4.1.4 数组初始化\r\n4.1.5 多维数组\r\n4.1.6 数组拷贝\r\n4.2 字符串类型\r\n4.2.1 字符串概述\r\n4.2.2 字符串说明及初始化\r\n4.2.3 字符串处理\r\n4.2.4 几个特殊处理\r\n习题\r\n\r\n5 对象和类的进一步介绍\r\n\r\n5.1 抽象数据类型\r\n5.1.1 抽象数据类型概述\r\n5.1.2 定义方法\r\n5.1.3 按值传送\r\n5.1.4 this引用\r\n5.1.5 数据隐藏\r\n5.1.6 封装\r\n5.2 重载方法名\r\n5.3 对象的构造和初始化\r\n5.3.1 显式成员初始化\r\n5.3.2 构造方法\r\n5.3.3 默认构造方法\r\n5.3.4 finalize方法\r\n5.4 子类\r\n5.4.1 “is a”关系\r\n5.4.2 extends关键字\r\n5.4.3 单重继承\r\n5.4.4 多态性\r\n5.4.5 方法的参量和异类集合\r\n5.4.6 instanceof运算符\r\n5.4.7 转换对象\r\n5.5 覆盖方法\r\n5.6 Java包\r\n5.6.1 Java包的概念\r\n5.6.2 import语句\r\n5.6.3 目录层次关系及CLASSPATH环境变量\r\n习题\r\n\r\n6 Java语言中的异常\r\n\r\n6.1 异常\r\n6.2 异常示例\r\n6.3 异常处理\r\n6.3.1 try,catch和finally语句\r\n6.3.2 再讨论前面的示例\r\n6.3.3 公共异常\r\n6.4 异常分类\r\n6.5 抛出\r\n6.6 创建自己的异常\r\n习题\r\n\r\n7 Java的图形用户界面设计\r\n\r\n7.1 创建图形用户界面\r\n7.1.1 容器和组件\r\n7.1.2 组件的定位\r\n7.1.3 组件的大小\r\n7.2 框架\r\n7.2.1 创建一个简单的框架\r\n7.2.2 运行程序\r\n7.3 面板\r\n7.4 布局\r\n7.5 一个简单的例子\r\n7.6 布局管理器\r\n7.6.1 FlowLayout布局管理器\r\n7.6.2 BorderLayout布局管理器\r\n7.6.3 GridLayout布局管理器\r\n7.6.4 CardLayout布局管理器\r\n7.6.5 其他布局管理器\r\n7.7 容器\r\n7.7.1 框架\r\n7.7.2 面板\r\n7.7.3 创建面板和构造复杂布局\r\n习题\r\n\r\n8 AWT事件模型\r\n\r\n8.1 JDK1.0和JDK1.1事件模型\r\n8.1.1 JDK1.0的层次模型\r\n8.1.2 JDK1.1的委托模型\r\n8.2 Java GUI工作情况\r\n8.2.1 事件的种类\r\n8.2.2 一个较复杂的例子\r\n8.2.3 多监听程序\r\n8.3 事件适配器\r\n习题\r\n\r\n9 AWT组件库\r\n\r\n9.1 按钮\r\n9.2 复选框\r\n9.3 复选框组——单选按钮\r\n9.4 选择框\r\n9.5 画布\r\n9.6 标签\r\n9.7 文本域\r\n9.8 文本区\r\n9.9 文本组件\r\n9.10 列表\r\n9.11 框架\r\n9.12 面板\r\n9.13 对话框\r\n9.14 文件对话框\r\n9.15 菜单组件\r\n9.15.1 菜单栏\r\n9.15.2 菜单\r\n9.15.3 菜单项\r\n9.15.4 带复选项的菜单项\r\n9.15.5 弹出式菜单\r\n9.16 控制组件外观\r\n9.16.1 颜色\r\n9.16.2 字体\r\n9.17 打印\r\n习题\r\n\r\n10 Java Applet\r\n\r\n10.1 编写Applet\r\n10.2 Applet的方法和Applet的生命周期\r\n10.3 Applet的显示与刷新\r\n10.4 appletviewer\r\n10.5 HTML与<applet>标记\r\n10.6 Applet参数的读取\r\n10.7 Applet与URL\r\n10.8 在Applet中显示图像\r\n10.9 在Applet中播放声音\r\n10.10 Applet的事件处理\r\n10.11 Applet与普通应用程序的结合\r\n习题\r\n\r\n11 Java语言的深入理解\r\n\r\n11.1 方法覆盖\r\n11.1.1 方法覆盖的概念\r\n11.1.2 应用覆盖的规则\r\n11.2 构造方法覆盖\r\n11.3 父类构造方法调用\r\n11.4 类成员\r\n11.4.1 类变量\r\n11.4.2 类方法\r\n11.5 关键字final\r\n11.5.1 终极类\r\n11.5.2 终极方法\r\n11.5.3 终极变量\r\n11.6 抽象类\r\n11.7 接口\r\n11.7.1 接口的定义\r\n11.7.2 接口的实现\r\n11.8 过时信息\r\n11.9 内部类\r\n11.9.1 内部类的概念\r\n11.9.2 匿名类\r\n11.9.3 内部类的工作方式\r\n11.10 Vector类\r\n11.10.1 概述\r\n11.10.2 Vector类的构造方法\r\n11.10.3 Vector类中的变量\r\n11.10.4 Vector类中的方法\r\n11.10.5 Vector类的使用举例\r\n习题\r\n\r\n12 Java数据流\r\n\r\n12.1 数据流的基本概念\r\n12.1.1 输入数据流\r\n12.1.2 输出数据流\r\n12.2 基本数据流类\r\n12.2.1 文件数据流\r\n12.2.2 缓冲区数据流\r\n12.2.3 数据数据流\r\n12.2.4 管道数据流\r\n12.2.5 对象流\r\n12.3 其他相关类\r\n12.3.1 URL输入数据流\r\n12.3.2 读者和写者\r\n12.3.3 缓冲区读者和缓冲区写者\r\n12.4 文件的处理\r\n12.4.1 File类\r\n12.4.2 随机访问文件\r\n12.5 可持续性\r\n12.5.1 持续化的概念\r\n12.5.2 对象结构表\r\n习题\r\n\r\n13 线程\r\n\r\n13.1 线程和多线程\r\n13.1.1 线程的概念\r\n13.1.2 线程的结构\r\n13.2 创建线程\r\n13.2.1 创建线程的方法一——继承Thread类\r\n13.2.2 创建线程的方法二—一实现Runnable接口\r\n13.2.3 关于两种创建线程方法的讨论\r\n13.3 线程的启动\r\n13.4 线程的调度\r\n13.5 线程的基本控制\r\n13.5.1 结束线程\r\n13.5.2 检查线程\r\n13.5.3 挂起线程\r\n13.6 同步问题\r\n13.6.1 问题的提出\r\n13.6.2 对象的锁定标志\r\n13.6.3 同步方法\r\n13.7 死锁\r\n13.8 线程交互——wait()和notify()\r\n13.8.1 问题的提出\r\n13.8.2 解决方法\r\n13.9 综合应用实例\r\n习题\r\n\r\n14 Java的网络功能\r\n\r\n14.1 概述\r\n14.2 URL——统一资源定位器\r\n14.2.1 URL的概念\r\n14.2.2 URL的构造方法\r\n14.2.3 与URL相关的异常\r\n14.2.4 获取URL对象属性\r\n14.2.5 读入URL数据\r\n14.3 socket接口\r\n14.3.1 socket的基本概念\r\n14.3.2 socket通信的基本步骤\r\n14.3.3 socket通信的程序设计\r\n14.4 Java编程综合实例\r\n习题\r\n\r\n附录A GridBagLayout布局管理器\r\n\r\nA.1 概述\r\nA.2 GridBagLayout的功能\r\nA.3 GridBagConstraints的使用\r\nA.4 GridBagConstraints的实例变量\r\nA.5 GridBagConstraints应用实例\r\n\r\n附录B 本机方法的使用\r\n\r\nB.1 定义本机方法\r\nB.2 调用本机方法\r\nB.3 javah工具\r\nB.4 本机方法的C函数代码\r\nB.5 集成\r\nB.6 向本机方法传递信息\r\nB.7 访问对象数据成员\r\nB.8 访问字符串\r\nB.9 本机方法应用小结\r\n\r\n参考文献\r\n\r\n
计算机技术发展的速度和趋势远远超出了人们最初的预想,不论硬件还是软件,不论体积还是运算速度,今日的计算机已非早期的计算机所能相比。不仅如此,计算机应用的领域也已渗透到社会的各个层面。政府机关、企业、科研院所、学校服务单位等都大量使用了计算机,使用的人员也日趋多元化。人们近切要求掌握与计算机相关的新技术、新知识。Java语言正是这从多新技术中的一朵奇葩,它适应了迅速发展的Internet的需要,开创了一种新的计算模式。
美国著名的计算机公司SUN MICROSYSTEMS在1995年推出Java语言时,确实在计算机软件界引起一场不小的震动,为软件设计人员带来了一杯新口味的“咖啡”。Java语言一改过去程序设计语言过多依赖硬件平台、可移植性差的缺点,提出在硬件平台基础之上构建Java虚拟机,并在此之上执行通用的字节码的思想,实现了编程人员梦寐以求的“一次编写,到处执行”的愿望。Java的语法简单,与已被众多程序设计人员掌握的C++类似,而它的功能又很强大。Java语言符合程序设计的主流,继承了面向对象程序设计语言的诸多特色,包括封装、继承和多态,具有安全性和健壮性。此外,它是多线程的、动态的语言,具有动画、声音等功能,能实时处理信息。Java与Web及Internet结合紧密,强调网络特性,它还能用于瘦客户机体系架构,实现“零管理”。Java语言的这些优点,是它在问世后短短几年之内得到广泛关注及应用的前提。
计算机技术是不断发展、不断完善的技术,Java语言也是如此。从Java诞生之日起到现在,它已经经过多次修改,正式公布了多个版本。在本书出片的过程中,Java语言仍没有停止它的完善过程。本书中有些内容是以Java目前的版本为标准的,当推出更高版本的Java时,读者应参考这些新标准。
本书从Java语言的基本特点入手,详细介绍了Java语言的基本概念和编程方法,帮助读者深入了解Java特性。全书共分14章,内容涉及Java的语言基础、异常处理、图形用户界面设计、事件处理、小应用程序、I/O处理、线程和网络通信等。本书的读者需要掌握计算机的相关基础知识,学习或接触过一两种程序语言,初步掌握面向对象的程序设计思想,大致了解计算机网络基本知识。在此基础上再来学习Java语言程序设计,将会收到事半功倍的效果。
本书第1章至第6章由辛运帏编写,第7章至第10章由饶一梅编写,第11章至第14章由张钧编写。本书在编写过程中,得到了南开大学信息技术科学学院卢桂章院长、吴功宜院长、黄亚楼院长、陈有祺教授、王治宝教授、王秀峰教授等的悉心指导,同时也得到了SUN公司原AJC部门金丰工程师、柳文中工程师、张杰先生、Oliver Zhou等的大力支持,在此一并表示深深的感谢。
本书前后历经四年,现在终于与读者见面了。在些,非常感谢亲爱的读者在众多的Java参考书中选中了本书。由于作者的水平有限,书中难免有错误和不妥之处,恳请广大读者特别是同行专家批评指正。