《Java程序员指南》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)Douglas A.Lyon著;朱剑平,汪青青等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302105901
  • 页数:840 页
图书介绍:本书以独特的方式涵盖了Java技术的新特性。本书模块化的结构适合教师灵活地授课,本书涉及了UML以及设计模式。

第1章 Java基本概念 1

1.1 Java的历史 1

目录 1

1.2 什么是Java 2

1.3 Java模型与HTML模型的比较 3

1.5 练习 4

1.4 小结 4

2.1 Java中的8种原始数据类型 5

第2章 原始数据类型 5

2.3 简单算术表达式 7

2.2 有符号定点数据类型 7

2.4 原始数据类型的基本实例 8

2.6 一些数学算法 10

2.5 原始数据类型转换 10

2.8 练习 11

2.7 小结 11

3.1 优先级、结合性以及单目/二目运算符 13

第3章 运算符 13

3.2 具有最高优先级的运算符 20

3.3 增量与减量运算符 21

3.4 算术运算符 22

3.5 赋值运算符 23

3.7 自测题 24

3.6 运算符的句法规则 24

3.8 练习 30

4.1 计数系统 31

第4章 基数换算 31

4.2 通用计算机计数系统 32

4.5 由十进制换算为二进制、八进制和十六进制 33

4.4 由二进制换算至八进制和十六进制 33

4.3 从二进制、八进制和十六进制换算至十进制 33

4.6 小结 35

4.7 练习 36

第5章 控制结构 37

5.2 等于运算符 38

5.1 关系运算符 38

5.4 条件运算符 39

5.3 逻辑运算符 39

5.5 if语句 40

5.6 while和do语句 43

5.7 for语句 44

5.8 continue语句 45

5.9 break语句 46

5.10 switch语句 48

5.11 return语句 50

5.12 练习 51

6.1 类的概念 53

第6章 引用数据类型 53

6.2 构造函数 56

6.3 getter和setter方法 57

6.4 关键词null 58

6.5 子类和超类 59

6.6 casting 63

6.7 关键词 64

6.8 接口 65

6.9 以数据为中心同时面向对象的设计 70

6.11 小结 71

6.10 脆弱的基类问题 71

6.12 练习 72

7.1 静态方法 75

第7章 静态、抽象及final修饰符 75

7.2 静态变量 76

7.3 抽象类和方法 80

7.4 final修饰符和命名常量 83

7.6 单件模式 84

7.5 final类和方法 84

7.7 小结 85

7.8 练习 86

8.1 数组 88

第8章 数组和向量 88

8.2 向量 98

8.3 构建一辆购物手推车 101

8.4 堆栈 104

8.5 列表 105

8.6 队列 106

8.8 练习 107

8.7 小结 107

9.1 wrapper类 110

第9章 wrapper类和字符串 110

9.1.2 Character 111

9.1.1 Boolean 111

9.1.3 数值wrapper类 112

9.2 String 114

9.3 ReplaceString 117

9.4 StringTokenizer 118

9.5 CsvParser 119

9.6 迷宫程序(Maze Solver) 121

9.8 练习 124

9.7 小结 124

10.1 第1个异常 127

第10章 异常 127

10.2 监视输入或捕捉错误 128

10.3 定义自己的异常 129

10.4 检验异常与非检验异常 130

10.5 try语句的句法 131

10.6 throw语句 134

10.7 throws修饰符 135

10.9 公共安全和异常 136

10.8 System.err 136

10.10 小结 137

10.11 练习 138

11.1 包 139

第11章 包、导入以及可见性 139

11.2 导入语句 141

11.3 可见性修饰符 143

11.5 练习 145

11.4 小结 145

第12章 嵌套类和嵌套接口 146

12.1 成员内部类 147

12.2 LocalInnerClass 149

12.3 匿名内部类 150

12.4 嵌套静态类 154

12.5 嵌套接口 155

1 2.6 This关键词 157

12.7 小结 158

12.8 练习 159

13.1 并发、多任务和多线程 160

第13章 线程 160

13.2 建立新线程 163

13.3 线程状态 165

13.4 同步化方法和超量的啤酒 166

13.5 线程组 168

13.6 线程管理器 169

13.7 ThreadUtil 171

13.8 ThreadQueue 175

13.9 运行数以千计的线程 177

13.10 Job线程 178

13.11 小结 179

13.12 练习 180

14.1 什么是文件 182

第14章 文件 182

14.2.2 Futil.getReadFile 183

14.2.1 Futil.getDirFile 183

14.2 获取用户文件 183

14.3 File类 184

