《Java经典实例 第2版》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:伊恩·达尔文著
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2009
  • ISBN:9787508379661
  • 页数:784 页
图书介绍:本书主要介绍如何在不同平台上编译和调试Java程序,如何在不同运行环境下(浏览器、命令行、窗口界面)执行;交互环境以及怎样适应不同黄惊吓的程序;“字符串”;正则表达式实现模式匹配的问题;“数字”;数组;泛型;面向对象技术;输入/输出;串行/并行接口的访问;网络中基于套接字的连接;目录与文件系统的操作;串行/并行接口的编程;“图像与声音”;“图形用户界面”;“国际化与本地化”等内容。

前言 1

第1章 起步走:编译、运行和调试Java程序 15

1.0简介 15

1.1编译和运行Java程序:JDK方式 15

1.2采用带彩色突出显示的编辑器编辑和编译程序 17

1.3采用IDE编译、执行和测试程序 18

1.4有效使用CLASSPATH 25

1.5使用本书的com.darwinsys API类 27

1.6编译本书的源代码示例 28

1.7使用Ant工具自动编译和执行Java程序 29

1.8 Applet 32

1.9处理过期警告 34

1.10没有#ifdef的条件编译 36

1.11调试信息的输出 37

1.12使用断言机制维护程序 38

1.13使用调试器JDB 39

1.14单元测试 41

1.15 获取可读的回溯 44

1.16更多的Java源程序 45

1.17例程:Debug 47

第2章 Java的运行环境 48

2.0简介 48

2.1获得环境变量 48

2.2系统属性 50

2.3编写JDK版本相关的代码 52

2.4编写操作系统相关的代码 53

2.5使用扩展包或其他API包 55

2.6解析命令行参数 56

第3章 字符串 64

3.0简介 64

3.1利用substring()分解字符串 66

3.2利用StringTokenizer分解字符串 67

3.3连接字符串 70

3.4处理单个字符 73

3.5字符串的对齐 74

3.6 Unicode字符与String的转换 77

3.7颠倒字符串 78

3.8扩展和压缩TAB符 79

3.9控制字母大小写 84

3.10缩排文档 85

3.11输入非打印字符 87

3.12删除字符串尾部的空格 88

3.13解析逗号分隔的数据 89

3.14例程:一个简单的文本格式化工具 93

3.15 例程:Soundex算法 95

第4章 正则表达式的模式匹配 99

4.0简介 99

4.1正则表达式的语法 101

4.2在Java中使用正则表达式:测试模式 108

4.3查找匹配的文本 111

4.4替换匹配的正文 113

4.5打印匹配的所有字符串 114

4.6打印含有模式的行 117

4.7在正则表达式中控制大小写 118

4.8匹配重音符或复合字符 119

4.9匹配时的换行问题 120

4.10例程:Apache日志文件解析 122

4.11例程:数据挖掘 124

4.12例程:完整的Grep 126

第5章 数字 130

5.0简介 130

5.1检查字符串是否包含有效数字 132

5.2数据类型的由大变小 134

5.3数字与对象的互相转换 135

5.4使用分数 135

5.5确保浮点数的准确性 136

5.6浮点数的比较 138

5.7浮点数的舍入 140

5.8数字的格式化 141

5.9二进制、八进制、十进制以及十六进制之间的转换 143

5.10整数序列 144

5.11罗马数字 145

5.12名词的复数形式 149

5.13产生随机数 151

5.14产生更好的随机数 152

5.15 三角函数的计算 153

5.16取对数 154

5.17矩阵乘法 155

5.18复数 156

5.19处理特大的数字 158

5.20例程:TempConverter 160

5.21例程:数字回文(Number Palindromes) 164

第6章 日期和时间 167

6.0简介 167

6.1查看当前日期 168

6.2按照指定格式打印日期/时间 169

6.3用其他历法表示日期 172

6.4将YMDHMS转换为Calendar对象 173

6.5将字符串转换为日期 174

6.6将秒数转换为DMYHMS格式 176

6.7日期的加减运算 177

6.8计算日期之间的间隔 178

6.9比较日期 179

6.10第几日 181

6.11日历页 182

6.12测量流逝的时间 184

6.13休眠 186

6.14例程:提醒服务 187

第7章 结构化数据 190

7.0简介 190

7.1数组 191

7.2调整数组的长度 192

7.3 ArrayList类 193

7.4 Iterator(迭代器) 195

7.5链表 196

7.6使用H ashtable和HashMap进行映射 198

7.7 Properties类和Preferences类 200

7.8排序 203

7.9避免频繁地排序 207

7.10排除重复元素 209

7.11搜索对象 209

7.12将集合转换为数组 211

