读书人

Java开发技术大全(附光盘1张)

发布时间: 2010-02-16 23:58:22 作者:

 Java开发技术大全(附光盘1张)


基本信息出版社:清华大学出版社
页码:888 页
出版日期:2009年02月
ISBN:7302192138/9787302192138
条形码:9787302192138
版本:第1版
装帧:平装
开本:16
正文语种:中文
丛书名:原创经典程程序员典藏

内容简介 Java是目前最为流行的程序设计语言。《Java开发技术大全》以J2SE为平台全面介绍了Java的基础知识和常用技术。《Java开发技术大全》共分为8篇,首先讲述了Java的基础语法,然后介绍了Java中类和对象的实现,这也是Java的核心所在。随后介绍了Java中的高级技术,详细讨论了其中的多线程、集合、泛型、RTTI等。这些基本知识介绍完毕之后,就进入到实际编程阶段,先后介绍了GUI程序设计、多媒体程序设计、数据库和网络程序设计,这些知识均以示例程序来讲解。最后提供了一个完整的即时通讯软件设计实例,让读者能够从实例中学习程序设计的真谛。
《Java开发技术大全》内容全面,实例丰富,特别适合于自学者。《Java开发技术大全》可作为计算机、软件工程专业的教材,也可作为Java程序员的参考手册。
编辑推荐 根据作者十多年的教学经验和软件开发经验总结而来,全方位解读Java语言基础知识、高级技术和应用开发。
  由多年Java教学经验和开发经验的人员全力打造,每个技术点都配有典型实例进行讲解,非常容易掌握,对学习中容易犯的错误给出了明确的提示,让你少走弯路,程序代码按软件工程的规范编写,培养良好的编程习惯,所有实例都经过了仔细调试,确保可以正常运行,提供450个示例、6个小案例、1个大案例,可作为案头必备的查询手册。
  一线开发人员全力打造,分享技术盛宴!
  重点内容及特色:
  《Java开发技术大全》全面介绍了、Java语言的基础知识和应用开发技术,基本涵盖了J2SE的各方面。对基础知识的介绍深入、Java语言的核心,对实用技术的介绍则紧密联系实际开发。
  《Java开发技术大全》对Swing包、实用工具类、集合、泛型等内容的介绍全面而深入,已经出版的同类图书很少有如此透彻介绍这些内容的。
  《Java开发技术大全》讲解深入浅出,由易到难,循序渐进,书中的每个知识点和技术都采用了例程讲解为主,理论分析为辅的方式进行介绍。
  《Java开发技术大全》举例时尽量避免复杂的数据结构和算法设计,每个例子都着重于Java知识点本身,做到浅显易懂。对于初学者容易犯的错误,都有明显的提示。
  和国外的一些经典图书相比,《Java开发技术大全》门槛低,讲述符合中国人的思维,更容易理解。另外,《Java开发技术大全》如此大量的实例在国外的经典图书中是很难见到的。
  读者对象:想要全面学习Java语言的人员,具备一定自学能力的Java编程爱好者,Java培训班的培训学员和老师,想了解Java中高级开发技术的人员,需要一本案头必备查询手册的程序员。
目录
第1篇 Java基础知识入门
第1章 Java的开发运行环境2
1.1 Java的运行环境与虚拟机2
1.2 Java的开发环境4
1.2.1 JDK的安装4
1.2.2 如何设置系统环境变量6
1.2.3 编译命令的使用8
1.2.4 解释执行命令的使用10
1.2.5 UltraEdit的使用11
1.3 一个简单的Java应用程序14
1.4 一个简单的Java小程序16
1.5 本章小结18

第2章 Java语言基础19
2.1 Java语言的特点19
2.2 Java程序的构成21
2.3 数据类型23
2.3.1 基本数据类型23
2.3.2 常量25
2.3.3 变量26
2.3.4 整型数据27
2.3.5 浮点型数据29
2.3.6 字符型数据30
2.3.7 布尔型数据32
2.3.8 变量赋初值33
2.3.9 变量的作用域34
2.3.10 数据类型转换34
2.4 运算符与表达式37
2.4.1 算术运算符和算术表达式38
2.4.2 关系运算符和关系表达式43
2.4.3 逻辑运算符和逻辑表达式44
2.4.4 条件运算符和条件表达式48
2.4.5 位运算符和位运算表达式50
2.4.6 赋值运算符和赋值表达式53
2.4.7 表达式的求值顺序55
2.5 流程控制语句58
2.5.1 三种基本控制结构58
2.5.2 表达式语句和空语句59
2.5.3 块语句60
2.5.4 if~else分支语句61
2.5.5 多路分支switch~case语句69
2.5.6 当型循环while语句71
2.5.7 直到型循环do~while语句72
2.5.8 当型循环for语句74
2.5.9 循环的嵌套78
2.5.10 跳转语句break80
2.5.11 跳转语句continue82
2.6 程序文本的风格84
2.6.1 注释84
2.6.2 程序的格式编排87
2.7 基础语法实战演习88
2.7.1 判断闰年88
2.7.2 求最大公约数和最小公倍数89
2.7.3 Fibonacci数列90
2.7.4 逆向输出数字91
2.7.5 求水仙花数92
2.7.6 输出图形93
2.7.7 输出九九口诀表94
2.8 本章小结95