14.2.3 Futil.getWriteFile 184

14.3.2 File类的使用 185

14.3.1 File类概要 185

14.4.1 FilenameFilter接口概要 187

14.4 java.io.FilenameFilter接口 187

14.4.4 FileFilter类 188

14.4.3 DirFilter 188

14.4.2 FilenameFilter接口的使用 188

14.4.5 WildFilter类 190

14.5.1 Ls.getWildNames 191

14.5 Ls类 191

14.5.3 Ls.getDirNames 192

14.5.2 Ls.wildToConsole 192

14.5.5 Ls.WordPrintMerge 193

14.5.4 Ls.delete WildFiles 193

14.6 DirList 194

14.8 练习 197

14.7 小结 197

第15章 流 198

15.1.1 FileInputStream类概要 199

15.1 FileInputStream类 199

15.1.2 FileInputStream类的使用 200

15.1.3 Futil.getFileInputStream 201

15.1.4 Futil.available 202

15.2.2 FileOutputStream类的使用 203

15.2.1 FileOutputStream类概要 203

15.2 FileOutputStream类 203

15.2.4 Futil.close(OutputStream) 206

15.2.3 Futil.getFileOutputStream 206

15.3.1 DataInputStream类概要 207

15.3 DataInputstream类 207

15.3.2 DataInputStream类的使用 208

15.4.1 DataOutputStream类概要 210

15.4 DataOutputStream类 210

15.4.2 DataOutputStream类的使用 211

15.5 StreamSniffer类 213

15.5.1 StreamSniffer类概要 218

15.5.2 StreamSniffer类的使用 219

15.6 序列化 220

15.7 读取和写入Float的GZIPed文件 223

15.9 练习 225

15.8 小结 225

第16章 读取程序 228

16.1 ReaderUtils 229

16.2 读取CSV文件 231

16.4 Dos类 235

16.3 Cat.toConsole方法 235

16.6.1 StreamTokenizer类概要 237

16.6 StreamTokenizer类 237

16.5 拨号 237

16.6.2 StreamTokenizer类的使用 238

16.6.3 Futil.readDataFile 240

16.6.4 Futil.writeFilteredHrefFile 241

16.7 futils.PolymorphicProcessor 243

16.8 小结 244

16.9 练习 245

第17章 Writer 248

17.1 获得输出文件名 249

17.2 SimpleWriter 251

17.3 HTML链接 252

17.4 Cat类 256

17.5 Futil.makeTocHtml 258

17.7 练习 260

17.6 小结 260

18.1 历史观 262

第18章 Swing介绍 262

18.2 Swing与AWT的关系 263

18.3 Screen类 264

18.4 重量级与轻量级 265

18.5 简单输入和输出 266

18.6.1 FlowLayout 269

18.6 布局介绍 269

18.6.2 GridLayout 271

18.6.3 BorderLayout 272

18.6.4 混合布局 273

18.6.5 面板、图文框和FlowLayout 274

18.6.6 自定义布局 275

18.7.1 Dialog类 281

18.7 从用户那里获取文件 281

18.7.2 FileDialog类 282

18.7.3 用Swing来获取文件 285

18.8 小结 286

18.9 练习 287

第19章 事件简介 290

19.1 ClosableJFrame 291

19.2 actionPerformed方法 295

19.3 RunButton 296

19.4.1 Observer接口 298

19.4 历史回顾 298

19.5 NamedObservable 299

19.4.2 Observer与Observable类概要 299

19.6 ObservableDouble 300

19.7 ObserverOfPoint3d 301

19.8 小结 302

19.9 练习 303

20.1 适配器模式和命令模式 304

第20章 设计模式和事件 304

20.2 命令模式和touchtone键区 305

20.3 RunTextField 306

20.4 BorderLayout和RunTextField 308

20.5 RunCheckBox 309

20.6 RunPasswordField 311

20.7 RunList 312

20.8.1 RunScroll 314

20.8 滚动条和滑块 314

20.8.2 RunSlider 315

20.9 RunRadio 316

20.10 RunRadioButton、ButtonGroup和FlowLayout 318

20.11 MainMenuBar和RunCheckBoxMenuItems 319

20.12 RunRadioButtonMenuItem组 321

20.13 MVC设计模式 323

20.14 中间件设计模式 325

20.15 设计过程和JTabbedPane简述 327

20.17 练习 332

20.16 小结 332

21.1 HtmlViewer 337

第21章 在Swing中查看HTML 337

21.2 HtmlSynthesizer 339

21.4 练习 347

21.3 小结 347

