《深入浅出JDK 6.0》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:涂传滨著
  • 出 版 社:电子工业出版社
  • 出版年份:2008
  • ISBN:
  • 页数:685 页
图书介绍:

第1章 Java基础 1

1.1 认识Java 2

1.1.1 Java语言的特点 2

1.1.2 Java程序运行环境 3

1.2 Java语法 4

1.2.1 数据类型 4

1.2.2 数组 5

1.2.3 运算符和表达式 6

1.2.4 流程控制 9

1.2.4.1 选择结构 9

1.2.4.2 循环结构 11

1.2.4.3 跳转结构 13

1.2.5 关键字 14

1.3 Java语言的对象性 14

1.3.1 类和包 15

1.3.2 类的继承 17

1.3.3 抽象类和接口 19

1.4 总结 20

第2章 Java进阶 21

2.1 Java内存管理 22

2.1.1 垃圾收集原理 22

2.1.2 对象引用的类型 24

2.2 “栈”和“堆”的区别 28

2.2.1 变量比较 28

2.2.2 变量复制 29

2.2.3 引用传递和值传递 30

2.3 异常机制 32

2.3.1 异常的原理 32

2.3.2 发生异常时的程序流程 33

2.3.3 巧妙利用异常 35

2.4 集合框架 36

2.4.1 集合框架概述 36

2.4.2 按键值自动排序的Map 38

2.4.3 元素位置固定的Map 39

2.4.4 线程安全的容器 40

2.4.5 存放弱引用的容器 40

2.5 其他方面 40

2.5.1 改进的诊断能力 41

2.5.2 Annotation 41

2.5.3 泛型 43

2.5.4 自动装/拆箱 43

2.5.5 静态引入 44

2.5.6 格式化输入/输出 44

2.5.7 参数数量可变 45

2.5.8 并行工具包 46

2.6 实用工具 46

2.6.1 程序注释 46

2.6.2 Java类包管理工具 48

2.6.2.1 可执行的JAR文件 49

2.6.2.2 JAR文件的索引 50

2.6.3 Java虚拟机启动参数 52

2.6.4 Java程序调试工具 55

2.6.5 Java进程监控平台 57

2.6.6 JVM内存分析工具 60

2.7 总结 61

第3章 第一个Java程序 62

3.1 搭建开发环境 63

3.1.1 下载并安装JDK 6.0 63

3.1.1.1 在Windows平台上安装JDK 6.0 63

3.1.1.2 在Linux平台上安装JDK 6.0 64

3.1.2 设置环境变量 66

3.2 实战“Hello World”程序 67

3.2.1 控制台版的Hello World 67

3.2.2 图形界面版的Hello World 68

3.3 总结 69

第4章 文件系统 70

4.1 Java输入输出概述 71

4.2 文件的顺序读写 72

4.2.1 字节流方式读写 72

4.2.1.1 字节输入流 72

4.2.1.2 字节输出流 75

4.2.2 字符流方式读写 78

4.2.2.1 字符输入流 78

4.2.2.2 字符输出流 81

4.3 文件的随机读写 82

4.4 文件系统实用例程 83

4.4.1 创建文件和目录 83

4.4.2 删除文件和目录 84

4.4.3 复制文件和目录 86

4.4.4 移动文件和目录 90

4.4.5 操作文件属性 90

4.4.6 获取可用空间 91

4.4.7 获取目录占用的空间 92

4.5 总结 93

第5章 网络通信基础 94

5.1 TCP基础 95

5.1.1 TCP开发简介 95

5.1.1.1 理解TCP Socket 95

5.1.1.2 TCP通信API 96

5.1.2 TCP开发实例——多线程服务器 99

5.1.3 TCP开发实例——连接池 104

5.1.3.1 连接池的原理 104

5.1.3.2 连接池的实现 105

5.2 UDP基础 109

5.2.1 UDP开发简介 109

5.2.1.1 理解UDP Socket 109

5.2.1.2 UDP通信API 110

5.2.2 UDP开发实例 111

5.2.3 多播套接字 113

5.2.3.1 多播套接字简介 113

5.2.3.2 多播套接字开发实例 113

5.3 NIO(New I/O)基础 115

5.3.1 NIO简介 115

5.3.2 NIO开发实例 116

5.4 总结 119

第6章 输入输出综合 120

6.1 Java I/O回顾 121

6.1.1 字节类API 121

6.1.1.1 字节输入流 121

6.1.1.2 字节输出流 122

6.1.2 字符类API 122

6.1.2.1 字符输入流 122

6.1.2.2 字符输出流 123

6.1.3 对象类API 123

6.1.3.1 对象输入流 123

6.1.3.2 对象输出流 124

6.2 对象序列化 124

6.2.1 对象序列化原理 124

