图书介绍

Java编程思想 第3版PDF|Epub|txt|kindle电子书版本下载

Java编程思想 第3版
  • (美)Bruce Eckel著;陈昊鹏,饶若楠等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:711116220X
  • 出版时间:2005
  • 标注页数:756页
  • 文件大小:34MB
  • 文件页数:796页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Java编程思想 第3版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1.1 抽象过程1

目录出版者的话专家指导委员会读者评论关于《Thinking in C++》译者序序言前言第1章 对象导论1

1.2 每个对象都有一个接口2

1.3 每个对象都提供服务4

1.8.4 确保正确清理5

1.4 被隐藏的具体实现5

1.5 复用具体实现5

1.6 继承:复用接口6

1.11 持久性7

1.10 并发性7

1.12 Java与Internet8

1.12.1 Web是什么8

1.7 伴随多态的可互换对象9

1.8 对象的创建、使用和生命期12

1.8.1 集合与迭代器13

1.8.2 单根继承结构14

1.8.3 向下转型与模板/泛型15

1.9 异常处理:处理错误16

1.12.2 客户端编程19

1.12.4 应用23

1.12.3 服务器端编程23

1.13 Java为什么成功24

1.13.1 系统易于表达、易于理解24

1.13.2 类库的巨大影响力24

1.13.3 错误处理24

1.13.4 大型程序设计24

1.14 Java与C++25

1.15 总结26

2.1 用引用操纵对象27

第2章 一切都是对象27

2.2 必须由你创建所有对象28

2.2.1 存储到什么地方28

2.2.2 特例:基本类型29

2.2.3 Java中的数组30

2.3 永远不需要销毁对象30

2.3.1 作用域30

2.3.2 对象的作用域31

2.4 创建新的数据类型:类31

2.5 方法、参数和返回值33

2.6 构建一个Java程序35

2.6.1 名字可见性35

2.6.2 运用其他构件35

2.6.3 static关键字36

2.7 你的第一个Java程序37

2.8 注释和嵌入式文档39

2.8.1 注释文档39

2.8.2 语法39

2.8.3 嵌入式HTML40

2.8.4 一些标签示例41

2.8.5 文档示例42

2.9 编码风格43

2.10 总结43

2.11 练习43

第3章 控制程序流程45

3.1 使用Java操作符45

3.1.1 优先级45

3.1.2 赋值45

3.1.3 算术操作符48

3.1.4 自动递增和递减50

3.1.5 关系操作符52

3.1.6 逻辑操作符53

3.1.7 按位操作符55

3.1.8 移位操作符56

3.1.9 三元操作符if-else59

3.1.10 逗号操作符60

3.1.11 字符串操作符+60

3.1.12 使用操作符时常犯的错误61

3.1.13 类型转换操作符61

3.1.14 Java没有“sizeof”63

3.1.15 再论优先级63

3.1.16 操作符小结64

3.2.2 if-else73

3.2 执行流程控制73

3.2.1 true和false73

3.2.3 return74

3.2.4 迭代75

3.2.5 do-while76

3.2.6 for76

3.2.7 break和continue78

3.2.8 switch83

3.3 总结86

3.4 练习86

第4章 初始化与清理89

4.1 用构造器确保初始化89

4.2 方法重载91

4.2.2 涉及基本类型的重载93

4.2.1 区分重载方法93

4.2.3 以返回值区分重载方法98

4.2.4 缺省构造器98

4.2.5 this关键字99

4.3 清理:终结处理和垃圾回收102

4.3.1 finalize()的用途何在103

4.3.2 你必须实施清理103

4.3.3 终结条件104

4.3.4 垃圾回收器如何工作105

4.4 成员初始化107

4.4.1 指定初始化108

4.4.2 构造器初始化109

4.5 数组初始化115

4.6 总结121

4.7 练习122

第5章 隐藏具体实现125

5.1 包:程序库单元125

5.1.1 创建独一无二的包名127

5.1.2 定制工具库129

5.1.3 用import改变行为130

5.1.4 对使用包的忠告130