第2篇 Java面向对象编程
第3章 对象和类98
3.1 面向对象的基本概念98
3.1.1 对象98
3.1.2 类99
3.1.3 消息101
3.1.4 面向对象的4个基本特征101
3.2 类与对象104
3.2.1 类的基本结构104
3.2.2 类的声明104
3.2.3 创建类体105
3.2.4 对象的生命周期106
3.2.5 对象的创建106
3.2.6 对象的使用108
3.2.7 对象的释放和垃圾收集机制108
3.3 成员变量的定义与使用109
3.3.1 成员变量的定义109
3.3.2 成员变量的访问权限110
3.3.3 实例成员变量和静态成员变量114
3.4 方法的定义和实现116
3.4.1 方法的声明117
3.4.2 创建方法体与return语句117
3.4.3 局部变量和成员变量的区别119
3.4.4 方法的访问权限121
3.5 方法的调用121
3.5.1 方法调用的形式121
3.5.2 方法调用的参数123
3.5.3 隐含参数this127
3.6 构造方法128
3.6.1 无参数构造方法的定义和使用129
3.6.2 带参数构造方法的定义和使用131
3.6.3 this关键字和构造方法的调用132
3.7 静态方法133
3.7.1 静态方法的声明和定义134
3.7.2 静态方法和实例方法的区别134
3.7.3 静态代码块136
3.7.4 再论静态成员变量137
3.8 main()方法和命令行参数139
3.9 结束方法141
3.10 本地方法141
3.11 本章小结144

第4章 继承与多态145
4.1 继承的基本原理145
4.2 子类对父类的继承146
4.3 属性隐藏和方法的覆盖148
4.3.1 属性的隐藏148
4.3.2 方法的覆盖151
4.4 构造方法的继承154
4.5 super的使用156
4.5.1 用super引用父类的成员156
4.5.2 使用super调用父类的构造方法157
4.6 继承的内部处理158
4.7 多态的基本概念159
4.8 重载159
4.8.1 普通方法的重载160
4.8.2 构造方法的重载161
4.8.3 重载的解析163
4.8.4 重载与覆盖的区别165
4.9 运行时多态165
4.9.1 实例方法的运行时多态165
4.9.2 成员变量运行时的表现167
4.9.3 静态方法运行时的表现169
4.10 抽象类与抽象方法170
4.10.1 抽象方法的声明170
4.10.2 抽象类的定义170
4.10.3 抽象方法与回调函数171
4.11 最终类与最终方法173
4.12 接口与多重继承174
4.12.1 接口的定义174
4.12.2 接口的继承175
4.12.3 接口的实现177
4.13 内部类179
4.13.1 内部类的定义179
4.13.2 内部类访问外部类的成员182
4.13.3 内部类之间的相互使用185
4.13.4 在外部使用内部类186
4.13.5 匿名内部类187
4.13.6 内部类的作用188
4.14 包189
4.14.1 包的创建189
4.14.2 包的使用191
4.14.3 JAR文件的创建和使用193
4.14.4 JDK中的常用包195
4.15 本章小结196

第3篇 Java数据处理
第5章 数组与字符串200
5.1 数组200
5.1.1 一维数组的声明200
5.1.2 一维数组的创建201
5.1.3 一维数组的使用202
5.1.4 二维数组的声明204
5.1.5 二维数组的创建205
5.1.6 二维数组的使用207
5.1.7 for~each循环208
5.1.8 应用程序示例1——数组排序209
5.1.9 应用程序示例2——杨辉三角212
5.2 字符串213
5.2.1 String对象的声明213
5.2.2 String对象的创建214
5.2.3 String对象的使用214
5.2.4 String类型的数组216
5.2.5 StringBuffer对象的声明217
5.2.6 StringBuffer对象的创建217
5.2.7 StringBuffer对象的使用218
5.3 本章小结219

第6章 Java的异常处理220
6.1 异常的基本概念和作用220
6.2 Java的异常处理机制221
6.3 异常类的层次结构222
6.3.1 运行时异常222
6.3.2 检查型异常223
6.3.3 自定义异常224
6.4 捕获和处理异常224
6.5 抛出异常228
6.6 try-catch-finally语句的嵌套231
6.7 用户自定义异常234
6.8 使用异常来实现键盘输入235
6.9 本章小结236