6.2.2 修改默认的序列化机制 126

6.3 HTTP开发 128

6.3.1 HTTP通信原理 128

6.3.2 HTTP开发API 131

6.3.3 获取HTTP网络资源 132

6.3.4 登录需要认证的站点 134

6.3.5 利用HttpUnit保持状态 136

6.4 大文件传输 139

6.4.1 旨在降低风险的方案——分包传输 140

6.4.2 旨在控制风险的方案——可靠传输 149

6.5 字符集问题 153

6.6 Java I/O经典范例 155

6.6.1 FTP客户端 155

6.6.2 文件切割 156

6.6.3 通用文件系统(CIFS) 160

6.6.4 重定向控制台输出 162

6.6.5 与外部进程通信 163

6.7 总结 165

第7章 Java线程 166

7.1 线程简介 167

7.1.1 什么是线程 167

7.1.2 多线程的用途 167

7.1.3 Java语言与多线程 169

7.2 多线程应用开发 169

7.2.1 创建和启动线程 169

7.2.1.1 获取当前线程对象 169

7.2.1.2 线程命名 170

7.2.1.3 构造和启动线程 170

7.2.1.4 线程优先级 171

7.2.1.5 守护线程 173

7.2.2 Runnable接口和Thread基类 174

7.2.2.1 实现Runnable接口 174

7.2.2.2 继承Thread基类 177

7.2.3 管理线程的状态 179

7.2.3.1 线程的状态 179

7.2.3.2 线程的等待和唤醒 180

7.2.3.3 线程的休眠和中断 186

7.2.3.4 线程的终止 187

7.2.4 为程序添加退出事件 192

7.2.5 线程组 193

7.3 线程间通信 196

7.3.1 传递二进制信息 196

7.3.2 传递字符信息 197

7.4 实战多线程下载 199

7.5 总结 204

第8章 并发情况下的多线程编程 205

8.1 线程安全 206

8.1.1 线程安全的本质 206

8.1.2 变量安全 206

8.1.2.1 并发线程导致的变量安全问题 206

8.1.2.2 变量安全问题的解决之道 208

8.1.2.3 ThreadLocal变量 212

8.1.3 线程同步 213

8.1.3.1 同步锁的必要性 213

8.1.3.2 单实例线程的同步锁 214

8.1.3.3 多实例线程的同步锁 217

8.1.3.4 线程死锁 220

8.2 实战线程池开发 221

8.2.1 服务器的工作模式 221

8.2.2 实现线程池 223

8.2.2.1 线程池一 223

8.2.2.2 线程池二 227

8.3 并发工具包 232

8.3.1 线程池的类型 232

8.3.1.1 任务计划线程池 232

8.3.1.2 固定线程池 234

8.3.1.3 缓存线程池 236

8.3.2 线程同步辅助类 237

8.3.2.1 CyclicBarrier 237

8.3.2.2 CountDownLatch 239

8.3.3 阻塞队列 241

8.3.4 返回结果的线程 246

8.3.4.1 等待单个线程 246

8.3.4.2 等待一组线程 247

8.3.5 信号量限制 249

8.4 总结 250

第9章 Java安全 251

9.1 Java安全接口概述 252

9.1.1 Java安全接口的层次 252

9.1.2 Java安全的基础设施 253

9.2 Java安全API 255

9.2.1 消息摘要 255

9.2.2 数字签名 257

9.2.3 基于密码术的加密 260

9.3 安全传输 261

9.3.1 SSL原理 261

9.3.2 底层的SSL支持——JSSE 263

9.3.3 针对HTTP的解决方案 271

9.4 访问控制框架——JAAS 276

9.5 总结 278

第10章 图形界面开发 279

10.1 图形界面开发基础 280

10.1.1 图形坐标系统 280

10.1.2 字体和颜色 280

10.1.3 绘图API 283

10.1.4 加载图形文件 288

10.2 AWT和Swing控件 290

10.3 布局管理器 292

10.3.1 FlowLayout 292

10.3.2 GridLayout 294

10.3.3 BorderLayout 295

10.3.4 CardLayout 296

10.3.5 GridBagLayout 296

10.4 事件模型 298

10.4.1 事件类 299

10.4.2 事件监听器 299

10.4.3 事件适配器 300

10.5 在JBuilder中开发图形界面应用 301

10.6 JDK 6.0的桌面API 307

10.6.1 资源关联 307

10.6.2 桌面集成 310

10.6.2.1 Splash屏幕 310

10.6.2.2 系统托盘 310

10.7 总结 313

第11章 Applet、JavaWebStart、SWT与JavaFX 314

11.1 Applet 315

11.1.1 Applet简介 315

11.1.1.1 Applet的基础概念 315