7.13自定义Iterator 212

7.14堆栈 214

7.15 多维结构 215

7.16集合小结 218

7.17例程:运行效率 219

第8章 泛型、foreach循环和枚举的数据结构(JDK1.5) 222

8.0简介 222

8.1使用泛型 223

8.2使用“foreach”循环 224

8.3使用泛型避免强制类型转换 225

8.4使用自动装包和自动拆包进行转换 228

8.5使用类型安全的枚举 229

8.6例程:Medialnvoicer 233

第9章 面向对象的技术 236

9.0简介 236

9.1打印对象用toString()方法格式化 238

9.2覆盖equals方法 239

9.3覆盖hashcode方法 242

9.4 Clone方法 243

9.5 Finalize方法 245

9.6使用内部类 247

9.7通过接口进行回调(Callback) 248

9.8多态(Polymorphism)/抽象方法 251

9.9传值 253

9.10 Singleton模式 255

9.11自定义异常 257

9.12例程:Plotter(绘图仪) 258

第10章 输入和输出 261

10.0简介 261

10.1从标准输入设备读取数据 262

10.2向标准输出设备写数据 266

10.3 JDK 1.5的Formatter类 267

10.4扫描文件 271

10.5 JDK 1.5的Scanner类 275

10.6按文件名打开文件 279

10.7复制文件 280

10.8把文件读入字符串 283

10.9重定向标准流 283

10.10复制流 284

10.11读/写不同字符集的文本 286

10.12行结束符 287

10.13平台相关的文件编码 288

10.14断行再续 289

10.15读写二进制数据 294

10.16定位(Seeking) 295

10.17处理C程序写的数据流 296

10.18存储和还原串行化对象 298

10.19防止ClassCastExceptions异常 301

10.20读写JAR或Zip文档 302

10.21读写压缩文件 305

10.22例程:将文本输出为PostScript格式 307

第11章 目录和文件操作 310

11.0简介 310

11.1获取文件信息 310

11.2创建文件 313

11.3修改文件名 314

11.4删除文件 315

11.5创建临时文件 317

11.6更改文件属性 318

11.7列出目录内容 319

11.8获取根目录 321

11.9创建新目录 322

11.10例程:Find 323

第12章 串行和并行接口编程 326

12.0简介 326

12.1选择一个端口 328

12.2打开串行端口 331

12.3打开并行端口 334

12.4解决端口冲突 338

12.5基于端口读写数据:异步(Lock Step) 341

12.6基于端口的读写数据:事件驱动 343

12.7基于端口的读写数据:线程 347

12.8例程:Penman绘图仪 349

第13章 图形与声音 354

13.0简介 354

13.1绘制图形 354

13.2测试图形组件 356

13.3输出文本 356

13.4使组件上的文本居中 357

13.5阴影效果 359

13.6绘制二维艺术字 361

13.7文本字体 364

13.8图像 366

13.9播放声音文件 370

13.10播放视频文件 371

13.11 Java的打印 374

13.12例程:PlotterAWT 376

13.13例程:Grapher 379

第14章 图形用户界面(GUI) 383

14.0简介 383

14.1 GUI组件 384

14.2窗体布局 386

14.3带Tab的布局 388

14.4事件处理:让按钮工作起来 390

14.5使用匿名的内部类进行事件处理 392

14.6通过“关闭窗体”结束程序 393

14.7对话框 398

14.8 GUI异常 400

14.9在窗体上打印数据 402

14.10使用JSpinner选择值 405

14.11使用JFileChooser选择文件 407

14.12选择颜色 409

14.13使用HTML格式化JComponents 412

14.14将主窗体居中 413

14.15修改Swing程序的外观感受(Look and Feel) 414

14.16改进Mac OS X的GUI 418

14.17例程:定制字体 420

14.18例程:定制布局管理器 425

第15章 国际化与本地化 431

15.0简介 431

15.1用I18N资源创建按钮 432

15.2列出有效区域 433

15.3使用118N资源创建菜单 435

15.4编写国际化的实用子程序 435

15.5使用118N资源包创建对话框 437

15.6创建资源包 439

15.7从代码中提取字符串 440

15.8使用指定的区域 441

15.9设置默认的区域 442

15.10格式化消息 443

15.11例程:MenuIntl 445

15.12例程:BusCard 447

第16章 网络客户端 452

16.0简介 452

16.1访问服务器 454

16.2查找并报告网络地址 455

16.3处理网络错误 457

16.4读写文本数据 458

16.5读写二进制数据 460

16.6读写串行化数据 462

16.7 UDP数据报 464

16.8例程:TFTP的UDP客户端 466

16.9例程:Telnet客户端 470