22.1 获取键事件信息 349

第22章 使用键盘 349

22.2 键修饰符编程 351

22.3 向TouchTone添加键事件 352

22.4 Mnemonics和RunMenuItem 353

22.5 MnemonicMenu 355

22.7 练习 356

22.6 小结 356

23.1 MouseController 358

第23章 鼠标输入 358

23.2 键事件和鼠标事件的结合 360

23.3 通过MouseComponentMover来移动和改变组件大小 363

23.4 MoveLabel 365

23.6 练习 367

23.5 小结 367

24.1 ReflectUtil获取实例信息 368

第24章 反射 368

24.2 打印类名 370

24.4 带有N个参数的方法 371

24.3 打印Objects println(Object o[])数组 371

24.5 getter方法 372

24.6 setter方法 373

24.7 将String转换为方法 374

24.8 从String调用方法 375

24.9 使用反射的命令行解释器 376

24.10 ReflectUtil.java 377

24.11 小结 381

24.12 练习 382

25.1 引言 384

第25章 自动消息转发 384

25.2 委派与多重继承 388

25.3 相关工作 393

25.4 一个真实的例子 394

25.5 DelegateSynthesizer 395

25.5.1 DelegateSynthesizer实现 397

25.5.2 DelegateSynthesizer 399

25.6 小结 406

25.7 练习 408

第26章 绘图简介 409

26.1 Graphics类 410

26.1.1 Graphics类概述 411

26.1.2 Graphics类的方法 412

26.1.3 Radar类 416

26.2 Spiral组件 418

26.2.2 阿基米德螺旋形 419

26.2.1 Spiral类 419

26.2.3 Fermat的SpiralComponent类 421

26.3 Poor Man线程和damage control功能 423

26.5 练习 424

26.4 小结 424

27.1.1 Color类概要 426

27.1 Color类 426

第27章 具有色彩和图像的商业图形 426

27.1.2 Color类的使用 427

27.1.3 添加色彩至Radar 430

27.1.4 创建颜色表 431

27.1.5 色彩网格 432

27.2 FontMetrics类 435

27.2.2 FontMetrics类的使用 436

27.2.1 FontMetrics类概要 436

27.2.3 绘制具有背景的字符串 437

27.2.4 使用Target类绘制垂直字符串 438

27.3.1 LineGraph类 439

27.3 图表 439

27.3.2 BarGraph类 440

27.3.3 PieGraph类 441

27.4 图像 442

27.4.1 ImageUtils类 443

27.4.2 ImageFrame类 445

27.4.3 WriteGIF类 448

27.5 ImagePanel类 449

27.7 练习 451

27.6 小结 451

28.2 多层计算模型 454

28.1 JDBC的概念 454

第28章 JDBC 454

28.3 Javasoft框架 455

28.4 打开到RDBMS的连接 456

28.5 建立SQL语句实例 457

28.6 DatabaseWriter 458

28.7 ResultSetMetaData 459

28.8 DataBaseMetaData 461

28.9 编写SQLBean 462

28.10 小结 467

28.11 练习 468

29.1 OSI参考模型 469

第29章 网络编程 469

29.3 域名映射 471

29.2 客户端-服务器范例 471

29.4 套接字和端口 473

29.4.1 创建原子钟读取第1个套接字 475

29.4.2 为建立Web服务器而服务的第1个套接字 476

29.4.3 使用套接字通过SMTP发送电子邮件 480

29.4.4 使用套接字传输实例 483

29.4.5 计算服务器 486

29.4.6 解决类配置问题 489

29.5 建立报价客户端读取第1个URL 492

29.6 建立浏览器读取一个URL 494

29.7 防火墙问题 496

29.9 练习 498

29.8 小结 498

第30章 servlet 502

30.1 第1个servlet 503

30.2 解码EchoEnvironmentServlet 505

30.3 GuestBook和3级编程模式 507

30.4 SQL和Execute类 513

30.5 服务器端图形 514

30.6 Get/Post和RequestUtil类 517

30.7 cookie和会话 518

30.7.1 cookie和servlet API 519

30.7.2 会话管理 521

30.8 练习 522

31.1 什么是JSP 524

第31章 JSP 524

31.2 JSP与其他编程工具的比较 525

31.3 如何使用JSP 526

31.4 cookie计数器、注释和页面导入 527

31.5 查找JSP中的Header 529

31.6 使用JSP发送邮件 532

31.7 多媒体服务器页 534

31.8 MSP中的图形 535

31.9 构建一个元搜索引擎 536

31.10 构建一个快捷的脱机元搜索引擎 538