11.1.1.2 运行Applet 316

11.1.1.3 运行Applet的潜在问题 318

11.1.2 为Applet签名 321

11.1.2.1 Java的权限体系 321

11.1.2.2 启用数字签名获取运行权限 323

11.1.3 用JavaScript操作Applet 325

11.2 JavaWebStart 327

11.2.1 JavaWebStart简介 327

11.2.2 下载无须签名的应用程序 327

11.2.3 下载需要签名的应用程序 330

11.3 SWT 332

11.3.1 SWT简介 332

11.3.2 SWT简单应用实例 333

11.3.3 可视化编辑器SWT Designer 337

11.3.4 分发SWT应用程序 348

11.4 JavaFX 348

11.4.1 JavaFX简介 348

11.4.2 在Eclipse中开发JavaFX应用 350

11.4.3 运行JavaFX应用 353

11.4.4 JavaFX与Java的结合 354

11.5 总结 355

第12章 数据库存取 356

12.1 JDBC基础 357

12.1.1 JDBC简介 357

12.1.2 JDBC驱动程序 359

12.1.2.1 Derby 359

12.1.2.2 其他数据库 362

12.1.2.3 自动加载驱动程序 363

12.1.3 JDBC基础开发 364

12.1.3.1 查询数据 364

12.1.3.2 增删改数据 365

12.1.3.3 调用存储过程 366

12.1.4 元数据 369

12.1.4.1 数据库元数据 369

12.1.4.2 结果集元数据 374

12.1.5 JDBC异常 376

12.2 JDBC开发专题 376

12.2.1 数据集的二次处理 376

12.2.1.1 JDBC提供的ResultSet 377

12.2.1.2 JDBC提供的RowSet 382

12.2.1.3 DataExpress提供的DataSet 389

12.2.2 RowId 397

12.2.3 动态游标 397

12.2.4 预编译执行计划 399

12.2.5 批处理 400

12.2.5.1 基于Statement 400

12.2.5.2 基于PreparedStatement 401

12.2.6 操作大二进制数据 403

12.2.6.1 写入BLOB数据 403

12.2.6.2 读出BLOB数据 404

12.2.7 事务 405

12.2.7.1 简单事务 406

12.2.7.2 SavePoint 407

12.3 数据库之外的持久化手段——Preferences API 409

12.4 Java目录服务——JNDI 410

12.5 总结 413

第13章 开源数据库产品 414

13.1 O/R Mapping框架——Hibernate 415

13.1.1 Hibernate配置 415

13.1.2 Hibernate对象操作 423

13.1.2.1 会话工厂与会话 423

13.1.2.2 延迟加载 424

13.1.2.3 级联新增 427

13.1.2.4 级联删除 428

13.1.2.5 级联修改 429

13.1.3 Hibernate HQL操作 432

13.2 O/R Mapping框架——iBatis 432

13.2.1 iBatis配置 432

13.2.2 iBatis对象操作 435

13.3 嵌入式数据库——文件数据库BerkeleyDB 439

13.3.1 BerkeleyDB简介 439

13.3.2 创建数据库 441

13.3.3 数据基本操作 442

13.3.4 游标 444

13.4 嵌入式数据库——内存数据库StelsEngine 447

13.5 总结 449

第14章 分布式计算 450

14.1 鸟瞰分布式组件技术 451

14.2 RMI 451

14.2.1 RMI架构 451

14.2.2 RMI实例 453

14.2.3 简化RMI的部署实施 456

14.3 CORBA 459

14.3.1 CORBA简介 459

14.3.1.1 什么是CORBA 459

14.3.1.2 ORB原理 459

14.3.1.3 CORBA与Java的关系 461

14.3.1.4 使用CORBA的优点 462

14.3.2 接口定义语言IDL 463

14.3.3 使用JDK开发CORBA应用 464

14.3.3.1 简单的CORBA应用 464

14.3.3.2 传递复杂数据类型的CORBA应用 468

14.4 总结 476

第15章 Java本地调用 477

15.1 JNI原理 478

15.2 调用C程序 479

15.2.1 在Windows平台上调用C函数 479

15.2.2 在Linux平台上调用C函数 482

15.2.2.1 gcc简介 482

15.2.2.2 简单例程 484

15.2.2.3 传递字符串 485

15.2.2.4 传递整型数组 486

15.2.2.5 传递字符串数组 487

15.2.2.6 传递对象数组 489

15.3 调用Delphi程序 490

15.3.1 简单例程 491

15.3.2 关闭窗口实用程序 492

15.4 总结 496

第16章 反射机制及其应用 497

16.1 反射机制概述 498

16.1.1 反射的原理 498

16.1.2 反射的简单实例 500

16.2 Annotation 501

16.2.1 Annotation的原理 501