16.10例程:聊天室的客户端 472

第17章 Java服务器端:Socket 478

17.0简介 478

17.1创建ServerSocket 478

17.2返回响应(字符串或二进制) 481

17.3返回对象信息 484

17.4处理多客户端 485

17.5 HTTP协议服务 490

17.6使用SSL和JSSE保护Web服务器 492

17.7网络日志 495

17.8使用log4j进行网络日志记录 499

17.9使用JDK 1.4进行网络日志记录 502

17.10找到网络接口 504

17.11例程:一个Java聊天室服务器 505

第18章 网络客户端(II):Applet和Web客户端 510

18.0简介 510

18.1在网页中嵌入Applet 510

18.2编写Applet 512

18.3连接Applet主机的服务器 514

18.4通过Applet显示文档 517

18.5在Applet上运行JavaScript 519

18.6通过Applet运行CGI脚本 520

18.7读取URL上的内容 521

18.8 URI、URL或URN? 522

18.9从URL中解析HTML文本 524

18.10从文件中解析URL名字 526

18.11将文件名转换为URL名字 528

18.12例程:Mklndex 529

18.13例程:LinkChecker 533

第19章 Java与Email 540

19.0简介 540

19.1发送Email:浏览器版 540

19.2发送Email:真正的客户程序 545

19.3邮件发送的服务器程序 547

19.4发送MIME邮件 551

19.5提供邮件设置 553

19.6不使用JavaMail发送邮件 555

19.7读邮件 559

19.8程序:MailReaderBean 563

19.9程序:MailClient 567

第20章 数据库访问 578

20.0简介 578

20.1采用JDO轻松访问数据库 579

20.2文本文件数据库 582

20.3 DBM数据库 587

20.4 JDBC的安装和连接 590

20.5与JDBC数据库连接 592

20.6发送一个JDBC查询并获得结果 595

20.7没有JDBC参数化语句 598

20.8在JDBC中使用存储过程 602

20.9用ResultSet改变数据 603

20.10在RowSet中存储结果 603

20.11用SQL改变数据 606

20.12寻找JDBC元数据 608

20.13程序:SQLRunner 611

第21章 XML 622

21.0简介 622

21.1从对象中生成XML 625

21.2用XSLT转换XML 626

21.3用SAX解析XML 629

21.4用DOM解析XML 631

21.5用DTD验证结构 635

21.6用DOM生成我们自己的XML 636

21.7程序:xm12mif 638

第22章 分布式Java:RMI 641

22.0简介 641

22.1定义RMI合同 642

22.2创建RMI客户 644

22.3创建RMI服务器 645

22.4跨网络部署RMI 648

22.5程序:RMI回调 648

22.6程序:RMIW atch 652

第23章 包和包装机制 659

23.0简介 659

23.1创建包 660

23.2用Javadoc为类写文档 661

23.3 JavaDoc进阶:Annotation/Metadata (JDK 1.5)和XDoclet 665

23.4用jar存档 667

23.5从JAR运行Applet 668

23.6用新的JDK运行Applet 669

23.7从JAR运行主程序 673

23.8将类作为JavaBean 675

23.9将JavaBean放入JAR中 678

23.10将Servlet压缩为一个WAR文件 679

23.11“编写一次 随处安装” 680

23.12“编写一次在Mac OS X上安装” 681

23.13 JWS (Java Web Start) 683

23.14签署JAR文件 688

第24章 Java线程 691

24.0简介 691

24.1在另一线程中运行代码 693

24.2显示一个带动画的图像 696

24.3停止线程 700

24.4超时 702

24.5使用synchronized关键字的同步线程 703

24.6使用JDK 1.5的锁定简单化同步 709

24.7线程的通信:wait()和notifyAll() 713

24.8使用JDK 1.5的Queue接口简化生产者-消费者模式 718

24.9在编辑器中后台保存 721

24.10例程:多线程的网络服务器 722

24.11使用Concurrency Utility (JDK 1.5)简化服务器 729

第25章 内省或“命名类的类” 732

25.0简介 732

25.1获得类描述符 733

25.2寻找和使用方法和字段 734

25.3动态地装载和实例化一个类 737

25.4从头开始构造一个类 740

25.5性能计时 741

25.6输出类信息 744

25.7例程:CrossRef 745

25.8程序:AppletViewer 750

第26章 Java与其他语言的结合 758

26.0简介 758

26.1运行一个程序 758

26.2运行程序并获取它的结果 761

26.3用BSF混合使用Java和脚本语言 765

26.4 Java和Perl的结合 769

26.5与本机代码(C/C++)混合 773

26.6本机代码调用Java 779

26.7程序:DB M 779

后记 783