第7章 Java的输入和输出237
7.1 文件和输入输出流237
7.2 InputStream类和OutputStream类的使用238
7.2.1 InputStream中的方法238
7.2.2 OutputStream中的方法239
7.2.3 文件输入流FileInputStream239
7.2.4 文件输出流FileOutputStream239
7.2.5 保存用户输入到文件240
7.2.6 显示文件内容241
7.2.7 文件的复制243
7.2.8 顺序输入流244
7.2.9 管道输入输出流246
7.2.10 过滤输入输出流248
7.3 Reader和Writer类使用249
7.3.1 InputStreamReader类中的方法249
7.3.2 OutputStreamWriter类中的方法250
7.3.3 从键盘输入250
7.3.4 文件复制251
7.4 文件属性处理252
7.4.1 File类中的方法252
7.4.2 File类使用示例——文件列表253
7.5 随机访问文件254
7.5.1 RandomAccessFile类中的方法254
7.5.2 RandomAccessFile类使用示例——文件加密256
7.6 控制台输入和输出257
7.6.1 控制台输入类Scanner257
7.6.2 格式化输出printf258
7.7 序列化261
7.8 本章小结264

第4篇 Java中的高级技术
第8章 Java的多线程机制266
8.1 线程的概念266
8.1.1 多线程的特点266
8.1.2 线程的状态267
8.2 Thread类268
8.2.1 Thread类的构造方法268
8.2.2 Thread类的常用方法268
8.3 多线程程序的编写269
8.3.1 利用Thread的子类创建线程270
8.3.2 实现Runnable接口创建线程272
8.3.3 使用isAlive()和join()等待子线程结束273
8.3.4 设置线程优先级275
8.4 线程的通信与协调277
8.4.1 线程的互斥277
8.4.2 线程的同步279
8.4.3 暂停、恢复和停止线程282
8.4.4 生产者-消费者问题实例284
8.5 本章小结287

第9章 运行时类型识别288
9.1 RTTI的作用288
9.2 用Class类来加载对象289
9.3 使用getClass()方法获取类信息290
9.4 使用类标记292
9.5 使用关键字instanceof判断所属类292
9.6 利用反射获取运行时类信息293
9.6.1 使用isInstance()方法判断所属类294
9.6.2 获取成员方法信息295
9.6.3 获取构造方法信息296
9.6.4 获取类的成员属性297
9.6.5 根据方法的名称来执行方法299
9.6.6 创建新的对象300
9.6.7 改变属性的值301
9.6.8 使用数组301
9.7 本章小结303

第10章 泛型304
10.1 泛型的本质304
10.2 一个关于泛型的简单例子305
10.3 带两个类型参数的泛型类308
10.4 有界类型309
10.5 通配符参数311
10.6 泛型方法313
10.7 泛型接口315
10.8 泛型类的继承317
10.8.1 以泛型类为父类317
10.8.2 以非泛型类为父类319
10.8.3 运行时类型识别320
10.8.4 强制类型转换321
10.8.5 继承规则322
10.9 擦拭323
10.10 擦拭带来的错误324
10.10.1 静态成员共享问题325
10.10.2 重载冲突问题325
10.10.3 接口实现问题326
10.11 泛型的局限326
10.11.1 不能使用基本类型326
10.11.2 不能使用泛型类异常326
10.11.3 不能使用泛型数组327
10.11.4 不能实例化参数类型对象327
10.12 本章小结328

第11章 集合329
11.1 集合接口与抽象类329
11.1.1 Collection接口330
11.1.2 Iterator接口330
11.1.3 AbstractCollection抽象类331
11.1.4 几个常用术语332
11.2 集合类的使用333
11.2.1 顺序表(ArrayList)使用示例333
11.2.2 链表(LinkedList)使用示例336
11.2.3 优先队列(PriorityQueue)使用示例340
11.2.4 哈希集合(HashSet)使用示例343
11.2.5 哈希映射类(HashMap)使用示例347
11.2.6 有序树(TreeSet)使用示例349
11.2.7 有序树映射类(TreeMap)使用示例353
11.2.8 枚举(Enum)使用示例355
11.2.9 枚举集(EnumSet)使用示例358
11.3 常用算法361
11.3.1 Collections中的简单算法361
11.3.2 排序362
11.3.3 二分查找364
11.4 遗留的类和接口366
11.4.1 Enumeration接口简介366
11.4.2 向量类(Vector)使用示例367
11.4.3 栈(Stack)使用示例369
11.4.4 字典—ictionary)简介370
11.4.5 哈希表(Hashtable)简介371
11.5 本章小结371