5.2 Java访问权限修饰词131

5.2.1 包访问权限131

5.2.2 public:接口访问权限131

5.2.3 private:你无法访问133

5.2.4 protected:继承访问权限134

5.3 接口和实现135

5.4 类的访问权限136

5.5 总结138

5.6 练习139

6.1 组合语法141

第6章 复用类141

6.2 继承语法144

6.3 结合使用组合和继承148

6.3.1 确保正确清理149

6.3.2 名称屏蔽152

6.4 在组合与继承之间选择153

6.5 protected关键字155

6.6 增量开发156

6.7 向上转型156

6.8 final关键字158

6.8.1 final数据158

6.8.2 final方法161

6.8.4 有关final的忠告163

6.8.3 final类163

6.9 初始化及类的加载164

6.10 总结166

6.11 练习166

第7章 多态169

7.1 再论向上转型169

7.2 转机172

7.2.1 方法调用绑定172

7.2.2 产生正确的行为173

7.2.3 可扩展性175

7.2.4 缺陷:“覆盖”私有方法178

7.3 抽象类和抽象方法179

7.4 构造器和多态182

7.4.1 构造器的调用顺序182

7.4.2 继承与清理184

7.4.3 构造器内部的多态方法的行为186

7.5 用继承进行设计188

7.5.1 纯继承与扩展189

7.5.2 向下转型与运行时类型识别191

7.6 总结192

7.7 练习193

第8章 接口与内部类195

8.1 接口195

8.1.1 Java中的多重继承198

8.1.2 通过继承来扩展接口200

8.13 群组常量202

8.1.4 初始化接口中的字段203

8.1.5 嵌套接口204

8.2 内部类207

8.2.1 内部类与向上转型208

8.2.2 在方法和作用域内的内部类210

8.2.3 匿名内部类211

8.2.4 链接到外部类215

8.2.5 嵌套类216

8.2.6 引用外围类的对象218

8.2.7 从多层嵌套类中访问外部类的成员219

8.2.8 内部类的继承220

8.2.9 内部类可以被覆盖吗220

8.2.10 局部内部类222

8.2.11 内部类标识符223

8.3 为什么需要内部类224

8.3.1 闭包与回调226

8.3.2 内部类与控制框架228

8.5 练习233

8.4 总结233

第9章 通过异常处理错误235

9.1 基本异常235

9.2 捕获异常237

9.2.1 try块237

9.2.2 异常处理程序237

9.3 创建自定义异常238

9.4 异常说明241

9.5 捕获所有异常242

9.5.1 重新抛出异常243

9.5.2 异常链246

9.6 Java标准异常249

9.7 使用finally进行清理251

9.7.1 finally用来做什么252

9.7.2 缺憾:异常丢失254

9.8 异常的限制255

9.9 构造器258

9.10 异常匹配260

9.11 其他可选方式261

9.11.1 历史262

9.11.2 观点263

9.11.3 把异常传递给控制台265

9.11.4 把“被检查的异常”转换为“不检查的异常”265

9.12 异常使用指南267

9.13 总结267

9.14 练习267

第10章 类型检查269

10.1 为什么需要RTTI269

10.1.1 Class对象271

10.1.2 类型转换前先做检查273

10.2 RTTI语法282

10.3 反射:运行时的类信息284

10.4 总结288

10.5 练习288

第11章 对象的集合291

11.1 数组291

11.1.1 数组是第一级对象292

11.1.2 返回一个数组294

11.1.3 Arrays类296

11.1.4 填充数组302

11.1.5 复制数组304

11.1.6 数组的比较305

11.1.7 数组元素的比较306

11.1.8 数组排序308

11.1.9 在已排序的数组中查找310

11.1.10 对数组的小结311

11.2 容器简介311

11.2.1 容器的打印312

11.2.2 填充容器313

11.3 容器的缺点:未知类型319

11.3.1 有时候它也能工作320

11.3.2 制作一个类型明确的ArrayList322

11.4 迭代器323

11.5 容器的分类法326