31.11 构建一辆具有会话Bean的购物车 542

31.13 练习 544

31.12 小结 544

32.1 什么是XML 545

第32章 XML 545

32.3 如何安装XML库 546

32.2 为什么使用XML 546

32.4 如何定义自己的XML 547

32.5 Xml2Cart 549

32.6 Csv2XML 554

32.7 XML显示 560

32.9 XML的问题和局限性 561

32.8 我们应该把RDBMS转换成XML吗 561

32.11 练习 562

32.10 小结 562

33.2 SAX和DOM模型 564

33.1 XML的发展 564

第33章 更多的XML技术 564

33.4 使用JAXP构建一个DOM Level 2 565

33.3 JAXP的装配位置 565

33.5 XML命名空间 571

33.6 XML schema 572

33.7 XSLT 577

33.8 小结 587

33.9 练习 588

34.2 组件 590

34.1 代码重用问题的历史 590

第34章 bean属性 590

34.5 属性 591

34.4 事件 591

34.3 bean 591

34.6 InverterGate示例 592

34.7 InverterGate类 595

34.9 控制台窗口输出 596

34.8 InverterGate类的代码 596

34.10 小结 597

34.11 练习 598

35.2 什么是内省 599

35.1 内省的历史 599

第35章 内省 599

35.3 BeanInfo 600

35.5 命名惯例 601

35.4 SimpleBeanInfo 601

35.7 小结 602

35.6 IntrospectionException 602

35.8 练习 603

36.1 什么是FeatureDescriptor 604

第36章 FeatureDescriptor 604

36.2 FeatureDescriptor详述 606

36.3 BeanDescriptor 607

36.4 EventSetDescriptor 609

36.5 MethodDescriptor 612

36.7 PropertyDescriptor 615

36.6 ParameterDescriptor 615

36.9 BeanInfo示例 618

36.8 IndexedPropertyDescriptor 618

36.10 小结 619

36.11 练习 620

37.1 EJB和服务器端架构 621

第37章 Enterprise Java Bean简介 621

37.2.1 对组件开发的支持 622

37.2 对企业级服务器端架构的需求 622

37.2.3 可移植性 623

37.2.2 伸缩性 623

37.3 多层应用程序 624

37.5 资源 625

37.4 竞争架构 625

37.7 练习 626

37.6 小结 626

38.2 对J2EE兼容的EJB容器的要求 627

38.1 简介 627

第38章 EJB容器 627

38.3 企业bean的编程限制 631

38.4.1 业务逻辑:EJB类 632

38.4 EJB应用程序的4个组件 632

38.5 使用接口 633

38.4.2 部署描述符 633

38.5.1 EJB函数调用序列 634

38.5.2 EJB应用程序服务器 635

38.7 练习 636

38.6 小结 636

39.1 简介 637

第39章 会话bean 637

39.2 无状态会话bean 638

39.4 如何编写会话bean 639

39.3 有状态会话bean 639

39.4.2 示例 641

39.4.1 如何从客户端连接一个EJB 641

39.4.3 编写应用程序 642

39.4.4 JNDI 646

39.4.5 本地接口 647

39.6 练习 648

39.5 小结 648

40.2 部署EJB 649

40.1 简介 649

第40章 部署会话bean 649

40.3 启动服务器 650

40.4 创建一个应用程序 651

40.5 添加应用程序客户端 656

40.6 部署应用程序 658

40.7 运行客户端 659

40.8.1 编码JSP 661

40.8 在JSP中运行EJB 661

40.8.2 部署JSP 662

40.9 小结 663

40.10 练习 664

41.2 设计考虑 665

41.1 简介 665

第41章 实体bean 665

41.4 home接口 666

41.3 实体bean的结构 666

41.4.2 由bean管理的持久性 670

41.4.1 由容器管理的持久性 670

41.5 小结 673

41.6 练习 674

42.1 简介 675

第42章 EJB安全 675

42.2 安全准则 677

42.3 企业应用程序安全 678

42.4 EJB安全API 679

42.6 练习 680

42.5 小结 680

43.1 简介 681

第43章 RMI 681

43.3 RMI封送处理 682

43.2 RMI体系结构 682

43.4 打包现有的Java类 686

43.5 EJB和RMI/IIOP 687

43.6 小结 688

43.7 练习 689

第44章 参考文献 690

A.1 句法简介 704

附录A 句法 704

A.2 保留词 708

A.3 小结 709

B.2 Java语言 710

B.1 简介 710

附录B 关于Java的辩论 710