第12章 类型包装器、自动装箱和元数据(注释)372
12.1 类型包装器372
12.1.1 字符类型包装器372
12.1.2 布尔类型包装器373
12.1.3 数字类型包装器373
12.2 自动装/拆箱375
12.2.1 自动装箱与方法375
12.2.2 表达式中的自动装/拆箱376
12.2.3 布尔型和字符型包装器的自动装/拆箱378
12.3 元数据378
12.3.1 注释的基础知识379
12.3.2 指定一个保留策略380
12.3.3 使用反射在运行时获得注释380
12.3.4 AnnotatedElement接口383
12.3.5 使用默认值383
12.3.6 标记注释384
12.3.7 单成员注释385
12.3.8 内置注释386
12.3.9 使用注释的一些限制390
12.4 本章小结390

第13章 常用工具类391
13.1 Runtime类的使用391
13.1.1 内存管理392
13.1.2 执行其他程序393
13.2 System类的使用395
13.2.1 利用currentTimeMillis()记录程序执行的时间395
13.2.2 利用exit()退出虚拟机396
13.2.3 获取和设置环境属性397
13.3 Math类的使用398
13.3.1 利用随机数求π值398
13.3.2 利用三角函数求π值400
13.3.3 利用换底公式求任意对数值401
13.3.4 使用取整函数401
13.4 Random类的使用402
13.5 Date类和Calendar类的使用404
13.5.1 Date类的简单使用404
13.5.2 使用SimpleDateFormat格式化输出时间405
13.5.3 Calendar类的特色408
13.5.4 利用GregorianCalendar输出日历411
13.6 Formatter类的使用413
13.6.1 Formatter的简单使用413
13.6.2 时间格式转换符详解415
13.6.3 格式说明符语法图417
13.7 正则表达式417
13.7.1 正则表达式的作用418
13.7.2 正则表达式的基本规则418
13.7.3 正则表达式中的一些高级规则421
13.7.4 正则表达式中的其他通用规则424
13.7.5 使用技巧425
13.8 Pattern类的使用426
13.9 Matcher类的使用428
13.9.1 匹配方法的使用429
13.9.2 替换方法的使用430
13.9.3 组匹配的使用431
13.9.4 检验E-mail的合法性432
13.10 本章小结434

第5篇 桌面程序开发
第14章 GUI程序设计436
14.1 GUI程序设计的基本概念436
14.1.1 组件437
14.1.2 布局管理437
14.1.3 事件处理437
14.2 开发工具Eclipse简介438
14.2.1 Eclipse的安装与配置438
14.2.2 用Eclipse创建一个项目440
14.3 AWT组件简介444
14.3.1 AWT组件的层次结构445
14.3.2 AWT中的基本组件和子包446
14.3.3 AWT组件通用属性与方法448
14.3.4 使用AWT编制GUI程序示例449
14.4 事件处理452
14.4.1 授权事件模型452
14.4.2 事件453
14.4.3 事件源453
14.4.4 事件监听器和适配器454
14.4.5 编写事件处理程序的基本方法454
14.4.6 响应窗口关闭事件处理示例454
14.4.7 事件监听器接口和适配器类456
14.4.8 作为参数的事件类456
14.4.9 处理多个事件的例子463
14.5 Swing组件的特性467
14.5.1 Swing组件的优势467
14.5.2 Swing组件的体系结构468
14.5.3 使用Swing组件编写GUI的层次结构468
14.6 顶层容器469
14.6.1 框架类(JFrame)使用示例469
14.6.2 小应用程序(JApplet)使用示例472
14.6.3 对话框(JDialog)使用示例473
14.7 中间容器476
14.7.1 面板(JPanel)使用示例476
14.7.2 滚动面板(JScrollPane)使用示例480
14.7.3 分隔板(JSplitPane)使用示例482
14.7.4 选项板(JTabbedPane)使用示例485
14.7.5 工具栏(JToolBar)使用示例486
14.8 常用组件488
14.8.1 标签(Jlabel)使用示例488
14.8.2 按钮(JButton)使用示例491
14.8.3 文本框(JTextField)和密码框(JPasswordField)使用示例492
14.8.4 文本区(JTextArea)使用示例496
14.8.5 复选框(JcheckBox)使用示例498
14.8.6 单选按钮(JradioButton)使用示例500
14.8.7 列表框(JList)使用示例502
14.8.8 组合框(JComboBox)使用示例506
14.8.9 表格(Jtable)使用示例508
14.8.10 树(JTree)使用示例518
14.8.11 菜单使用示例523
14.9 布局管理527
14.9.1 流式布局(FlowLayout)回顾527
14.9.2 边框布局(BorderLayout)使用示例528
14.9.3 网格布局(GridLayout)使用示例529
14.9.4 卡片布局(CardLayout)使用示例530
14.9.5 增强网格布局(GridBagLayout)使用示例532
14.9.6 Swing新增的布局管理535
14.10 GUI程序设计实例1——色盲检测536
14.10.1 界面的实现536
14.10.2 “开始”按钮的事件处理538
14.10.3 “确定”按钮的事件处理539
14.10.4 滚动条的事件处理539
14.10.5 完整的程序539
14.11 GUI程序设计实例2——小闹钟542
14.11.1 程序界面的实现543
14.11.2 时间的刷新代码544
14.11.3 JRadioButton的事件响应代码545
14.11.4 “确定”按钮的事件响应代码546
14.11.5 “取消”按钮的事件响应代码548
14.11.6 完整的程序548
14.12 GUI程序设计实例3——字体选择对话框553
14.12.1 界面的实现554
14.12.2 监听ListSelectionEvent事件556
14.12.3 按钮响应事件556
14.12.4 对话框的显示557
14.12.5 返回用户选择的字体557
14.12.6 如何使用字体选择对话框557
14.13 GUI程序设计实例4——记事本558
14.13.1 增加弹出式菜单558
14.13.2 “退出”菜单的响应代码559
14.13.3 覆盖JFrame的processWindowEvent方法560
14.13.4 监听JTextArea的DocumentEvent事件560
14.13.5 “另存为...”菜单的响应代码561
14.13.6 “保存”菜单的响应代码563
14.13.7 “新建”菜单的响应代码564
14.13.8 “打开...”菜单的响应代码564
14.13.9 “打印...”菜单的响应代码566
14.13.10 “剪切”菜单的响应代码568
14.13.11 “复制”菜单的响应代码569
14.13.12 “粘贴”菜单的响应代码569
14.13.13 “全选”菜单的响应代码569
14.13.14 “时间/日期”菜单的响应代码570
14.13.15 “自动换行”菜单的响应代码570
14.13.16 “查找...”菜单的响应代码570
14.13.17 “设置字体...”菜单的响应代码572
14.13.18 完整的程序573
14.14 本章小结583