11.6 Collection的功能方法328

11.7 List的功能方法331

11.7.1 使用LinkedList制作栈334

11.7.2 使用LinkedList制作队列335

11.8 Set的功能方法336

11.9 Map的功能方法339

11.9.1 SortedMap343

11.9.2 LinkedHashMap344

11.9.3 散列法与散列码345

11.9.4 覆盖hashCode()353

11.10 持有引用356

11.11 再论迭代器360

11.12 选择接口的不同实现361

11.12.1 对List的选择361

11.12.2 对Set的选择364

11.12.3 对Map的选择366

11.13 List的排序和查询368

11.14 实用方法369

11.14.1 设定Collection或Map为不可修改371

11.14.2 Collection或Map的同步控制372

11.15 未获支持的操作373

11.16 Java 1.0/1.1的容器375

11.16.1 Vector和Enumeration375

11.16.2 Hashtable376

11.16.3 Stack376

11.16.4 BitSet377

11.17 总结378

11.18 练习379

第12章 Java I/O系统383

12.1 File类383

12.1.1 目录列表器383

12.1.2 目录的检查及创建386

12.2 输入和输出388

12.2.1 InputStream类型389

12.2.2 OutputStream类型389

12.3 添加属性和有用的接口390

12.3.1 通过FilterInputStream从Input-Stream读取数据391

12.3.2 通过FilterOutPutStream向OutputStream写入391

12.4 Reader和Writer392

12.4.1 数据的来源和去处393

12.4.2 更改流的行为393

12.4.3 未发生变化的类394

12.5 自我独立的类:RandomAccessFile394

12.6 I/O流的典型使用方式395

12.6.1 输入流397

12.6.2 输出流398

12.6.3 管道流399

12.7 文件读写的实用工具400

12.8 标准I/O401

12.8.1 从标准输入读取401

12.8.2 将System.out转换成PrintWriter402

12.8.3 标准I/O重定向402

12.9 新I/O403

12.9.1 转换数据406

12.9.2 获取基本类型409

12.9.3 视图缓冲器411

12.9.4 用缓冲器操纵数据415

12.9.5 缓冲器的细节415

12.9.6 存储器映射文件419

12.9.7 文件加锁422

12.10.1 用GZIP进行简单压缩424

12.10 压缩424

12.10.2 用Zip进行多文件保存425

12.10.3 Java档案文件428

12.11 对象序列化429

12.11.1 寻找类432

12.11.2 序列化的控制433

12.11.3 使用“持久性”440

12 12 Preferences445

12.13 正则表达式447

12.13.1 创建正则表达式447

12.13.2 量词448

12.13.3 模式和匹配器449

12.13.4 split()455

12.13.5 替换操作456

12.13.6 reset()458

12.13.7 正则表达式和Java I/O459

12.13.8 需要StringTokenizer吗459

12.14 总结460

12.15 练习461

第13章 并发463

13.1 动机463

13.2 基本线程464

13.2.1 让步466

13.2.2 休眠467

13.2.3 优先权469

13.2.4 后台线程471

13.2.5 加入到某个线程473

13.2.6 编码的变体475

13.2.7 建立有响应的用户界面480

13.3 共享受限资源481

13.3.1 不正确地访问资源481

13.3.2 资源冲突484

13.3.3 解决共享资源竞争486

13.3.4 临界区491

13.4 线程状态495

13.5 线程之间的协作496

13.5.1 等待与通知496

13.5.2 线程间使用管道进行输入/输出499

13.5.3 更复杂的协作501

13.6 死锁501

13.7 正确的停止方法504

13.8 中断阻塞线程505

13.9 线程组506

13.10 总结507

13.11 练习508

第14章 创建窗口与applet程序511

14.1 applet基础512

14.1.1 applet的限制512

14.1.2 applet的优势513

14.1.3 应用框架513

14.1.4 在Web浏览器中运行applet514

14.1.5 使用Appletviewer工具516

14.1.6 测试applet516

14.2 从命令行运行applet517

14.3 创建按钮520