B.2.1 Java是面向对象的 711

B.2.3 重载运算符 712

B.2.2 Java拥有与Simula相似的类 712

B.3 多重继承 713

B.5 平台独立性:经常性地编译 714

B.4 数组可以是C风格或Java风格的 714

B.7 虚拟机 715

B.6 支持多媒体的新API 715

B.9 性能 716

B.8 Javadoc 716

B.11 其他语言 717

B.10 配置 717

B.13 致谢 718

B.12 小结 718

C.1 在UNIX下运行Java 719

附录C 如何设置Java系统环境 719

C.2.1 设置类路径 721

C.2 在Windows下运行Java 721

C.3 Metrowerks IDE用法 722

C2.2 环境空间不足 722

C.3.1 生成一个新项目 723

C.3.2 更改target类 724

C.3.3 如何在Java中添加一个文件 725

C.4 IntelliJ用法 727

C.3.4 如何编辑XML和其他数据格式 727

C.6 练习 730

C.5 小结 730

D.1.1 方法名、包名和变量名 732

D.1 命名规范 732

附录D 编码类型 732

D.1.4 可见性 733

D.1.3 类名和接口名 733

D.1.2 常量名称 733

D.3 避免阴影变量 734

D.2 避免不明确的变量名称 734

D.4 格式 735

D.5 组织 736

D.6 小结 738

E.1 Javadoc简介 739

附录E 学习使用Javadoc 739

E.2.3 @deprecated标签(自JDK 1.0版) 740

E.2.2 {@docRoot}标签(自JDK 1.3版) 740

E.2 Javadoc标签 740

E.2.1 @author标签(自JDK 1.0版) 740

E.2.7 @see标签(自JDK 1.0版,在JDK 1.2版中出现问题,在JDK 1.2.2版中获得修复) 741

E.2.6 @return标签(自JDK 1.0版) 741

E.2.4 @exception标签(自JDK 1.0版) 741

E.2.5 @param标签(自JDK 1.0版) 741

E.2.11 {@link}标签(自JDK 1.2版) 742

E.2.10 @version标签(自JDK 1.0版) 742

E.2.8 @since标签(自JDK 1.1版) 742

E.2.9 @throws标签(自JDK 1.2版) 742

E.4 如何在CodeWarrior中运行Javadoc 743

E.3 通用HTML标签 743

E.5 如何使用JDK运行Javadoc 745

E.7 练习 747

E.6 小结 747

F.1 3种文档 750

附录F 面向对象的设计和文档 750

F.3 面向对象设计 751

F.2 软件设计师 751

F.4 过程化设计 754

F.5 流程图 757

F.6 组合过程化和面向对象的设计 758

F.7 软件生命周期模型 759

F.9 练习 762

F.8 小结 762

G.1 UML简介 764

附录G UML:面向对象设计的通用语言 764

G.4 用例图 765

G.3 用户需求 765

G.2 静态特性和动态特性 765

G.5 对象图 766

G.6 类图 767

G.7 协作图 768

G.8 顺序图 769

G.9 状态图 770

G.10 小结 771

G.11 练习 772

附录H 设置JDBC 773

H.1 打开一个到RDBMS的连接 773

H.2 在Windows中设置一个数据源名称 774

H.3 使用MySQL 779

H.4 使用ORACLE 783

H.4.1 在Windows 98/NT上安装ORACLE JDBC驱动程序 783

H.4.2 设置CodeWarrior 784

H.5 小结 784

I.1 设置一个servlet引擎 785

附录I 设置servlet 785

I.2 设置Tomcat 786

I.3 设置JSWDK 788

附录J 位运算符 791

J.1 补运算符 792

J.2 与、或以及异或运算符 792

J.3 移位运算符 793

J.4 小结 796

J.5 练习 796

K.1 集合框架接口 799

K.2 集合接口 799

附录K 集合 799

K.2.1 Set接口 800

K.2.2 List接口 801

K.2.3 Map接口 801

K.2.4 Iterator、ListIterator和Enumeration接口 802

K.3 集合实现 803

K.3.1 HashSet方法 804

K.3.2 惟一性意味着覆盖hashcode和equals方法 804

K.3.3 使用getClass代替instanceof 807

K.3.4 TreeSet类 808

K.3.5 自然排序 808

K.3.6 全序排序 810

K.3.7 ArrayList类 813

K.3.8 LinkedList类 816

K.3.9 HashMap类 817

K.3.10 散列法 820

K.3.11 TreeMap类 824

K.3.12 Collection类 826

K.4 小结 827

K.5 练习 828

术语表 830