第15章 多媒体程序设计584
15.1 声音文件的播放584
15.1.1 在Applet中使用AudioClip播放声音585
15.1.2 在Application中播放声音586
15.1.3 利用JavaSound API播放声音588
15.2 基本图形处理594
15.2.1 画直线594
15.2.2 画矩形596
15.2.3 画椭圆和圆弧597
15.2.4 画多边形598
15.2.5 封闭图形的填充599
15.2.6 缩放图形601
15.3 特效处理602
15.3.1 颜色处理的基本知识602
15.3.2 淡入淡出效果603
15.3.3 透明效果604
15.3.4 盖房子特效607
15.4 处理字体611
15.4.1 Font类中的方法611
15.4.2 确定可用字体612
15.4.3 创建和使用字体613
15.4.4 自行管理字体615
15.4.5 字体特效显示618
15.5 图像的显示620
15.5.1 标准的图像显示620
15.5.2 显示局部图像622
15.5.3 图像缩放623
15.5.4 灰度变换623
15.5.5 一个简单的图片浏览器625
15.5.6 合成两幅图片628
15.5.7 光照特效631
15.6 视频文件的播放635
15.6.1 JMF中的常用术语635
15.6.2 播放器实例637
15.7 本章小结640

第6篇 数据库程序设计
第16章 数据库的预备知识642
16.1 关系型数据库642
16.1.1 关系型数据库的结构642
16.1.2 用Access建立一个数据库643
16.2 SQL基础648
16.2.1 创建数据库649
16.2.2 创建数据表649
16.2.3 建立索引650
16.2.4 更改数据表结构651
16.2.5 删除数据表652
16.2.6 增加记录653
16.2.7 更新记录653
16.2.8 删除记录654
16.2.9 查询记录654
16.2.10 连接表658
16.2.11 使用统计函数659
16.3 本章小结660

第17章 Java对数据库编程661
17.1 Java对数据库的连接661
17.1.1 JDBC的基本概念661
17.1.2 JDBC的工作方式661
17.1.3 JDBC驱动连接662
17.1.4 连接池664
17.1.5 事务操作665
17.2 Java对数据库的操作667
17.2.1 常用接口及类667
17.2.2 建立数据库连接669
17.2.3 关闭数据库连接670
17.2.4 添加新数据670
17.2.5 删除数据674
17.2.6 修改数据675
17.2.7 查询数据676
17.3 学生信息管理系统实例679
17.3.1 程序设计思路679
17.3.2 几个相关标记680
17.3.3 程序界面设计680
17.3.4 打开数据库682
17.3.5 关闭数据库683
17.3.6 显示数据到控件中683
17.3.7 几个辅助方法684
17.3.8 “第一条”按钮事件响应代码684
17.3.9 “前一条”按钮事件响应代码685
17.3.10 “后一条”按钮事件响应代码686
17.3.11 “最后一条”按钮事件响应代码686
17.3.12 “增加记录”按钮事件响应代码687
17.3.13 “保存记录”按钮事件响应代码687
17.3.14 “编辑记录”按钮事件响应代码688
17.3.15 “取消改变”按钮事件响应代码689
17.3.16 “删除记录”按钮事件响应代码690
17.3.17 actionPerformed()方法690
17.4 本章小结691