14.4 捕获事件520

14.5 文本区域522

14.6.1 BorderLayout524

14.6 控制布局524

14.6.2 FlowLayout525

14.6.3 GridLayout525

14.6.4 GridBagLayout526

14.6.5 绝对定位526

14.6.6 BoxLayout526

14.6.7 最好的方式是什么530

14.7 Swing事件模型530

14.7.1 事件与监听器的类型530

14.7.2 跟踪多个事件535

14.8 Swing组件一览537

14.8.1 按钮538

14.8.2 图标540

14.8.4 文本域542

14.8.3 工具提示542

14.8.5 边框544

14.8.6 滚动面板545

14.8.7 一个迷你编辑器547

14.8.8 复选框548

14.8.9 单选按钮549

14.8.10 组合框(下拉列表)550

14.8.11 列表框551

14.8.12 页签面板553

14.8.13 消息框554

14.8.14 菜单555

14.8.15 弹出式菜单560

14.8.16 绘图562

14.8.17 对话框564

14.8.18 文件对话框567

14.8.19 Swing组件上的HTML569

14.8.20 滑块与进度条570

14.8.21 树571

14.8.22 表格573

14.8.23 选择外观574

14.8.24 剪贴板576

14.9 把applet打包进JAR文件578

14.10 为applet签名579

14.11 JNLP与Java Web Start583

14.12 编程技术587

14.12.1 动态绑定事件587

14.12.2 将业务逻辑与用户界面逻辑相分离589

14.13.1 再论Runnable591

14.13 Swing与并发591

14.12.3 规范方式591

14.13.2 管理并发593

14.14 可视化编程与JavaBean596

14.14.1 JavaBean是什么597

14.14.2 使用Introspector抽取出BeanInfo598

14.14.3 一个更复杂的Bean603

14.14.4 JavaBean与同步606

14.14.5 把Bean打包609

14.14.6 对Bean更高级的支持610

14.14.7 有关Bean的其他读物611

14.15 总结611

14.16 练习611

第15章 发现问题615

15.1 单元测试616

15.1.1 一个简单的测试框架617

15.1.2 JUnit626

15.2 利用断言提高可靠性630

15.2.1 断言语法630

15.2.2 为“按契约设计”使用断言633

15.2.3 示例:按契约设计+白盒单元测试635

15.3 用Ant构建639

15.3.1 使所有事物自动化639

15.3.2 使用make的问题640

15.3.3 Ant:事实上的标准640

15.3.4 用CVS进行版本控制643

15.3.5 每日构建645

15.4 日志645

15.4.1 日志级别647

15.4 2 LogRecord649

15.4.3 处理器650

15.4.4 过滤器654

15.4.5 格式器655

15.4.6 例子:发送email报告日志消息656

15.4.7 通过名字空间控制日志级别658

15.4.8 大型工程的日志实践660

15.4.9 小结662

15.5 调试663

15.5.1 使用JDB调试663

15.5.2 图形化调试器667

15.6 剖析和优化667

15.6.3 覆盖测试668

15.6.4 JVM剖析接口668

15.6.2 追踪CPU的使用668

15.6.1 追踪内存消费668

15.6.5 使用HPROF669

15.6.6 线程性能670

15.6.7 优化指南671

15.7 doclet671

15.8 总结672

15.9 练习673

第16章 分析与设计675

16.1 方法学675

16.2 阶段0:制定计划676

16.3 阶段1:做什么677

16.4 阶段2:如何构建679

16.4.1 对象设计的五个阶段680

16.6 阶段4:迭代用例681

16.5 阶段3:构建系统核心681

16.4.2 对象开发指南681

16.7 阶段5:演化682

16.8 成功的计划683

16.9 极限编程683

16.9.1 优先编写测试683

16.9.2 结对编程684

16.10 过渡策略685

16.10.1 指南685

16.10.2 管理上的障碍686

16.11 总结687

附录A 对象的传递与返回689

附录B Java编程指南723

附录C 补充材料731

附录D 资源735

索引739

热门推荐