Java高手真经. 编程基础卷:Java核心编程技术:Java基础+核心库+图形+网络+高级特性
本书详细讲解Java语言基础开发中的各种技术,主要内容包括如下。./r/n
Java开发入门:JDK、JVM、Eclipse、Linux。/r/n
Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。/r/n
Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。/r/n
Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。/r/n
Java网络编程:Applet、Socket/TCP/UDP、NIO、RMI、CORBA。../r/n
Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。/r/n
随书附赠光盘内容为本书各种原型包、系统源程序。/r/n
本书内容循序渐进,通俗易懂,覆盖了Java开发的最流行技术。无论对于Java软件设计还是软件开发,本书都是精通开发Java应用的必备的实用手册。/r/n
本书适合作为Java相关培训机构的教材,也可作为Java自学人员的参考手册。...
目录:
第1部分 Java开发入门.
第1课 Java快速上手 3
1.1 开始了解Java 4
1.1.1 Java语言的11个特性 4
1.1.2 Java语言的构成—JIT、JVM、JRE、JDK 5
1.1.3 Java虚拟机JVM 6
1.2 安装Java开发环境 7
1.2.1 下载JDK 7
1.2.2 安装JDK和JRE 7
1.2.3 设置环境变量 10
1.2.4 学会查找Java帮助和API文档 12
1.3 开发第一个Java程序—HelloWorld.java 13
1.3.1 编写Java入门实例HelloWorld.java 14
1.3.2 编译类文件—javac命令 15
1.3.3 运行类文件—java命令 17
1.3.4 类文件打包—jar命令 19
1.3.5 生成API文档—javadoc命令 22
1.4 本课小结 25
1.4.1 总结本课的知识点 26
1.4.2 要掌握的关键点 26
1.4.3 课后上机作业 27
1.4.4 继续下一课:JVM内存结构及其调优 29
第2课 JVM内存结构及其调优 31
2.1 Java虚拟机结构与属性 31
2.1.1 Java虚拟机内存结构 31
2.1.2 Java虚拟机配置选项 32
2.2 Java垃圾回收机制 35
2.2.1 垃圾回收的2种方法 36
2.2.2 垃圾收集器的7个类型 37
2.3 JVM内存区域配置 39
2.3.1 配置堆区域 39
2.3.2 配置新域与旧域 39
2.3.3 配置永久区域 40
2.3.4 配置新域子空间 40
2.4 JVM性能调优实战 41
2.4.1 调优配置参考 41
2.4.2 JVM调优实战 42
2.5 本课小结 46
2.5.1 总结本课的知识点 46
2.5.2 要掌握的关键点 46
2.5.3 课后上机作业 47
2.5.4 继续下一课:在Eclipse下开发Java程序 48
第3课 在Eclipse下开发Java程序 49
3.1 集成开发工具的对比 49
3.1.1 Eclipse—IBM公司 49
3.1.2 NetBeans—Sun公司 50
3.1.3 JBuilder—Borland公司 52
3.1.4 IntelliJ—JetBrains公司 53
3.1.5 JCreator—Xinox公司 54
3.1.6 对比总结 55
3.2 安装和配置Eclipse开发环境 56
3.2.1 Eclipse版本与代号 56
3.2.2 Eclipse安装包的下载 57
3.2.3 Eclipse的安装与启动 61
3.2.4 集成配置JDK 64
3.3 Eclipse使用演练 65
3.3.1 Eclipse工作区使用演练—添加选项卡 66
3.3.2 Eclipse透视图使用演练—切换到CVS视图 68
3.3.3 Eclipse插件安装演练—安装反编译工具Jad插件 70
3.4 使用Eclipse进行Java项目的开发 74
3.4.1 在Eclipse中新建Java项目 74
3.4.2 编写HelloWorld.java类 76
3.4.3 运行Java程序 78
3.4.4 调试Java程序 79
3.4.5 导出JAR包 81
3.4.6 导出可执行的JAR包 82
3.4.7 生成Javadoc文档 83
3.5 本课小结 85
3.5.1 总结本课的知识点 86
3.5.2 要掌握的关键点 87
3.5.3 课后上机作业 87
3.5.4 继续下一课:在Linux下开发Java程序 89
第4课 在Linux下开发Java程序 91
4.1 Linux系统概述 91
4.1.1 Linux系统简介 92
4.1.2 Linux系统的特点 92
4.1.3 Linux发行版本 92
4.2 在虚拟机VMware 6.0中安装Red Hat 9.0 96
4.2.1 下载VMware 6.0 97
4.2.2 安装VMware 6.0 98
4.2.3 新建Linux类型的虚拟机 99
4.2.4 安装Red Hat 9.0系统 102
4.3 Linux系统的使用 116
4.3.1 启动Linux并初始化 116
4.3.2 Linux终端及常用命令 122
4.3.3 使用vi编辑器编辑文件 125
4.3.4 关闭系统 127
4.4 让Linux与外界建立联系 128
4.4.1 配置Linux上网 128
4.4.2 让Linux访问Windows下的文件 133
4.4.3 使用FTP访问Linux 137
4.4.4 使用远程终端Putty访问Linux 140
4.5 安装Java开发环境 141
4.5.1 下载JDK 6 141
4.5.2 安装JDK 6 142
4.5.3 设置环境变量 142
4.5.4 检验JDK是否安装成功 143
4.6 开发第一个Java程序 143
4.6.1 编写入门实例类HelloWorld.java 144
4.6.2 编译类HelloWorld.java 144
4.6.3 运行类HelloWorld.class 145
4.7 在Linux下使用Eclipse 145
4.7.1 下载Eclipse 145
4.7.2 安装Eclipse 145
4.7.3 启动Eclipse 145
4.7.4 使用Eclipse开发入门实例 147
4.8 本课小结 148
4.8.1 总结本课的知识点 148
4.8.2 要掌握的关键点 149
4.8.3 课后上机作业 150
4.8.4 继续下一课:Java语法基础 152
第2部分 Java语法基础
第5课 Java核心语法详解 157
5.1 Java类的基本构成—包、引入、类、变量、方法、注释 157
5.1.1 包(package) 158
5.1.2 引入(import) 160
5.1.3 类(class) 161
5.1.4 变量(variable) 162
5.1.5 方法(method) 162
5.1.6 注释 162
5.2 Java修饰符—修饰类、变量与方法 165
5.2.1 类的修饰符 166
1.抽象类:abstract 2.最终类:final
5.2.2 变量的修饰符 166
1.静态变量:static 2.静态初始化器:static
3.最终变量:final 4.易失变量:volatile
5.2.3 方法的修饰符 167
1.抽象方法:abstract 2.静态方法:static
3.最终方法:final 4.本地方法:native
5.同步方法:synchronized
5.2.4 访问控制符 169
1.公有访问控制符(public)
2.私有访问控制符(private)
3.保护访问控制符(protected)
4.默认访问控制符
5.3 Java变量 171
5.3.1 定义一个变量 171
5.3.2 变量的命名规则 172
5.3.3 Java保留关键字 172
5.3.4 变量赋值的两种方法 174
5.3.5 变量的作用范围 175
5.3.6 成员变量与局部变量 176
5.4 Java数据类型 177
5.4.1 基本数据类型 177
1.float类型 2.字符类型:char
5.4.2 对象数据类型 178
5.4.3 引用数据类型 179
5.4.4 数组数据类型 180
5.5 Java运算符 181
5.5.1 算术运算符 181
5.5.2 赋值运算符 181
5.5.3 自增/减运算符 182
5.5.4 关系运算符 183
5.5.5 逻辑运算符 183
5.5.6 运算符的优先级 185
5.6 Java方法 185
5.6.1 定义方法 186
1.访问说明符 2.修饰符
3.返回值类型 4.方法名
5.参数列表
5.6.2 方法的3种类型 187
5.6.3 方法的参数传递 188
5.6.4 方法的递归调用 189
5.6.5 main()方法 189
5.7 循环与流程控制 190
5.7.1 if条件语句 190
5.7.2 switch分支语句 191
5.7.3 for循环控制语句 192
5.7.4 while与do…while循环控制语句 193
5.7.5 break、continue、label和return
控制语句 194
5.8 本课小结 195
5.8.1 总结本课的知识点 195
5.8.2 要掌握的关键点 196
5.8.3 课后上机作业 198
5.8.4 上机作业参考样例 198
5.8.5 继续下一课:Java面向对象编程 199
第6课 Java面向对象编程 201
6.1 封装(encapsulation)—类 201
6.1.1 类的封装 202
6.1.2 对象的生成 202
6.1.3 对象的使用 203
6.2 继承(inheritance)—抽象类 204
6.2.1 继承的概念—超类和子类 205
6.2.2 子类不能访问私有成员与方法 206
6.2.3 父类和子类的相互转换 207
6.2.4 使用this和super 207
6.2.5 多态(polymiorphism)—方法的覆盖(override)、重载(overload)、重写(overwrite) 210
6.2.6 必须被继承的类—抽象类(abstract) 212
6.2.7 不能被继承的类—最终类(final) 213
6.3 多重继承—接口类 214
6.3.1 接口的含义 215
6.3.2 接口的创建与实现 215
6.3.3 接口与抽象类的区别 216
6.4 本课小结 218
6.4.1 总结本课的知识点 218
6.4.2 要掌握的关键点 218
6.4.3 课后上机作业 219
6.4.4 上机作业参考样例 220
6.4.5 继续下一课:Java面向对象编程扩展 224
第7课 Java面向对象编程扩展 225
7.1 Java静态类(Static Class) 225
7.1.1 静态类与非静态类的区别 225
7.1.2 静态方法 226
7.1.3 静态变量 226
7.1.4 静态代码块 227
7.1.5 静态内部类 228
7.2 Java匿名类(Anonymous Class) 228
7.2.1 匿名类的定义 229
7.2.2 匿名类的使用实例 229
7.2.3 使用匿名类处理Swing事件 230
7.3 Java内部类(Inner Class) 231
7.3.1 内部类的含义 231
7.3.2 内部类的使用实例 232
7.3.3 局部内部类 233
7.3.4 内部类引用外部类对象 235
7.4 Java异常类(Exception Class) 237
7.4.1 Java的异常层次结构 238
7.4.2 异常的捕捉处理机制 240
7.4.3 使用异常和自定义异常类 241
7.5 本课小结 242
7.5.1 总结本课的知识点 242
7.5.2 要掌握的关键点 243
7.5.3 课后上机作业 243
7.5.4 上机作业参考样例 245
7.5.5 继续下一课:Java编码规范与样式 247
第8课 Java编码规范与样式 249
8.1 Java命名规范 249
8.1.1 文件的命名 249
8.1.2 包的命名 250
8.1.3 类的命名 250
8.1.4 变量的命名 250
8.1.5 常量的命名 251
8.1.6 数组的命名 251
8.1.7 方法的命名 251
8.2 Java排版规范 252
8.2.1 空格 252
8.2.2 空行 253
8.2.3 缩进 255
8.2.4 页宽 255
8.3 Java注释规范 255
8.3.1 块注释 256
8.3.2 单行注释 256
8.3.3 尾端注释 257
8.3.4 行末注释 257
8.4 Java文件样式 257
8.4.1 版权信息 257
8.4.2 包与引入 258
8.4.3 类的注释 258
8.4.4 类的定义 258
8.4.5 变量及其存取方法 258
8.4.6 构造函数 259
8.4.7 类方法 259
8.4.8 toString()方法 259
8.4.9 main()方法 259
8.5 本课小结 260
8.5.1 总结本课的知识点 260
8.5.2 要掌握的关键点 261
8.5.3 课后上机作业 261
8.5.4 继续下一课:Java核心编程 263
第3部分 Java核心编程
第9课 Java输入/输出流 267
9.1 标准设备输入/输出 267
9.1.1 标准输入/输出类System 268
9.1.2 控制台读写类Console 271
9.2 文件基本处理 273
9.2.1 文件操作类File 273
9.2.2 文件搜索类FileFilter与FilenameFilter 275
9.2.3 文件随机读写类RandomAccessFile 279
9.3 输入/输出流 283
9.3.1 流的运作原理 283
9.3.2 输入字节流InputStream 285
1.字节数组作为输入源—ByteArrayInputStream
2.文件作为输入源—FileInputStream
3.对象作为输入源—ObjectInputStream
4.字符串作为输入源—StringBufferInputStream
5.管道输入流—PipedInputStream
6.串联输入源—SequenceInputStream
7.过滤输入流—FilterInputStream
8.缓存输入流—BufferedInputStream
9.数据输入流—DataInputStream
10.行号输入流—LineNumberInputStream
11.推回输入流—PushbackInputStream
12.总结
9.3.3 输出字节流OutputStream 297
1.字节数组作为输出源—ByteArrayOutputStream
2.文件作为输出源—FileOutputStream
3.对象作为输出源—ObjectOutputStream
4.管道输出流—PipedOutputStream
5.过滤输出流—FilterOutputStream
6.缓存输出流—BufferedOutputStream
7.数据输出流—DataOutputStream
8.格式化输出流—PrintStream
9.总结
9.3.4 输入字符流Reader 307
1.字符数组作为输入源—CharArrayReader
2.文件作为输入源—FileReader
3.字符串作为输入源—StringReader
4.管道输入流—PipedReader
5.缓存输入流—BufferedReader
6.行号输入流—LineNumberReader
7.过滤输入流—FilterReader
8.推回输入流—PushbackReader
9.总结
9.3.5 输出字符流Writer 314
1.字符数组作为输出源—CharArrayWriter
2.文件作为输出源—FileWriter
3.字符串作为输出源—StringWriter
4.管道输出流—PipedWriter
5.过滤输出流—FilterWriter
6.缓存输出流—BufferedWriter
7.格式化输出流—PrintWriter
8.总结
9.3.6 字节流与字符流的转换 321
1.字节输入流转换为字符输入流
2.字节输出流转换为字符输出流
9.4 本课小结 324
9.4.1 总结本课的知识点 325
9.4.2 要掌握的关键点 326
9.4.3 课后上机作业 328
9.4.4 上机作业参考样例 329
9.4.5 继续下一课:Java多线程编程 334
第10课 Java多线程编程 335
10.1 线程的概念 335
10.1.1 进程与线程的区别 336
10.1.2 线程的概念模型 336
10.1.3 线程的运行状态 337
10.1.4 线程的优先级 338
10.2 线程的开发方法 338
10.2.1 使用进程调用Java程序 339
10.2.2 第一种方法—继承Thread 342
10.2.3 第二种方法—实现Runnable 344
10.2.4 使用定时器TimerTask 346
10.2.5 使用线程组ThreadGroup 348
10.2.6 使用线程池ExecutorService 349
10.3 线程的运行控制 353
10.3.1 线程的启动start()、join()与停止stop() 353
10.3.2 线程的休眠sleep()与挂起yield() 354
10.3.3 线程的同步synchronized 357
10.3.4 线程的同步锁机制:wait()、notify()和notifyAll() 359
10.4 本课小结 365
10.4.1 总结本课的知识点 365
10.4.2 要掌握的关键点 365
10.4.3 课后上机作业 366
10.4.4 上机作业参考样例 367
10.4.5 继续下一课:Java常用实体类 372
第11课 Java常用实体类 373
11.1 Java系统级类 373
11.1.1 系统类System 373
1.访问系统属性 2.访问环境变量
3.加载文件和库 4.快速复制数组
5.取得系统时间 6.系统退出命令
7.执行垃圾回收
11.1.2 运行时类Runtime 384
1.查看系统内存 2.终止JVM虚拟机
3.运行系统程序 4.使用关闭钩子
11.2 Java字符串处理类 388
11.2.1 字符串类String 388
1.提取单个字符 2.提取子字符串
3.比较字符串 4.定位字符串
5.匹配字符串 6.拆分字符串
7.替换字符串 8.转换大小写
9.格式化输出
11.2.2 字符串分隔类StringTokenizer 391
11.2.3 线程安全的可变字符串类StringBuffer 392
11.2.4 可变字符串类StringBuilder 393
11.2.5 选择String、StringBuffer与StringBuilder 393
11.3 Java日期处理类 396
11.3.1 日期类Date 396
11.3.2 日期格式化类SimpleDateFormat 397
11.3.3 日历类Calendar 399
11.4 Java数字处理类 400
11.4.1 数学函数类Math 401
11.4.2 随机数类Random 402
11.4.3 基本数据类型转换 403
11.5 本课小结 404
11.5.1 总结本课的知识点 405
11.5.2 要掌握的关键点 405
11.5.3 继续下一课:Java常用集合类 406
第12课 Java常用集合类 407
12.1 集合类概述 408
12.1.1 Iterator与Enumeration 408
12.1.2 Collections与Collection 409
12.1.3 Arrays与数组 411
12.1.4 Dictionary字典 411
12.1.5 Queue队列 412
12.2 列表类List 414
12.2.1 抽象类AbstractList与AbstractSequentialList 414
12.2.2 链表LinkedList 415
12.2.3 可变数组ArrayList 416
12.2.4 向量Vector 416
12.2.5 堆栈Stack 418
12.3 集合类Set 419
12.3.1 抽象类AbstractSet 与接口SortedSet 419
12.3.2 哈希集合HashSet 420
12.3.3 树集合TreeSet 421
12.4 映射类Map 423
12.4.1 抽象类AbstractMap与接口SortedMap、NavigableMap 423
12.4.2 树映射TreeMap 425
12.4.3 哈希映射HashMap 426
12.4.4 链表哈希映射LinkedHashMap 427
12.4.5 弱哈希映射WeakHashMap 428
12.4.6 哈希表Hashtable 429
12.4.7 属性Properties 430
12.5 对比与选择 430
12.5.1 对比表格 430
12.5.2 List选择:LinkedList、ArrayList与Vector 431
12.5.3 Map选择:Hashtable、HashMap、WeakHashMap 433
12.6 本课小结 434
12.6.1 总结本课的知识点 434
12.6.2 要掌握的关键点 434
12.6.3 继续下一课:Java正则表达式 435
第13课 Java正则表达式 437
13.1 正则表达式语法 437
13.1.1 正则表达式的起源 437
13.1.2 正则表达式的匹配字符 438
1.普通字符 2.非打印字符
3.特殊字符 4.次数限定符
5.定位符 6.选择与分组
7.向后引用 8.操作符的优先级
13.1.3 正则表达式的匹配规则 444
1.基本模式匹配规则 2.字符簇匹配规则
3.重复出现匹配规则
4.匹配次数中的贪婪与非贪婪规则
5.匹配时反向引用规则
6.预搜索与懒惰搜索规则
13.1.4 全部符号汇总表 449
13.1.5 常用正则表达式举例 451
13.2 Java正则表达式详解 452
13.2.1 使用String类的匹配功能 452
13.2.2 使用正则表达式库Pattern和Matcher 453
13.2.3 正则表达式库的4个功能 454
13.3 本课小结 455
13.3.1 总结本课的知识点 455
13.3.2 要掌握的关键点 456
13.3.3 课后上机作业 456
13.3.4 继续下一课:XML与属性文件 458
第14课 XML与属性文件 459
14.1 名词解释 459
14.1.1 DOM与SAX模型 459
14.1.2 DOM和SAX接口的实现—JAXP 460
14.1.3 DOM的分支发展—JDOM和DOM4J 460
14.1.4 Xerces和Crimson 461
14.1.5 流式操作库StAX 462
14.1.6 总结 462
14.2 使用XML库 462
14.2.1 使用DOM读取XML文件 463
14.2.2 使用SAX读取XML文件 466
14.2.3 使用JDOM读写XML文件 468
14.2.4 使用DOM4J读写XML文件 472
14.2.5 使用StAX读取XML文件 475
14.3 属性文件读写 478
14.3.1 读写属性文件的方法 478
14.3.2 读写文件实例 479
14.4 本课小结 480
14.4.1 总结本课的知识点 480
14.4.2 要掌握的关键点 481
14.4.3 课后上机作业 481
14.4.4 继续下一课:Java图形编程 481
第4部分 Java图形编程
第15课 Java GUI库对比 485
15.1 Java GUI库简介 485
15.1.1 AWT简介 485
15.1.2 Swing简介 486
15.1.3 SWT简介 486
15.1.4 JFace简介 486
15.2 HelloWorld对比实例.. 487
15.2.1 AWT实例 487
15.2.2 Swing实例 490
15.2.3 SWT实例 492
15.2.4 JFace实例 494
15.3 本课小结 497
15.3.1 总结本课的知识点 497
15.3.2 要掌握的关键点 498
15.3.3 课后上机作业 498
15.3.4 继续下一课:AWT图形界面开发 498
第16课 AWT图形界面开发 499
16.1 AWT界面组件 499
16.1.1 基本的组件类树 499
1.组件(Component) 2.容器(Container)
16.1.2 窗口与对话框 501
1.绘制窗体Frame 2.使用面板Panel
3.对话框Dialog 4.文件对话框FileDialog
16.1.3 基本组件 504
1.文本Label 2.按钮Button
3.复选框Checkbox
4.复选框组CheckboxGroup
5.下拉列表Choice 6.文本框TextField
7.文本区域TextArea 8.列表List
9.画布Canvas
16.1.4 菜单组件 508
1.菜单栏MenuBar 2.菜单Menu
3.菜单选项MenuItem
16.2 AWT布局管理器 509
16.2.1 流式布局FlowLayout 510
16.2.2 区域布局BorderLayout 511
16.2.3 网格布局GridLayout 512
16.2.4 卡片布局CardLayout 513
16.2.5 容器的嵌套 515
16.3 AWT事件处理 515
16.3.1 事件授权模型 515
16.3.2 授权模型:事件类型 516
16.3.3 授权模型:事件监听器 517
16.3.4 使用事件监听器 519
1.实现监听器接口 2.使用内部类
3.使用匿名类
16.3.5 使用事件适配器 524
16.4 本课小结 525
16.4.1 总结本课的知识点 525
16.4.2 要掌握的关键点 526
1.低级事件 2.高级事件
16.4.3 课后上机作业—Java文本编辑器 528
16.4.4 上机作业参考样例 528
16.4.5 上机作业参考样例运行结果 532
16.4.6 打包javaawt.zip 533
16.4.7 继续下一课:AWT多媒体编程 534
第17课 AWT多媒体编程 535
17.1 图像处理—java.awt.image 535
17.1.1 加载图像 535
17.1.2 显示图像 536
17.1.3 实例一:显示图片 536
17.1.4 实例二:缩放图片 537
17.2 二维图像绘制—Java2D 538
17.2.1 Java2D简介 539
17.2.2 取得Graphics2D对象 540
17.2.3 设置Graphics2D属性 540
17.2.4 创建绘制对象 541
17.2.5 绘制对象 542
17.2.6 实例一:绘制图形 542
17.2.7 实例二:显示文字 543
17.2.8 实例三:显示图像 544
17.3 音频录制与播放—JavaSound 545
17.3.1 JavaSound体系结构 545
17.3.2 音频输入/输出原理 546
17.3.3 音频的数据格式 547
17.3.4 音频的录制 548
17.3.5 音频的播放 549
17.3.6 音频的保存 550
17.3.7 实例一:录音机程序 552
17.3.8 实例二、MP3音乐播放器 558
17.4 视频拍照与播放—JMF多媒体库 563
17.4.1 JMF模型 564
17.4.2 创建Player对象 565
17.4.3 截取多媒体数据 566
17.4.4 实例一:视频拍照程序 566
17.4.5 实例二:视频播放器 570
17.5 本课小结 573
17.5.1 总结本课的知识点 574
17.5.2 要掌握的关键点 575
17.5.3 课后上机作业 575
17.5.4 继续下一课:Swing图形界面开发 575
第18课 Swing图形界面开发 577
18.1 Swing界面组件 577
18.1.1 组件类树 577
18.1.2 窗口与对话框 579
1.窗体JFrame
2.内部窗体JInternalFrame
3.图层容器JLayeredPane
4.虚拟桌面容器JDesktopPane
5.对话框JDialog
6.文件选择对话框JFileChooser
7.颜色选择对话框JColorChooser
18.1.3 基本组件 587
1.文本Jlabel 2.按钮JButton
3.复选框JcheckBox 4.单选框JRadioButton
5.文本框JtextField 6.密码框JPasswordField
7.文本域JtextArea 8.文本文件域JTextPane
9.HTML编辑域JeditorPane
10.列表Jlist 11.滚动条JscrollBar
12.进度条JprogressBar 13.滑标组件Jslider
14.表格组件Jtable 15树形组件Jtree
18.1.4 菜单栏组件 594
1.菜单栏JmenuBar 2.菜单JMenu
3.菜单选项JmenuItem 4.弹出菜单JPopupMenu
18.1.5 工具栏组件JToolBar 596
18.2 Swing布局管理器 597
18.3 Swing事件处理 598
18.4 本课小结 599
18.4.1 总结本课的知识点 599
18.4.2 要掌握的关键点 600
18.4.3 课后上机作业—Java文本编辑器 600
18.4.4 上机作业参考样例 601
18.4.5 上机作业参考样例运行结果 604
18.4.6 打包javaswing.zip 605
18.4.7 继续下一课:SWT图形界面开发 606
第19课 SWT图形界面开发 607
19.1 SWT界面组件 608
19.1.1 组件类树 608
19.1.2 容器组件 609
1.主窗口Shell 2.面板Composite
3.分组框Group 4.选项卡TabFolder
19.1.3 对话框(Dialog) 613
1.消息框MessageBox
2.颜色选择对话框ColorDialog
3.字体选择对话框FontDialog
4.打印文件对话框PrintDialog
5.选择文件对话框FileDialog
6.选择目录对话框DirectoryDialog
19.1.4 基本组件(Control) 617
1.按钮组件Button 2.标签组件Label
3.文本框组件Text 4.下拉框组件Combo
5.列表框组件List 6.进度条ProgressBar
7.滚动组件Slider 8.滑标组件Scale
19.1.5 菜单栏组件Menu和MenuItem 625
19.1.6 工具栏组件ToolBar和ToolItem 627
19.2 SWT布局管理器 629
19.2.1 充满式布局FillLayout 629
19.2.2 表格式布局FormLayout 630
19.2.3 网格式布局GridLayout 631
19.2.4 行列式布局RowLayout 632
19.3 SWT事件处理 633
19.3.1 常用事件 633
19.3.2 事件监听器 634
19.4 本课小结 635
19.4.1 总结本课的知识点 635
19.4.2 要掌握的关键点 635
19.4.3 课后上机作业—Java文本编辑器 636
19.4.4 上机作业参考样例 636
19.4.5 上机作业参考样例运行结果 640
19.4.6 打包javaswt.zip 641
19.4.7 继续下一课:SWT增强组件库JFace 642
第20课 SWT增强组件库JFace 643
20.1 JFace扩展组件 643
20.1.1 窗体 643
1.普通窗体Window
2.扩展窗体ApplicationWindow
20.1.2 对话框 646
1.消息提示框MessageDialog
2.输入对话框InputDialog
3.错误提示框ErrorDialog
4.进程监控对话框ProgressMonitorDialog
5.带有提示信息的对话框TitleAreaDialog
20.1.3 Viewer查看器 651
20.2 Action事件处理 651
20.2.1 按钮与Action事件 652
20.2.2 菜单栏与Action事件 653
20.2.3 工具栏与Action事件 654
20.3 本课小结 655
20.3.1 总结本课的知识点 656
20.3.2 要掌握的关键点 656
20.3.3 继续下一课:Java网络编程 657
第5部分 Java网络编程
第21课 Applet组件编程 661
21.1 Applet基本原理 661
21.1.1 Applet在网页中的引用 661
21.1.2 Applet基类 662
21.1.3 Applet运行状态 663
21.1.4 Applet入门实例HelloWorld 664
21.2 Applet核心编程 666
21.2.1 事件处理:响应鼠标事件 666
21.2.2 事件处理:响应键盘事件 667
21.2.3 多媒体:显示图片 668
21.2.4 多媒体:播放音乐 671
21.2.5 网页交互:传递网页参数 672
21.2.6 网页交互:JavaScript操作Applet 673
21.3 本课小结 675
21.3.1总结本课的知识点 675
21.3.2 要掌握的关键点 676
21.3.3 课后上机作业—电子相册 676
21.3.4 上机作业参考样例 676
21.3.5 打包javaapplet.zip 678
21.3.6 继续下一课:Java网络编程 679
第22课 Java网络编程 681
22.1 基于HTTP协议的网络编程 681
22.1.1 网页地址格式URI→URL 682
22.1.2 URL网页地址类 685
22.1.3 URLConnection网页连接类 687
22.1.4 HttpURLConnection和JarURLConnection 689
22.2 基于TCP/IP的Socket编程 691
22.2.1 TCP/IP与UDP协议简介 691
22.2.2 IP地址类InetAddress 692
22.2.3 客户端套接字Socket 697
22.2.4 补充:Socket选项 700
22.2.5 补充:Socket异常 703
22.2.6 服务端套接字ServerSocket 704
22.2.7 补充:ServerSocket选项 707
22.2.8 实例一:简单的Client/Server对话程序 710
22.2.9 实例二:支持多客户的Client/Server服务响应程序 715
22.3 基于UDP的Socket编程 720
22.3.1 数据报包DatagramPacket 721
22.3.2 数据报套接字DatagramSocket 722
22.3.3 实例一:利用数据报通信的Client/Server程序 724
22.3.4 组播套接字MulticastSocket 727
22.3.5 实例二:组播套接字的Client/Server程序 728
22.4 本课小结 730
22.4.1 总结本课的知识点 730
22.4.2 要掌握的关键点 731
22.4.3 课后上机作业 731
22.4.4 上机作业参考样例 733
22.4.5 继续下一课:NIO非阻塞通信 740
第23课 NIO非阻塞编程 741
23.1 NIO引入 741
23.1.1 基于Socket通信存在的问题—I/O阻塞通信 742
23.1.2 传统的解决方法—使用线程池 743
23.1.3 最新的解决方案—NIO非阻塞通信 744
23.2 NIO核心框架 745
23.2.1 缓存区Buffer 745
23.2.2 字符集Charset—编码与解码 752
23.2.3 通道Channel 758
23.2.4 选择器Selector 761
23.3 NIO通道编程详解 764
23.3.1 文件通道FileChannel 764
23.3.2 Socket通道SocketChannel 769
23.3.3 ServerSocket通道
ServerSocketChannel 773
23.3.4 实例一:支持多客户的
Client/Server任务响应程序 776
23.3.5 数据报通道DatagramChannel 785
23.3.6 实例二:利用数据报通信的
Client/Server程序 785
23.4 本课小结 788
23.4.1 总结本课的知识点 788
23.4.2 要掌握的关键点 788
23.4.3 课后上机作业 789
23.4.4 上机作业参考样例 790
23.4.5 继续下一课:RMI分布式网络编程 800
第24课 RMI分布式网络编程 801
24.1 RMI引入 801
24.1.1 远程过程调用协议RPC 802
24.1.2 客户机/服务器模型Client/Server 802
24.1.3 分布式对象模型 802
24.1.4 Java远程方法调用RMI 802
24.2 RMI系统原理与开发步骤 803
24.2.1 RMI通信机制 803
1.Stub(存根)
2.Skeleton(框架)
24.2.2 RMI对象序列化 804
24.2.3 RMI程序的实现步骤 805
24.2.4 RMI程序的运行步骤 805
24.3 RMI程序开发详解—HelloWorld 805
24.3.1 创建远程接口类IHelloWorld.java 806
24.3.2 创建接口实现类HelloWorld.java 807
24.3.3 开发服务器程序RMIServer.java 807
24.3.4 开发客户端程序RMIClient.java 809
24.3.5 编译并运行应用程序 809
24.3.6 补充:Java安全许可文件 812
24.4 本课小结 813
24.4.1 总结本课的知识点 813
24.4.2 要掌握的关键点 814
1.开发RMI应用程序的步骤
2.编译和运行RMI应用程序的步骤
24.4.3 课后上机作业 814
24.4.4 上机作业参考样例 815
24.4.5 继续下一课:CORBA分布式
网络编程 819
第25课 CORBA分布式网络编程 821
25.1 CORBA引入 822
25.1.1 CORBA相关概念 822
25.1.2 CORBA发展历程 823
25.1.3 CORBA系统的结构与特点 823
25.1.4 CORBA中间件ORB 825
25.1.5 RMI与CORBA的结合
RMI-IIOP 826
25.2 使用Java编写CORBA
程序—HelloWorld实例 827
25.2.1 创建IDL接口Hello.idl 828
25.2.2 编译IDL接口产生6个文件 828
25.2.3 创建IDL接口实现类
HelloImpl.java 829
25.2.4 实现服务器HelloServer.java 829
25.2.5 实现客户端HelloClient.java 830
25.2.6 运行程序 831
25.2.7 补充:IDL的语法规则 832
25.3 本课小结 835
25.3.1 总结本课的知识点 835
25.3.2 要掌握的关键点 836
25.3.3 课后上机作业 836
25.3.4 上机作业参考样例 837
25.3.5 继续下一课:Java高级特性 842
第26课 Java反射编程与动态代理 845
26.1 Java反射机制 845
26.1.1 反射的概念 845
26.1.2 Java中的反射 846
26.1.3 第一个反射的例子 846
26.1.4 Java反射API 847
1.取得构造函数—返回类型Constructor
2.取得变量—返回类型Field
3.取得方法—返回类型Method
4.Array类 5.Modifier类
26.2 Java反射应用—检测类 850
26.2.1 标准会话管理器StandardManager 851
26.2.2 获取类的方法 851
26.2.3 获取类的构造器 852
26.2.4 获取类的变量 852
26.3 Java反射应用—处理对象 853
26.3.1 创建类的对象 853
26.3.2 改变变量的值 853
26.3.3 执行类的方法 854
26.3.4 使用数组 854
26.4 Java动态代理 855
26.4.1 动态代理机制 855
26.4.2 动态代理应用 856
1.定义接口和实现类并直接调用
2.使用包装类进行包装
3.使用动态代理
26.4.3 基于动态代理的AOP实现 860
26.4.4 基于动态代理的字节码库 861
26.5 本课小结 861
26.5.1 总结本课的知识点 861
26.5.2 要掌握的关键点 862
26.5.3 课后上机作业 863
26.5.4 上机作业参考 863
26.5.5 继续下一课:Java泛型编程 869
第27课 Java泛型编程 871
27.1 了解Java泛型 871
27.1.1 数据类型转换错误 871
27.1.2 用泛型消除类型转换 871
27.2 泛型类的开发与使用 872
27.2.1 定义泛型类 873
27.2.2 无界通配符“?” 874
27.2.3 上限通配符extends 874
27.2.4 下限通配符super 875
27.2.5 定义多态方法 876
27.2.6 定义泛型异常 877
27.3 本课小结 878
27.3.1 总结本课的知识点 878
27.3.2 要掌握的关键点 878
27.3.3 课后上机作业 879
27.3.4 继续下一课:Java注释符编程 879
第28课 Java注释符编程 881
28.1 JDK内置注释 881
28.1.1 注释的格式与分类 881
28.1.2 覆盖注释@Override 882
28.1.3 过时注释@Deprecated 883
28.1.4 警告注释@SuppressWarnings 883
28.2 自定义注释 885
28.2.1 定义注释类型@interface 885
28.2.2 添加成员变量 885
28.2.3 设置默认值 886
28.2.4 设置目标范围@Target 886
28.2.5 设置保持性@Retention 887
28.2.6 添加公共文档@Documented 888
28.2.7 设置继承@Inherited 888
28.3 本课小结 889
28.3.1 总结本课的知识点 889
28.3.2 要掌握的关键点 889
28.3.3 继续下一课:Java 5.0语言新特性 890
第29课 Java 5.0语言新特性 891
29.1 自动装箱和拆箱(Boxing/Unboxing) 891
29.2 枚举类(Enumeration Classes) 892
1.public static final int的常量
2.定义枚举类
3.为枚举值添加参数
4.枚举的映射(Map)
29.3 可变参数(Variable Arguments) 895
29.4 可变返回类型(Covariant Return Types) 896
29.5 增强循环Enhanced for Loop 897
29.6 静态导入Static Import 898
29.7 控制台输入(Console Input) 898
1.读取控制台 2.读取文件
3.读取字符串
29.8 StringBuilder类(StringBuilder) 900
29.9 格式化I/O(Formatted I/O) 900
29.10 本课小结 900
29.10.1 总结本课的知识点 900
29.10.2 要掌握的关键点 901
29.10.3 课后上机作业 901
29.10.4 继续下一课:Java Web核心技术... 901