零基础学Java(第3版)

更多详情


内容简介: Java 7.0是Sun公司与Oracle公司合并后推出的关于Java语言的第一个版本,同时也是最新版本。本书站在零基础学习的角度,使初学者能尽快掌握Java 7.0语言程序设计的精髓而少走弯路。
《零基础学Java(第3版)》一共分为4篇,共27章,循序渐进地讲述了Java语言的语法规则,Eclipse和MyEclipse开发环境的使用,从基本概念到具体实践,从入门知识到高阶主题,从语法语义到数据结构和算法都进行了详细的阐述,主要包括运算符、表达式、分支语句、循环语句、函数、数组、字符串、类、对象、包、继承、多态、封装、枚举、反射、标注、泛型、类加载器、动态代理、多线程、文件的操作和访问、数据的操作、数据的存储、Java数据结构、XML文件的创建和解析、数据库的链接、网络编程和界面的设计等知识点。
《零基础学Java(第3版)》非常适合Java语言的初、中级学者阅读,并可作为开发人员的参考手册。

目录: 《零基础学Java(第3版)》
前言
第一篇 Java语言语法基础—面向过程知识
第1章 Java技术概览 1
1.1 Java技术 1
1.1.1 Java编程语言 1
1.1.2 Java语言平台 2
1.1.3 Java语言的功能 3
1.1.4 Java语言的优点 3
1.2 Windows下的“HelloWorld”应用程序 4
1.2.1 创建应用程序的软件环境 4
1.2.2 创建“HelloWorld”应用程序的步骤 5
1.3 深入探讨“HelloWorld”应用程序 7
1.3.1 注释源代码 7
1.3.2 实现类定义 7
1.3.3 详解main方法 8
1.4 常见疑难问题解答 8
1.4.1 环境变量设置错误 8
1.4.2 语法错误 9
1.4.3 语义错误 9
1.4.4 运行时错误 9
1.5 小结 10
1.6 实践题 11
第2章 Java开发工具及环境设置 12
2.1 Java开发工具简介 12
2.1.1 下载并安装JDK 12
2.1.2 设定环境变量 15
2.1.3 验证JDK环境是否配置成功 15
2.2 JDK内置工具 16
2.2.1 JDK常用工具 16
2.2.2 JDK常用工具实例 16
2.2.3 应用程序发布工具 17
2.3 一个简单的Java应用程序 18
2.4 一个简单的Java Applet应用程序 19
2.4.1 编写一个Applet 19
2.4.2 编写承载Applet Java程序的HTML文件 19
2.4.3 Applet的运行过程 20
2.5 注释及内嵌式文档 20
2.6 常见疑难问题解答 21
2.6.1 JDK和J2SDK的区别 21
2.6.2 Java文件扩展名是否区分大小写 22
2.7 小结 22
2.8 实践题 22
第3章 Java语言中的数据与运算符 23
3.1 数制 23
3.1.1 基本概念 23
3.1.2 Java语言中的数制表现形式 23
3.2 数据类型 24
3.2.1 整型 24
3.2.2 字符型 27
3.2.3 浮点型 27
3.2.4 布尔型 29
3.3 变量 30
3.3.1 变量的声明 30
3.3.2 变量的含义 30
3.3.3 变量的分类 30
3.4 变量如何初始化 32
3.5 常量 34
3.6 运算符 35
3.6.1 算术运算符 35
3.6.2 关系运算符 39
3.6.3 逻辑运算符 40
3.6.4 位运算符 42
3.6.5 移位运算符 44
3.6.6 赋值运算符 45
3.6.7 三元运算符 46
3.6.8 逗号运算符 47
3.6.9 转型运算符 47
3.6.10 运算符的优先级别 48
3.7 常见疑难解答 48
3.7.1 如何将十进制转换成二进制 48
3.7.2 转型运算符会引起精度问题,为什么还要使用它 48
3.8 小结 48
3.9 实践题 49
第4章 程序设计中的流程控制 50
4.1 编程风格 50
4.2 条件语句 51
4.2.1 条件语句的种类 52
4.2.2 如何使用好条件语句 56
4.3 循环语句 57
4.3.1 for循环语句 57
4.3.2 while循环 60
4.3.3 do...while语句 63
4.4 中断与继续语句 64
4.4.1 中断控制语句 64
4.4.2 继续语句 66
4.5 分支语句 67
4.6 返回语句 70
4.7 常见疑难解答 71
4.7.1 普通循环是使用for语句还是while语句 71
4.7.2 一般的程序可否用分支语句来代替条件语句 71
4.8 小结 71
4.9 实践题 71
第5章 数组 73
5.1 数组概念的引入 73
5.1.1 实例的引入 73
5.1.2 数组的概念 73
5.1.3 用实例说明数组的用处 74
5.2 基本数据类型的数组 74
5.2.1 基本类型数组的声明 74
5.2.2 基本类型数组的初始化 75
5.3 由实例引出不同数组种类及其使用 76
5.3.1 由实例引出一维数组及其使用 76
5.3.2 由实例引出二维数组及其使用 79
5.4 数组的综合实例 80
5.5 常见疑难解答 84
5.5.1 声明数组需要注意什么 84
5.5.2 数组在平时的程序代码中使用是否频繁 84
5.6 小结 84
5.7 实践题 84
第6章 字符串的处理 85
6.1 字符串的基本概念 85
6.2 字符串处理的类库种类 86
6.2.1 字符串的赋值 86
6.2.2 字符串的处理类—String 86
6.2.3 字符串处理的方法 89
6.2.4 缓冲字符串处理类—StringBuffer 97
6.2.5 缓冲字符串StringBuffer类的构造器 97
6.2.6 缓冲字符串处理的方法 98
6.2.7 缓冲字符串类的特点 102
6.3 用实例演示如何处理字符串 102
6.4 如何格式化输出 103
6.5 常见疑难解答 104
6.5.1 “equals”和“==”的区别 104
6.5.2 String类为何被定义成final约束 104
6.5.3 char类型如何转换成int类型,int类型如何转换成字符串 104
6.6 小结 105
6.7 实践题 105
第二篇 Java语言语法进阶—面向对象知识
第7章 类 107
7.1 JDK相关版本特性 107
7.1.1 什么是JDK 107
7.1.2 JDK 5的特点 107
7.1.3 JDK 6的特点 108
7.1.4 JDK 7的特点 108
7.1.5 各种JDK版本的比较 109
7.2 用比较法阐述类的概念 109
7.3 Java中已有的类 109
7.3.1 Java的数学运算处理类Math 110
7.3.2 测试时间和日期的类Date 112
7.3.3 测试日历的类GregorianCalendar 113
7.3.4 日历处理的实例解析 114
7.4 用实例分析设计一个类的流程 116
7.4.1 如何在现实程序设计中提取一个类 116
7.4.2 设置器和访问器 123
7.4.3 总结 124
7.5 常见疑难解答 124
7.5.1 类在程序语言中起到了什么作用 124
7.5.2 设置器和访问器的作用 124
7.6 小结 125
7.7 实践题 125
第8章 对象和包 126
8.1 对象 126
8.1.1 什么是对象 126
8.1.2 操作对象 127
8.1.3 初始化对象 127
8.2 对象家族中的成员 128
8.2.1 对象的成员方法 128
8.2.2 对象的成员变量 133
8.3 对象中访问控制符的重要性 133
8.3.1 什么是访问控制符 133
8.3.2 如何使用访问控制符及其重要性 136
8.4 重载 137
8.4.1 什么是重载 137
8.4.2 用实例来说明重载的意义 138
8.5 包 139
8.5.1 什么是Java中的包 140
8.5.2 如何实现包 140
8.5.3 什么是类路径和默认包 141
8.5.4 包的作用域 141
8.5.5 静态导入 142
8.6 注释及嵌入文档 143
8.6.1 如何添加注释 143
8.6.2 类、方法、字段等注释的方法 143
8.7 常见疑难解答 144
8.7.1 包在实际编程中究竟有什么作用 144
8.7.2 访问控制符在实际开发有什么作用 144
8.7.3 一个文件中定义了两个class类是否生成一个.class文件 144
8.8 小结 144
8.9 实践题 145
第9章 继承 146
9.1 什么是继承 146
9.1.1 继承的引出 146
9.1.2 继承的概念 146
9.2 如何实现继承 148
9.3 构造函数的使用 149
9.3.1 什么是构造函数 150
9.3.2 继承中构造函数的初始化 150
9.3.3 替代父类和本身的方式 151
9.3.4 Java中的单继承性 152
9.4 继承中的覆盖现象 152
9.5 类之间的关系 153
9.5.1 依赖 153
9.5.2 聚合 154
9.5.3 继承 154
9.6 继承层次图 154
9.7 如何设计好继承 155
9.8 常见疑难解答 155
9.8.1 Java不支持多继承,如何处理一个类继承多个父类的情况 155
9.8.2 如果出现了带参数的构造函数,可否不在代码中写出来 155
9.9 小结 155
9.10 实践题 155
第10章 多态 157
10.1 多态的产生 157
10.2 多态的概念 158
10.2.1 使用多态编写程序 159
10.2.2 覆盖的应用 160
10.2.3 重载与覆盖的实例对比 161
10.2.4 覆盖的多态性 162
10.2.5 传值引用和传址引用 163
10.3 通过实例熟悉多态用法 165
10.4 绑定 167
10.4.1 静态绑定 167
10.4.2 动态绑定 167
10.5 超类 167
10.5.1 什么是超类 167
10.5.2 equals方法的使用 168
10.5.3 通用编程 168
10.6 常见疑难解答 168
10.6.1 动态和静态编译是什么 168
10.6.2 绑定与多态的联系是什么 168
10.6.3 多态与重载的区别是什么 169
10.7 小结 169
10.8 实践题 169
第11章 接口与内部类 172
11.1 接口 172
11.1.1 接口概念的引入 172
11.1.2 接口的概念 172
11.1.3 接口的声明 173
11.1.4 接口的实现 173
11.1.5 接口的多重实现 178
11.1.6 接口的属性 184
11.1.7 接口的继承 184
11.1.8 接口意义 189
11.2 内部类 189
11.2.1 使用内部类来访问对象 190
11.2.2 局部内部类 192
11.2.3 静态内部类 195
11.2.4 匿名内部类 196
11.3 常见疑难解答 196
11.3.1 匿名类如何在程序中使用 196
11.3.2 接口与继承有什么区别 196
11.4 小结 196
11.5 实践题 196
第12章 抽象 198
12.1 抽象的概念 198
12.1.1 什么是抽象 198
12.1.2 抽象的综合实例 199
12.2 抽象类 201
12.2.1 什么是抽象类 202
12.2.2 抽象类的实例 202
12.3 抽象与接口的区别 207
12.4 枚举 207
12.4.1 关于枚举的实现原理 207
12.4.2 枚举的简单应用 209
12.4.3 关于枚举的高级特性 210
12.5 反射(Reflection) 212
12.5.1 关于反射的基石—Class类 212
12.5.2 关于反射的基本应用 214
12.5.3 关于反射的高级应用 219
12.6 标注 221
12.6.1 标注的简单使用 222
12.6.2 关于JDK的内置标注 223
12.7 泛型 225
12.7.1 为什么要使用泛型 225
12.7.2 关于泛型的一些特性 228
12.7.3 关于泛型的通配符 230
12.8 类加载器 232
12.8.1 什么是类加载器 232
12.8.2 什么是类加载器的委派模型 233
12.9 动态代理 235
12.9.1 什么是代理 235
12.9.2 关于动态代理基础类 236
12.9.3 关于InvocationHandler接口 240
12.9.4 动态代理类的设计模式 243
12.10 常见疑难解答 244
12.10.1 抽象类和接口在概念上有什么区别 244
12.10.2 如何从设计理念上看待抽象类和接口 245
12.11 小结 247
12.12 实践题 247
第三篇 Java语言编程主题
第13章 线程 249
13.1 线程的基本概念 249
13.1.1 进程及其使用环境 249
13.1.2 线程及其使用环境 249
13.2 线程创建 250
13.2.1 如何创建线程 250
13.2.2 通过实例熟悉如何创建线程 253
13.3 线程的使用 257
13.3.1 线程的优先级 257
13.3.2 线程的休眠与唤醒 259
13.3.3 线程让步 263
13.3.4 线程同步 264
13.3.5 同步块 266
13.3.6 同步化方法 269
13.4 实例分析 270
13.4.1 生产者与消费者的程序设计及分析 270
13.4.2 多消费者的程序设计及分析 273
13.4.3 多生产者的程序设计及分析 276
13.5 常见疑难解答 281
13.5.1 Java中线程与线程之间怎么通信 281
13.5.2 什么是进程的死锁和饥饿 281
13.5.3 什么时候会涉及线程程序 282
13.6 小结 282
13.7 实践题 282
第14章 封装 283
14.1 封装的介绍 283
14.2 在程序设计中为什么要使用封装 286
14.3 结合实例讲述如何设计封装 287
14.4 在程序设计中设计封装的注意点 292
14.5 常见疑难解答 293
14.5.1 封装在现实开发中给程序员带来什么启发 293
14.5.2 封装在实际开发中的应用有哪些 294
14.6 小结 294
14.7 实践题 294
第15章 Java输入与输出(I/O) 295
15.1 输入与输出的重要性 295
15.2 Java重要的输入输出类 295
15.3 文件或目录信息的处理 296
15.3.1 File常用的操作方法 296
15.3.2 文件处理方法的应用 297
15.3.3 文件和目录的完全处理 297
15.4 读取数据的媒介之一—流(Stream) 300
15.4.1 什么是流 300
15.4.2 什么是输入流和输出流 300
15.4.3 字节输入流及输出流 300
15.4.4 使用文件字节输入流读取文件 301
15.4.5 使用文件字节输出流输出文件 302
15.5 多字节数据读取类—Filter类 304
15.5.1 Filter流的概念 304
15.5.2 处理字节类型以外的文件输入 304
15.5.3 处理字节类型以外的文件输出 305
15.5.4 增强的多字节输出流DataOutput 306
15.5.5 增强的多字节输入流DataInput 307
15.6 读取数据的媒介之二—字符流 310
15.6.1 字符流的概念 310
15.6.2 抽象字符输入流Reader类的使用 310
15.6.3 抽象字符输出流Writer类的使用 310
15.6.4 读取带缓存的BufferedReader字符流 310
15.6.5 带缓存的字符输出流BufferedWriter类 311
15.6.6 字符输入流FileReader类和FileWriter类的使用 314
15.6.7 如何用标准输入流System.in来获取数据 316
15.6.8 打印输入流PrintWriter类与PrintStream类的区别 317
15.6.9 随机文件访问RandomAccessFile类 318
15.7 利用对象序列化控制输入输出 321
15.7.1 什么是对象序列化 321
15.7.2 基本数据和对象数据读写ObjectInput接口与ObjectOutput接口 321
15.7.3 对象序列化处理ObjectOutputStream类 321
15.7.4 对象序列化处理ObjectInputStream类 322
15.8 常见疑难解答 323
15.8.1 字节流与字符流主要的区别 323
15.8.2 输入流与输出流如何区分,各有什么作用 324
15.8.3 什么是管道流 324
15.9 小结 324
15.10 实践题 325
第16章 异常与处理及内存管理 326
16.1 异常的概念 326
16.1.1 异常的分类 326
16.1.2 异常的声明 327
16.1.3 异常的抛出 328
16.2 异常的捕获 330
16.2.1 捕获多个异常 330
16.2.2 自定义异常 332
16.3 内存的管理和回收 334
16.4 常见疑难解答 335
16.4.1 为什么要声明方法抛出异常 335
16.4.2 为什么抛出的异常一定是检查异常 335
16.5 小结 335
16.6 实践题 335
第17章 Java中对数据的处理 337
17.1 如何将基本数据类型转换为对象 337
17.1.1 为什么要将基本数据转换为对象 337
17.1.2 Wrapper类的构造函数 338
17.1.3 包装类的常用函数 339
17.1.4 基本数据的拆装箱操作(autoboxing和unboxing) 341
17.2 如何处理随机性的数据 342
17.2.1 Random类的基础知识 342
17.2.2 通过实例熟悉Random类的常用方法 343
17.3 如何对数据进行排列、整理 346
17.3.1 Arrays类的常用方法 346
17.3.2 实例分析 348
17.4 常见疑难解答 352
17.4.1 Random类函数在现实生活中有什么用处 352
17.4.2 数组的排列和整理数据在实际应用中有什么用处 352
17.5 小结 352
17.6 实践题 352
第18章 数据结构 354
18.1 数据结构接口及实现 354
18.1.1 数据结构接口的实质 354
18.1.2 用实例来熟悉数据结构接口的实现 355
18.2 Collection集合接口与Iterator迭代器接口 356
18.2.1 熟悉Collection集合接口 356
18.2.2 List链表接口和Set接口 357
18.2.3 Map映射接口 358
18.2.4 Iterator迭代器接口 359
18.2.5 通过实例来认识迭代器的实现 360
18.3 常见疑难解答 362
18.3.1 Collection集合接口和Collections集合类的区别 362
18.3.2 ArrayList数组列表类和Vector存储类的区别 362
18.3.3 HashMap散列映射和Hashtable散列表的区别 362
18.3.4 数据结构的种类有哪些 362
18.3.5 List链表接口和Set接口的区别 363
18.4 小结 363
18.5 实践题 363
第19章 Java中的数据结构 364
19.1 链表 364
19.1.1 什么是Java中的链表 364
19.1.2 用程序代码段实现对链表的添加 365
19.1.3 用程序代码段实现对链表的删除 367
19.2 数组列表类 371
19.2.1 什么是数组列表类 371
19.2.2 通过实例熟悉数组列表如何存储数据 372
19.3 散列表 376
19.3.1 什么是散列表 376
19.3.2 通过实例熟悉散列表如何存储数据 377
19.4 散列集 380
19.4.1 什么是散列集 381
19.4.2 通过实例熟悉散列集如何存储数据 381
19.5 树集 386
19.5.1 什么是树集 386
19.5.2 通过实例熟悉树集如何存储数据 387
19.6 映像 390
19.6.1 什么是映像 391
19.6.2 通过实例熟悉映像如何存储数据 391
19.7 常见疑难解答 394
19.7.1 哪些是线程安全的数据结构 394
19.7.2 Vector是什么样的数据结构 395
19.8 小结 395
19.9 实践题 396
第20章 XML基础 397
20.1 XML的产生及与HTML的比较 397
20.2 XML的编辑工具 399
20.3 XML文档 399
20.3.1 XML的声明 400
20.3.2 文档类型的声明 400
20.3.3 元素 400
20.3.4 注释 402
20.3.5 处理指令 402
20.3.6 空白处理 402
20.3.7 行尾处理 403
20.3.8 语言标识 403
20.3.9 一个简单的有关XML的实例 403
20.4 关于XML的高级知识 403
20.4.1 什么才是格式良好的XML文档 404
20.4.2 DTD文档的作用 404
20.4.3 DTD的结构 405
20.4.4 几个简单有关DTD的实例 407
20.5 关于XML文档的操作 409
20.5.1 下载Dom4J组件 410
20.5.2 安装和配置Dom4J组件 411
20.5.3 Dom4J组件的简单使用—解析XML文件 411
20.5.4 Dom4J组件的简单使用—创建XML文件 414
20.6 关于XML文档的高级操作 417
20.6.1 下载Sax类库 417
20.6.2 安装和配置Sax组件 417
20.6.3 Sax组件的简单使用——解析XML文件 418
20.7 常见疑难解答 421
20.7.1 XML与HTML的区别 421
20.7.2 XML有哪些显示数据的方式 421
20.8 小结 421
20.9 实践题 422
第21章 JDBC及其应用 423
21.1 数据库基础知识 423
21.1.1 什么是数据库 423
21.1.2 数据库的分类及功能 424
21.1.3 关系数据库的设计 424
21.1.4 数据库设计技巧 425
21.2 JDBC的基础概念 426
21.2.1 JDBC驱动程序的分类 426
21.2.2 利用Java到数据库协议方式连接数据库 427
21.2.3 利用Java到本地API方式连接数据库 428
21.2.4 利用JDBC-ODBC方式连接数据库 430
21.3 关于SQL Server 2005数据库基础操作 432
21.3.1 什么是支持SQL语言的数据库 432
21.3.2 通过SQL语言如何操作数据库 433
21.3.3 安装SQL Server 2005 434
21.3.4 高级SQL类型 437
21.3.5 使用SQL创建数据库 437
21.4 JDBC基本编程 439
21.4.1 如何建立数据库 439
21.4.2 如何操作数据库 441
21.5 关于JDBC的高级操作 446
21.5.1 什么是事务处理 446
21.5.2 事务处理的过程演练 447
21.5.3 预查询 449
21.6 常见疑难解答 450
21.6.1 操作数据库的具体步骤是什么 450
21.6.2 数据库中的视图、图表、缺省值、规则、触发器、存储过程的意义 451
21.7 小结 451
21.8 实践题 452
第22章 Swing组件与布局管理器 453
22.1 什么是Swing编程 453
22.2 MVC设计模式基础 453
22.3 简单框架设计及实例 454
22.3.1 创建一个空白的框架 454
22.3.2 创建框架的其他工作 455
22.4 简单图形按钮控件的设计及实例 456
22.4.1 Swing中的按钮控件 456
22.4.2 按钮的模型 457
22.4.3 添加按钮 457
22.4.4 如何添加单选按钮 458
22.4.5 复选按钮 460
22.4.6 ToggleButton按钮 461
22.5 简单文本输入组件的设计及实例 462
22.5.1 文本域的设计 462
22.5.2 密码域的设计 463
22.5.3 如何设计文本区 464
22.6 标签组件的设计及实例 465
22.7 选择组件的设计及实例 466
22.8 菜单的组件设计 468
22.9 对话框的种类及用法 469
22.10 复杂布局管理器的种类及用法 470
22.10.1 箱式布局的设计 470
22.10.2 网格组布局的设计 472
22.11 通过实例熟悉Swing编程 473
22.12 常见疑难解答 476
22.12.1 如何处理菜单的启用和禁用功能 476
22.12.2 如何编写快捷键的程序 476
22.13 小结 476
22.14 实践题 476
第23章 开发工具的使用 477
23.1 Eclipse简介 477
23.1.1 下载并安装Eclipse 478
23.1.2 Eclipse界面介绍 479
23.2 如何使用Eclipse进行开发 481
23.2.1 如何新建一个Java工程 481
23.2.2 如何新建一个Java的类 481
23.2.3 编写代码 482
23.3 如何使用MyEclipse进行开发 484
23.3.1 下载并安装MyEclipse 484
23.3.2 关于MyEclipse的一些常用操作 485
23.4 常见疑难解答 488
23.4.1 Eclipse和Uedit两个开发工具的优缺点 488
23.4.2 什么是IDE环境 488
23.4.3 有关Eclipse的编译报错的原因 489
23.5 小结 489
23.6 实践题 489
第24章 Applet设计 490
24.1 Applet的基本概念及生命周期 490
24.2 Applet的多媒体处理 492
24.2.1 声音处理 492
24.2.2 图像处理 493
24.3 浏览器与Applet的设计 494
24.3.1 如何将Applet嵌入浏览器 494
24.3.2 如何使用Applet类编程 494
24.3.3 如何用Applet控制浏览器 496
24.4 Applet的安全 496
24.5 一个Applet的综合实例分析 497
24.6 常见疑难解答 500
24.6.1 浏览器如何运行Applet 500
24.6.2 有关Applet无法在IE中显示问题的解答 501
24.7 小结 501
24.8 实践题 501
第25章 网络编程基础 503
25.1 网络基础知识 503
25.2 TCP与UDP 503
25.3 端口与套接字 504
25.4 TCP程序设计基础 504
25.4.1 如何设计TCP的程序 504
25.4.2 一个简单的例子 507
25.5 UDP程序设计基础 508
25.5.1 如何设计UDP的程序 508
25.5.2 一个简单的例子 508
25.6 如何设计网络程序 510
25.6.1 单向通信综合实例 510
25.6.2 双向通信综合实例 512
25.7 常见疑难解答 515
25.7.1 TCP和UDP的区别 515
25.7.2 什么是TCP/IP协议?分为几层?协议有什么功能? 516
25.8 小结 517
25.9 实践题 517
第四篇 Java语言程序设计实例与面试题剖析
第26章 学校管理系统 519
26.1 开发背景 519
26.2 需求分析 519
26.3 登录界面的设计 520
26.3.1 登录界面的分析 520
26.3.2 登录界面的代码实现 520
26.3.3 登录界面的实现 522
26.4 主界面的设计 523
26.4.1 主界面类的分析 524
26.4.2 主菜单界面类的代码 524
26.4.3 主菜单界面类的实现 532
26.5 数据库系统的设计 533
26.5.1 数据库中表的创建 533
26.5.2 数据库中代码段 537
26.6 学生信息系统界面的设计 538
26.6.1 学生类的设计 538
26.6.2 储存类的设计 539
26.6.3 学生信息界面的设计 541
26.7 教师信息系统界面的设计 549
26.7.1 教师类的设计 549
26.7.2 储存类的设计 551
26.7.3 教师信息界面的设计 553
26.8 领导信息系统界面的设计 562
26.8.1 领导类的设计 562
26.8.2 储存类的设计 563
26.8.3 领导信息界面的设计 564
26.9 小结 572
第27章 面试题 573
面试题1 Java的引用和C++的指针有什么区别 573
面试题2 类和对象有什么区别 574
面试题3 说明private、protected、public和default的区别 575
面试题4 Java可以用非0来代表true吗 576
面试题5 StringBuffer和StringBuilder存在的作用是什么 576
面试题6 二维数组的长度是否固定 577
面试题7 符合什么条件的数据集合可以使用foreach循环 578
面试题8 如何序列化和反序列化一个Java对象 579
面试题9 如何使用Java的线程池 579
面试题10 如何利用反射实例化一个类 580
面试题11 TCP协议的通信特点是什么 580
面试题12 请简述JDBC操作数据库的编程步骤 580
面试题13 如何使用连接池技术 580
面试题14 简述接口和抽象类的区别 580
面试题15 如何理解Java中的装箱和拆箱 580
面试题16 根据代码判断创建的对象个数 581
面试题17 分析循环程序的运行结果 582
面试题18 可以返回最大值的方法 583
面试题19 关于垃圾回收的疑问 583
面试题20 线程问题:找出代码中的错误 584
面试题21 关于ArrayList、Vector、LinkedList的问答题 584