第7篇 Java网络程序开发
第18章 C/S网络程序设计694
18.1 与网络相关的常用术语694
18.1.1 TCP/IP协议694
18.1.2 IP地址694
18.1.3 域名695
18.1.4 服务器695
18.1.5 客户机695
18.1.6 套接字695
18.1.7 端口696
18.1.8 URL696
18.2 InetAddress类使用示例696
18.2.1 根据域名查找IP地址697
18.2.2 根据IP地址查找主机名698
18.3 URL类和URLConnection类的使用698
18.3.1 URL类的使用——一个简单的浏览器699
18.3.2 URLConnection类的使用——文件下载701
18.4 Socket的使用703
18.4.1 客户端创建Socket对象703
18.4.2 服务器端创建ServerSocket对象704
18.4.3 示例程序1——一对一的通讯704
18.4.4 示例程序2——一对多的通讯707
18.4.5 示例程序3——简单的聊天程序709
18.5 UDP数据报通信713
18.5.1 DatagramSocket的使用方法713
18.5.2 DatagramPacket的使用方法714
18.5.3 示例程序——用UDP实现的聊天程序714
18.6 本章小结718

第19章 JSP程序设计719
19.1 基本概念719
19.1.1 动态网站开发技术719
19.1.2 JSP技术特点721
19.1.3 JSP与Servlet的关系722
19.2 JSP运行环境724
19.2.1 Tomcat简介724
19.2.2 Tomcat的安装和启动725
19.2.3 部署自己的网站727
19.2.4 一个简单的JSP程序728
19.3 JSP的指令729
19.3.1 页面指令(page)730
19.3.2 包含指令(include)732
19.3.3 标签库指令(taglib)732
19.4 JSP的脚本元素733
19.4.1 HTML注释733
19.4.2 隐藏注释734
19.4.3 变量和方法的声明734
19.4.4 表达式735
19.4.5 嵌入网页中的程序段(Scriptlet)735
19.5 JSP的标准操作736
19.5.1 重定向操作()736
19.5.2 包含操作()737
19.5.3 嵌入插件()738
19.5.4 创建Bean实例()740
19.5.5 设置Bean属性()741
19.5.6 获取Bean属性()742
19.6 JSP的隐含对象743
19.6.1 page对象简介743
19.6.2 config对象简介743
19.6.3 利用out对象输出结果到网页743
19.6.4 利用request对象获取用户数据744
19.6.5 利用response对象清除网页缓存748
19.6.6 利用session对象检测用户749
19.6.7 利用application对象获取容器版本752
19.6.8 利用pageContext对象获取页面属性753
19.6.9 利用exception对象处理异常755
19.7 JavaBeans介绍756
19.7.1 JavaBeans的属性756
19.7.2 事件762
19.7.3 持久化766
19.7.4 用户化767
19.8 JSP应用实例1——计数器769
19.9 JSP应用实例2——日历771
19.10 JSP应用实例3——数据库查询774
19.11 JSP应用实例4——简单的留言板777
19.12 JSP应用实例5——B/S模式的聊天室781
19.13 本章小结798

第8篇 即时通讯系统开发实例
第20章 系统分析和设计800
20.1 系统功能分析800
20.2 数据库设计801
20.3 系统总体设计803
20.3.1 服务器端软件结构803
20.3.2 客户端软件结构806
20.4 本章小结811

第21章 服务器端功能模块的实现812
21.1 启动服务器812
21.2 服务器主界面814
21.3 服务连接线程818
21.4 为客户端提供功能服务模块820
21.5 数据库连接模块827
21.6 管理登录用户模块829
21.7 显示用户信息模块831
21.8 存储用户信息的JavaBean833
21.9 实现头像显示功能的公用类836
21.10 显示时间的公用类837
21.11 设置窗口位置的公用类838
21.12 本章小结839