16.2.1.1 定义Annotation类型 502

16.2.1.2 使用Annotation类型 503

16.2.1.3 内置的Annotation类型 504

16.2.2 Annotation的简单实例 504

16.2.3 用Annotation开发Web Services 507

16.3 动态代理 511

16.3.1 代理机制 512

16.3.2 Hibernate拦截器 514

16.3.3 Spring AOP 516

16.3.4 实现一个动态代理框架 519

16.4 操作JavaBeans 524

16.5 总结 528

第17章 Java动态编程 529

17.1 用Compiler API创建类文件 530

17.1.1 基础应用 530

17.1.2 高级应用 532

17.2 用Instrumentation构建代理 535

17.2.1 Instrumentation原理 535

17.2.2 基础应用 536

17.2.3 转换类文件字节码 537

17.3 用Javassist转换类文件 540

17.3.1 Javassist原理 540

17.3.2 基础应用 541

17.4 用Spring替换类方法 545

17.5 用ClassEditor修改类文件 548

17.6 总结 550

第18章 与动态语言的结合 551

18.1 Java与JavaScript的结合 552

18.1.1 支持脚本语言的意义 552

18.1.2 Java对JavaScript的支持 552

18.1.2.1 执行脚本语言 553

18.1.2.2 调用脚本语言的方法 553

18.1.2.3 脚本语言使用Java的变量 554

18.1.2.4 脚本语言使用Java的类 555

18.1.2.5 脚本语言实现Java的接口 556

18.1.3 测试脚本的工具 557

18.2 Java与Ruby的结合 558

18.2.1 JRuby的安装 558

18.2.2 在Ruby中调用Java类 559

18.3 Java与PHP的结合 559

18.3.1 PHP-Java-Bridge的安装 560

18.3.2 在PHP中调用Java类 561

18.4 Java与Python的结合 561

18.4.1 Jython的安装 562

18.4.2 在Java中执行Python语句 562

18.4.3 在Python中调用Java类 564

18.4.4 把Python程序编译成Java类 564

18.5 Groovy简介 564

18.6 内嵌HTTP Server 566

18.7 总结 567

第19章 JMX资源管理容器 568

19.1 JMX概述 569

19.1.1 JMX简介 569

19.1.2 JMX的层次结构 569

19.2 MBean的分类 571

19.2.1 标准MBean 571

19.2.2 动态MBean 574

19.2.3 开放MBean 579

19.2.4 模型MBean 579

19.3 JMX管理界面 579

19.4 JMX通知服务 581

19.5 总结 584

第20章 XML开发 585

20.1 XML简介 586

20.1.1 XML文档规则 586

20.1.2 常用概念 586

20.1.3 第一个XML文档 587

20.2 XML解析 588

20.2.1 DOM 588

20.2.2 DOM4J 592

20.2.3 SAX 593

20.2.3.1 用SAX解析XML 593

20.2.3.2 用SAX同步解析XML数据流 597

20.2.4 StAX 601

20.3 XML编辑 603

20.3.1 用DOM创建XML 603

20.3.2 用JDOM修改XML 606

20.4 XML转换 608

20.4.1 XSLT简介 608

20.4.2 客户端转换 609

20.4.3 服务端转换 613

20.5 XML校验 616

20.5.1 DTD简介 616

20.5.2 XML Schema简介 617

20.5.3 用XDK校验XML 619

20.6 XML映射 621

20.6.1 XML属性文件 621

20.6.2 用JAXB 2.0映射对象 623

20.6.2.1 对象映射 624

20.6.2.2 对象集合映射 628

20.7 总结 630

第21章 常用工具包 631

21.1 日志工具包Log4J 632

21.1.1 简单实例 632

21.1.2 原理分析 633

21.1.3 专业化应用 635

21.1.4 一个启示 637

21.2 日程工具 639

21.2.1 日程工具类Timer 639

21.2.2 日程工具包Quartz 640

21.2.2.1 常规应用 640

21.2.2.2 持久化任务 644

21.3 ZIP工具类 648

21.3.1 JDK提供的ZIP工具类 648

21.3.2 Apache提供的ZIP工具类 651

21.4 Excel文档存取工具包POI 653

21.5 将Java程序封装成NT Service 657

21.6 与COM组件互操作 664

21.7 把POJO发布成Web Services 666

21.7.1 编写服务程序 666

21.7.2 编写客户程序 669

21.7.2.1 根据服务接口 669

21.7.2.2 根据WSDL 670

21.8 Velocity模板引擎 671

21.9 性能监视工具 673

21.10 总结 675

附录A 在XMLSpy中编写DTD 676

附录B 在XMLSpy中编写XML Schema 679

附录C HTTP1.1状态代码及其含义 684