前言: Java是Sun公司推出的程序设计语言,拥有面向对象、跨平台、分布式、高性能、可移植等优点和特性,是目前应用最广的编程语言之一。Java语言不仅可以制作网站后台,而且还能够操作各种操作系统;不仅可以应用到多媒体开发,而且还可以制作大型网络游戏;同时目前最流行的手机操作系统Android也是在Linux内核的基础上通过Java语言实现的。
本书的目的是让读者对Java语言语法有更进一步的了解,尤其为新手进入编程行业提供一个全面学习的阶梯。笔者结合自己多年的学习和编程经验,为广大程序员详细介绍了Java 7.0的全部语法,使Java程序员能够提高自己的基础知识、完善自己的知识结构、扩展自己的知识面。
在讲解知识点时,笔者采用从无到有、由浅入深的逐级递进学习方式。本书是Java语言初、中级学者的绝佳入门指南。
本书特色
本书详尽介绍了Java 7.0语法的特点和Eclipse、MyEclipse的编程环境,在组织与取材方面尽量让读者能够正确、全面地掌握该语言的优势,建立牢固的知识体系,当Java新版本出现时,能够有能力欣赏与感悟新版本所带来的激动人心的变化。通过对本书的学习,任何想用Java语言做项目的开发人员都能够有所获益。本书语言简练、循序渐进,示例简洁明了、易于学习。
本书的特点主要体现在以下几个方面。
·本书的编排采用由浅入深、循序渐进的方式,每章主题鲜明、要点突出,适合初级、中级学者逐步掌握Java的语法规则和面向对象编程思想。
·本书对Eclipse和MyEclipse编译环境的各种应用都做了详细的介绍,适合初、中级学者快速熟悉并使用该编程环境。
·实例丰富,关键知识点都辅以实例帮助读者理解。实例程序简洁,不是简单的代码罗列,而是采用短小精练的代码紧扣所讲的技术细节,并配以详细的代码解释和说明,使读者印象深刻,理解透彻。
·实例可移植性强,与编译环境和平台无关,读者可轻易将代码复制到自己的机器上进行实验,自行实践和演练,直观体会所讲要点,感受Java语言无限魅力。书中所有实例的源代码都附在随书光盘中,方便读者使用。
·结构清晰、内容全面,几乎兼顾了Java 7.0所有的语言特性。
·本书结合笔者多年的Java语言编程和系统开发经验,特别标注出易出错的技术点或初学者易误解的细节,读者在学习中可少走弯路,加快学习进度。
·很多Java语言书籍只讲语法规则,不讲数据结构和编程思想,读者即便掌握了语法理论,也无法写出大型的Java语言程序,本书介绍了数据结构和算法的知识,阐述了结构化程序设计的思想,探讨了高质量编程的内容,为读者进一步学习软件开发打下基础。
本书内容
本书分为4篇,共27章,结合目前最新软件编程环境,全方位介绍了Java 7.0的编程思想及特色。本书从Java语言的语法知识讲起,使读者对Java语言语法和编程机制有个初步的了解。如果将编写Java语言程序比作盖房子,语法知识就相当于砖瓦水泥。接着进一步介绍了Java语言编程中常用的操作,即Java语言编程主题,一些深层次的技术细节,以及理解起来比较困难、易出错的要点。最后结合笔者的开发经验详细讲解了一个案例和一些面试技巧。
第一篇(第1章~第6章)Java语言语法基础—面向过程知识
讲述了Java语言语法基础知识,包含面向过程涉及的所有语法:Java技术概览、Java开发工具及环境设置、Java语言中的数据与运算符、程序设计中的流程控制、数组和字符串处理。读者通过学习本篇可对Java语言面向过程语法有个初步而全面的认识,了解Java语言的由来及强大功用,明确Java源文件的编译和运行过程,熟悉Java语言程序的结构,知道如何声明变量,如何通过三大流程控制语句组织程序。学完本篇读者便可自行编写简单的Java语言程序。
第二篇(第7章~第12章)Java语言语法进阶—面向对象知识
Java语言之所以被称为一种高级语言,因为它实现了面向对象思想,它具有关于面向对象的语法。本篇从如何设计类、创建对象和组织包讲起,介绍了这些概念的详细语法。然后重点讲解了如何通过Java语言实现面向对象思想的三大特性:继承、多态和封装。学完本篇才算真正了解了Java语言的语法。
第三篇(第13章~第25章)Java语言编程主题
在开发具体Java语言程序时,经常会进行一些常用操作,例如:文件的操作和访问、异常处理和内存管理、数据的存储和操作、XML文件的创建和解析、数据库的连接、网络编程和界面的设计。本篇通过12章的内容详细介绍了上述编程主题,学完本篇读者可以迅速地开发出Java语言程序。
第四篇(第26章和第27章)Java语言程序设计实例与面试题剖析
本篇的目的是让读者掌握Java语言开发案例和实践项目,虽然这里只提供了学校管理系统项目的开发,但读者重点掌握的是Java语言的语法和项目开发流程,最后一章通过一些常见的Java语言面试题,为读者踏入职场做好准备。
本书读者对象
本书作为Java语言的基础教程,适合于:
·希望进入Java编程行业的新手;
·迫切希望提高个人编程技能和水平的初级程序人员;
·具备一定编程经验但是语法基础不牢固的工程师;
·希望了解Java语法最新变化的程序人员;
·希望了解和使用Eclipse和MyEclipse工具的程序人员;
·需要一本案头必备查询手册的人员。
本书作者
本书由常建功主编,其他参与编著和资料整理的人员有冯华君、刘博、刘燕、叶青、张军、张立娟、张艺、彭涛、徐磊、戎伟、朱毅、李佳、李玉涵、杨利润、杨春娇、武鹏、潘中强、王丹、王宁、王西莉、石淑珍、程彩红、邵毅、郑丹丹、郑海平、顾旭光。
作 者
2012年1月

