第1章Java语言概述21.1Java简介2 1.2Java语言的特性3 1.3Java程序的运行机制4 1.4Java开发工具JDK5 1.4.1JDK的下载和安装5 1.4.2JDK的环境变量配置6 1.4.3使用JDK和文本编辑器编写Java程序8 1.5Eclipse集成开发环境9 1.5.1Eclipse简介9 1.5.2使用Eclipse开发Java程序10 1.6Java控制台输入/输出14 1.6.1System类与标准I/O流对象14 1.6.2使用println()和print()方法输出14 1.6.3使用read()方法从键盘输入字符14 1.6.4使用Scanner类进行键盘输入15 1.7本章要点16 实践题116 第2章Java编程基础17 2.1Java的数据类型17 2.1.1数据类型概述17 2.1.2Java的数据类型分类18 2.2变量与常量18 2.2.1变量18 2.2.2常量和符号常量19Java程序设计教程及实验指导目录2.3关键字与保留字19 2.4标识符20 2.5Java命名规范20 2.6程序注释21 2.6.1注释方法及格式21 2.6.2注释的原则22 2.7整数类型23 2.7.1字节型23 2.7.2短整型24 2.7.3整型24 2.7.4长整型24 2.8浮点型25 2.8.1单精度浮点型25 2.8.2双精度浮点型25 2.9字符型25 2.10布尔型26 2.11运算符和表达式27 2.11.1算术运算符27 2.11.2关系运算符28 2.11.3逻辑运算符29 2.11.4位运算符29 2.11.5其他运算符31 2.11.6运算符的优先级32 2.11.7基本数据类型的混合运算33 2.12程序控制结构35 2.12.1选择语句35 2.12.2循环语句40 2.12.3break和continue语句43 2.13数组45 2.13.1一维数组45 2.13.2二维数组49 2.13.3数组与foreach语句53 2.13.4Java数组工具类Arrays54 2.14应用实例55 2.14.1整数按序输出55 2.14.2分段函数求值56 2.14.3整数求位数及逆序输出56 2.14.4找出素数并输出57 2.15本章要点58 实践题259 第3章类与对象60 3.1面向对象概述60 3.1.1面向对象的三要素61 3.1.2面向对象的特性63 3.2类和对象64 3.2.1类的定义及构成64 3.2.2对象的生成65 3.2.3对象的使用66 3.2.4对象的清除67 3.3成员方法69 3.3.1成员方法的定义69 3.3.2成员方法的调用69 3.3.3使用return语句返回一个值70 3.3.4getter方法和setter方法71 3.3.5成员方法的参数及传值72 3.3.6方法重载74 3.4构造方法75 3.4.1构造方法的作用和特点75 3.4.2构造方法的使用76 3.4.3构造方法重载77 3.4.4默认构造方法78 3.5this引用78 3.5.1什么是this引用78 3.5.2使用this引用区分对象属性与方法形参79 3.5.3使用this引用调用其他构造方法80 3.5.4使用this引用表示当前对象80 3.6静态成员81 3.6.1静态属性81 3.6.2静态方法82 3.6.3理解main()方法83 3.6.4单例设计模式84 3.7内部类85 3.7.1成员内部类85 3.7.2匿名内部类86 3.8包87 3.8.1理解包的作用87 3.8.2如何创建包88 3.8.3编译使用包的程序88 3.8.4使用import引入包中的类88 3.8.5包的访问控制方式89 3.8.6JDK中常用的包89 3.9字符串类90 3.9.1String类90 3.9.2StringBuffer类94 3.9.3StringBuilder类96 3.10JDK的帮助文档96 3.11类的使用与设计98 3.11.1再论类和对象98 3.11.2类的设计99 3.12应用实例100 3.12.1栈类100 3.12.2信用卡账户类102 3.13本章要点103 实践题3104 第4章继承与多态性105 4.1继承的基本概念105 4.2Java继承的实现107 4.2.1继承的语法107 4.2.2protected访问控制方式109 4.2.3super关键字与子类对象的实例化过程109 4.2.4方法重写111 4.2.5final关键字112 4.3继承与子类型113 4.4抽象类与多态性114 4.4.1抽象类的引入114 4.4.2抽象方法114 4.4.3抽象类的定义115 4.4.4多态性116 4.5继承的使用要点118 4.6instanceof运算符119 4.7Object类121 4.7.1基本作用121 4.7.2主要方法121 4.8基本类型的包装类122 4.9Java接口124 4.9.1Java接口的概念124 4.9.2Java接口的定义124 4.9.3Java接口的实现125 4.9.4Java接口类型的使用125 4.9.5Java接口与多态性126 4.9.6Java接口的深入理解127 4.10注解129 4.10.1注解简介129 4.10.2Java提供的几个基本注解129 4.11应用实例130 4.11.1Java接口的实际应用——简单工厂设计模式130 4.11.2抽象类的实际应用——模板方法设计模式133 4.12本章要点136 实践题4 137 第5章异常处理138 5.1异常概述138 5.2Java的标准异常类139 5.3异常处理机制141 5.3.1异常处理的语句结构141 5.3.2异常的抛出144 5.3.3异常的转发145 5.3.4异常处理的嵌套146 5.3.5使用trywithresource更优雅地关闭资源147 5.3.6异常处理的注意事项147 5.4自定义异常类147 5.5应用实例——先进先出(FIFO)队列148 5.6本章要点150 实践题5 151 第6章Java常用类152 6.1日期和时间操作类152 6.1.1System类152 6.1.2Date类153 6.1.3Calendar类154 6.1.4DateFormat类和SimpleDateFormat类156 6.2Math类157 6.3Random类158 6.4BigInteger类和BigDecimal类159 6.5正则表达式161 6.5.1认识正则表达式161 6.5.2正则表达式语法162 6.5.3Pattern类和Matcher类164 6.5.4String类对正则表达式的支持166 6.6定时器任务166 6.7Comparable接口和Comparator接口168 6.7.1Comparable接口168 6.7.2Comparator接口169 6.8本章要点170 实践题6170 第7章泛型与集合172 7.1泛型172 7.1.1泛型的引入172 7.1.2泛型概述174 7.1.3泛型类和泛型接口174 7.1.4泛型擦除176 7.1.5泛型通配符176 7.1.6受限泛型177 7.1.7泛型接口的实现方式178 7.1.8泛型方法178 7.2Java集合框架概述179 7.2.1Java集合类的引入179 7.2.2Java集合框架的设计179 7.3Java集合分类181 7.4Collection接口和Iterator接口181 7.5List接口及常用实现类182 7.5.1List接口182 7.5.2ArrayList类和LinkedList类183 7.6Set接口及常用实现类187 7.6.1Set接口187 7.6.2HashSet类和TreeSet类187 7.7Map接口及常用实现类192 7.7.1Map接口192 7.7.2HashMap类和TreeMap类192 7.7.3Properties类195 7.7.4集合工具类Collections类197 7.8应用实例——简单通讯录199 7.9本章要点202 实践题7202 第8章多线程203 8.1Java多线程概述203 8.2线程的创建204 8.2.1继承Thread类创建线程204 8.2.2实现Runnable接口创建线程205 8.2.3两种创建线程方法的比较206 8.3线程的状态207 8.4线程操作的相关方法207 8.4.1获取和设置线程名称208 8.4.2线程的休眠209 8.4.3线程暂时释放CPU209 8.4.4线程的优先级210 8.4.5使用join()方法211 8.4.6守护线程212 8.5多线程的互斥与同步213 8.5.1临界资源与多线程的互斥访问213 8.5.2使用synchronized关键字解决互斥问题215 8.5.3使用Lock解决互斥问题216 8.5.4集合类对象的互斥访问217 8.5.5多线程的同步218 8.6线程池221 8.7应用实例——Web服务器模拟223 8.8本章要点229 实践题8229 第9章Java I/O230 9.1流概述230 9.2字节流和字符流231 9.2.1字节流231 9.2.2字符流232 9.3文件操作233 9.3.1File类233 9.3.2文件流类236 9.3.3随机存取文件238 9.3.4使用Scanner类读取文件240 9.4缓冲流242 9.5转换流245 9.6数据流247 9.7对象序列化248 9.7.1对象序列化与Serializable接口248 9.7.2对象流类ObjectInputStream和ObjectOutputStream249 9.7.3对象序列化的注意事项250 9.8应用实例250 9.8.1文件复制250 9.8.2通讯录程序252 9.9本章要点255 实践题9 255 第10章图形用户界面257 10.1Swing组件概述257 10.2Swing容器259 10.2.1窗体类JFrame259 10.2.2面板类JPanel260 10.3布局管理器262 10.3.1流式布局管理器262 10.3.2边界布局管理器264 10.3.3网格布局管理器266 10.4事件处理267 10.4.1事件处理机制267 10.4.2事件体系结构271 10.4.3事件监听器接口272 10.4.4事件适配器类273 10.5Swing常用基本组件275 10.6应用实例——常用组件的综合实例279 10.7本章要点283 实践题10 284 第11章网络编程285 11.1网络编程基础285 11.2Java对网络通信的支持287 11.3基于URL的网络编程287 11.4基于TCP协议的网络编程290 11.4.1InetAddress类290 11.4.2Socket类和ServerSocket类292 11.4.3Socket通信编程步骤292 11.4.4简单Socket通信编程293 11.4.5多线程Socket通信编程295 11.5基于UDP协议的网络编程301 11.5.1DatagramPacket类和DatagramSocket类301 11.5.2发送和接收数据报的步骤302 11.5.3简单数据报通信编程303 11.5.4多线程数据报通信编程306 11.6应用实例——网络聊天室309 11.7本章要点316 实践题11 317 第二部分实验与课程设计 实验1Java编程基础320 实验2面向对象基础324 实验3Java常用类331 实验4集合与泛型337 实验5多线程341 实验6Java I/O 346 实验7图形用户界面设计350 实验8网络编程360 课程设计——仿QQ的文字聊天系统366 参考文献370