第22章 客户端功能模块的实现840
22.1 登录模块840
22.2 客户端主界面846
22.3 聊天模块860
22.4 查找好友模块866
22.5 显示好友信息模块868
22.6 接收陌生人信息模块871
22.7 更改用户信息模块873
22.8 用户注册模块880
22.9 显示版权信息887
22.10 本章小结889
……
序言 Java是目前最为流行的程序开发语言。作为一种完全的面向对象的语言,它吸取了其他语言的各种优点,设计简洁而优美,使用起来方便而高效,是一门典型的门槛低而天花板高的语言。既像Basic那样易于入门,又像C/C++那样具有强大的实际应用能力。而且与其他纯粹的语言不同,Java其实是一个完整的技术平台,这也就决定了学习Java和其他语言的一些区别。
市面上介绍Java的书籍很多,既包括了国外的经典名著,也包括了国内各种各样的教学书籍,但真正适合大学计算机本科专业教学以及普通程序员自己学习的书籍却很少。国外名著由于知识背景的差异、作者的思维方式总是和中国读者有一定的距离,因此刚入门的读者无法领略其中的精妙。而大多数的一般教学书籍,则将Java当作纯粹的语言来教学,忽视了它作为一个应用平台的强大威力,读者看了之后,难免会误会Java不过是一个精简版的C++。
作者在多年的教学过程中,深感需要编写一本能够既能让初学者快速入门,又能真正利用Java进行软件开发的指导性书籍。大概从3年前起,作者就萌生了自己编写教程的想法,而真正付诸实施,则花了整整7个月的时间。作者在自己平时所用课件的基础上,进行了大量的增改,终于编写出了本书。本书以教程的形式深入浅出、由易到难地介绍了有关J2SE平台下的常用开发技术,每个知识点和技术都采用了例程讲解为主、理论分析为辅的方式进行介绍。
本书假设读者没有任何的编程经验,举例时也尽量避免复杂的数据结构和算法设计。每个例子都着重于Java知识点本身,尽量浅显易懂,不涉及其他的知识。对于初学者易犯的错误,都有明显的提示。为了让读者养成良好的编程习惯,本书的程序代码均按照软件工程规范来编写。全书配合了大量的程序示例、实用程序、图例及代码说明,所有例程作者均仔细调试过,确保准确无误。
作者根据多年的Java教学经验,总结出Java初学者最需要的知识以及正确的学习方法,帮助读者以最少的时间获取最大的收益。本书特别适合于自学,也可作为计算机、软件工程专业的教材,本书的高级部分也适合作为Java程序员的参考用书。
本书的特色
本书不仅包含了Java的基础部分知识,也对它的高级技术和实用技术做了详细的介绍。本书是根据作者多年的教学经验和软件开发经验总结出来的,将知识范围锁定在了适合初级、中级的部分。本书以大量的实例进行示范和解说,其特点主要体现在以下几个 方面。
* 本书的编排采用循序渐进的方式,使得初级、中级学者逐步掌握复杂的编程技术。
* 本书采用了大量的示例,讲述Java中的基本知识点。并且尽量使这些示例简洁规范,让读者能专心于知识点上,而不被其他事物所干扰。
* 本书提供了相当多的实例,它们都具有实际的意义,着重解决工作中的实际问题。
* 对于有特点的实例进行详细的解释和分析,帮助读者理解和模拟实践。
* 对于学习和编程中经常遇到的问题以及需要注意的关键点予以特别提示。
* 按递进关系进行章节组织,介绍新知识点时与已学知识点相互比较,易于读者 理解。
* 本书采用技术要点、详细介绍、运行效果等多种方式进行讲解,系统性强、可读性强。
本书的内容安排
本书共分为8篇,先是讲述了Java的基本语法,然后介绍了面向对象的编程思想,再介绍Java中的一些高级技术。随后,进入到实际编程阶段,先后介绍了GUI程序设计、数据库和网络程序设计,最后提供了一个完整的即时通讯软件设计实例,让读者能够从实例中学习程序设计的真谛。
第1篇(第1章~第2章)首先全面介绍了Java的运行开发环境。其中详细讲解了JDK的安装和配置,如何使用UltraEdit来编辑一个Java源程序,以及如何编译和运行Java程序。第2章介绍了Java的基础知识,包括数据类型、运算符与表达式、流程控制等。最后以几个实例来引导读者步入程序设计的大门。这一篇是整个Java程序设计的基础。
第2篇(第3章~第4章)介绍了如何使用Java来进行面向对象的程序设计。包括对象和类的成员定义与使用、单继承和多重继承、运行时多态、接口、内部类、包等。本篇是Java的精华。
第3篇(第5章~第7章)介绍了Java中的数据处理。首先介绍了Java中的两个特殊类:数组和字符串。然后介绍了Java中的异常处理机制。最后介绍了输入和输出,包括标准设备的输入和输出以及文件的处理。学完本篇,已经可以编写一些实用程序了。
第4篇(第8章~第13章)介绍了Java中的高级技术,这些包括多线程、RTTI、泛型、集合、类型包装以及实用工具类等。这些内容是编写复杂实用程序的基础。使用这些高级技术,可以大大降低编程的繁琐程度和难度。
第5篇(第14章~第15章)介绍了普通窗口程序和多媒体程序的编写。GUI是目前最为流行的程序界面,但这类程序的编制比普通控制台程序要复杂一些。本篇详细介绍了和GUI有关的事件、布局管理以及各种组件的使用。并通过大量的实例来介绍如何编写一个实用的桌面程序,以及编程中的常用技巧和应该要注意的问题。在多媒体程序设计中,则着重介绍了各种文字、图像、声音、视频的处理。在编程中,应尽量使用Java自己提供的类,以降低编程的难度。
第6篇(第16章~第17章)介绍了数据库程序设计。数据库编程是Java的一个重要应用方面。本篇先介绍一般性的数据库理论,主要是SQL语句的使用。然后详细介绍了如何使用Java中的各种类来处理数据库,并提供了一个实例说明编写数据库程序与普通程序的一些差别。
第7篇(第18章~第19章)介绍了网络程序设计。首先介绍一般的C/S模式的网络程序设计,主要是利用Socket进行网络通讯。随后介绍了JSP程序设计,这是Java应用的又一重要领域。另外,本篇提供了5个实例来说明JSP程序设计中应该注意的一些 问题。
第8篇(第20章~22章)是一个完整的即时通讯软件。它综合使用了Java中的桌面程序设计、图像处理、数据库处理以及网络通讯中的各种技术,是对Java技术的一个全面应用。通过这个软件,读者可以领略到Java的强大实用能力。
适合阅读本书的读者
* 没有任何编程基础的计算机专业学生。
* 具备一定自学能力的Java编程爱好者。
* 利用Swing开发桌面程序的Java程序员。
* 进行JSP网站开发的人员。
* 使用C/S模式设计网络程序的Java程序员。
* 想了解Java中高级技术的其他人员。
* Java语言的教学人员。
本书作者
本书由刘新主笔编写。其他参与编写和资料整理的人员有苑令轩、王征、陈冠军、王石、程彩红、姜海英、邵毅、张路平、李臻、武勇、徐宁、刘玉珊、麻雪、赵建领、陈刚、吝晓宁、范永龙、姚志娟、赵盟、傅靖、李佳、徐磊、刘丹、肖冰、陈杰、王行恒、冯浩楠、纪超、段桂东、颜盟盟、黄宝生、张珍珍、石淑珍、陈超、牛晓辉、刘聪、任潇、商斌、张双、于志华、李秀劲、李胜美、蔡文仙、杜阳阳、吴兴亮、陈水望、黄任桢、梅婷婷、皇波、白雪蛟、陈浩然、许程程、巩长宇、黄金亮、姜艳超、李军、李庆、彭志林、王志娟、武娜、尹成业等。在此一并表示感谢。
文摘 第1篇 Java基础知识入门
第1章 Java的开发运行环境
学好Java最重要的一个步骤就是上机编程,熟悉Java,的开发运行环境是成为Java程序员的第一步。本章将详细介绍如何安装并配置好Sun公司提供的JDK1.5 for Windows,如何编制一个简单的Java程序,如何编译一个Java源程序,如何运行编译好的class文件以及如何避免初学者常犯的错误。通过本章的学习,将轻松地迈入Java的殿堂。
1.1 Java的运行环境与虚拟机
任何一个可执行文件,都必须在某个平台上才能运行。例如,Windows下的exe文件,必须在Windows环境下、X86硬件平台上才能运行。这些exe文件,通常是使用C/C++、Pascal或vB等语言编程,然后通过编译、链接而形成的。在这些可执行文件中,包含了运行它的硬件平台的相关信息,所以如果要把它移植到其他平台上,必须要重新编译,甚至要修改源文件。
Java和这些语言不同,它的最大特点就是平台无关性。Java文件经编译后,生成的是一个后缀名为class的文件。这是一种字节码文件,它不像普通可执行文件那样包含硬件信息,而是完全与硬件平台无关,也就是无法直接由操作系统调用运行。所以Java的应用程序,需要一个更为复杂的平台才能运行。这个运行平台,包括计算机操作系统、适配器、Java虚拟机、Java基本软件和Java应用程序接口,它们负责将Java的字节码翻译成硬件可以接受的指令。整个运行系统的结构如图1.1所示。
Java运行系统执行.Java应用程序的过程包括三个步骤:首先是代码的装入,然后是代码的验证,最后是代码的执行。
代码的装入由类装配器完成,它主要负责装入程序运行时所需要的全部代码,包括程序运行中调用到的其他类。当类装配器装入一个类后,该类被放在自己的命名空间中,除了通过符号引用其他类之外,该类不能影响其他类所在的空间。当装入了运行程序所需要的所有类后,运行系统就能确定整个可执行程序的内存布局。
然后,被装入的代码将由字节码验证器进行安全检查,以确保字节代码不存在违反访问权限、不规范的数据类型和非法调用等问题。
通过校验之后,代码就可以运行了。Java的字节码有两种运行方式:
解释执行方式:通过“解释器”,将字节码翻译成机器码,然后由“运行支持库”将机器码送往硬件执行。整个执行过程是一边翻译一边执行,称为解释执行。Java系统一般采用这种方式。
即时编译方式:通过“代码生成器”,先一次性地将所有字节码翻译成适用于特定计算机系统的机器码,然后送往硬件
……
读书人网 >程序设计

热点推荐