书摘: 第1章 Java技术概览
Java是一种出色的面向对象跨平台编程语言。在当今的软件领域几乎无处不见Java语言活跃的身影,然而Java语言究竟是什么,本章将从两个方面解释Java的“身世”。Java既是一种编程语言,也是一个软件平台。本章还将从多个方面分析Java到底能为我们做什么。
本章重点:
Java语言的功能和特点。
学习创建简单的Java程序。
学会处理常见的Java编译错误。
1.1 Java技术
Java既是编程语言也是软件平台,作为编程语言的Java有一套自己的机制,实现源程序到处理器可执行程序间的过渡与转换,作为软件平台,Java为程序员提供了编程接口和Java虚拟机(Java Virtual Machine,JVM),下面将依次介绍。 1.1.1 Java编程语言Java作为一种高级语言具有许多优良特性,如跨平台、面向对象、分布式、多线程、安全性、健壮性、简单性等。这些优良的特性在读者学习完本书后会深有体会。
在Java语言中的所有源代码都可以通过无格式的记事本编写,并保存为.Java文件,因为通过该扩展名,Java编译器会知道该文件是自己可以处理的文件。经过编译后的文件为.class文件,该文件是字节码文件,此时.class文件不能被处理器直接读取执行,必须通过虚拟机转换成二进制文件后,才可以被处理器执行。图1.1是Java程序的开发过程,整个过程说明了上面叙述的内容。
Java是跨平台的高级编程语言,这里的平台是指操作系统平台,如Windows、Unix、Mac、Linux等。使用Java语言编写的程序一次编译就可以在所有上述平台上运行,就是因为有Java虚拟机的存在。Sun提供了在各种操作系统平台上运行安装的Java虚拟机,虚拟机都可以执行.class文件。这样也就实现了众所周知的“一次编译,随处运行”的理想。
……