图书介绍
Practical Java中文版PDF|Epub|txt|kindle电子书版本网盘下载
![Practical Java中文版](https://www.shukui.net/cover/69/34394999.jpg)
- (美)Peter Haggar著;侯捷,刘永丹译 著
- 出版社: 北京:中国电力出版社
- ISBN:7508307399
- 出版时间:2003
- 标注页数:278页
- 文件大小:19MB
- 文件页数:311页
- 主题词:
PDF下载
下载说明
Practical Java中文版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1 一般技术(General Techniques)1
实践1:参数以by value方式而非by reference方式传递1
实践2:对不变的data和object reference使用final3
实践3:缺省情况下所有non-static函数都可被覆写6
实践4:在arrays和vectors之间慎重选择7
实践5:多态(polymorphism)优于instanceof11
实践6:必要时才使用instanceof15
实践7:一旦不再需要object references,就将它设为null18
2 对象与相等性(Objects and Equality)25
实践8:区分reference型别和primitive型别25
实践9:区分==和equals()29
实践10:不要依赖equals()的缺省实现33
实践11:实现equals()时必须深思熟虑43
实践12:实现equals()时优先考虑使用getClass()44
实践13:调用super.equals()以唤起base class的相关行为47
实践14:在equals()函数中谨慎使用instanceof51
实践15:实现equals()时需遵循某些规则60
3 异常处理(Exception Handling)61
实践16:认识「异常控制流」(exception control flow)机制62
实践17:绝对不可轻忽异常(Never ignore an exception)65
实践18:千万不要遮掩异常(Never hide an exception)68
实践19:明察throws子句的缺点73
实践20:细致而全面地理解throws子句74
实践21:使用finally避免资源泄漏(resource leaks)77
实践22:不要从try区段中返回79
实践23:将try/catch区段置于循环之外81
实践24:不要将异常(exceptions)用于流程控制84
实践25:不要每逢出错就使用异常(exceptions)85
实践26:在构造函数(constructors)中抛出异常86
实践27:抛出异常之前先将对象恢复为有效状态(valid state)88
4 性能(Performance)97
实践28:先把焦点放在设计、数据结构和算法身上99
实践29:不要倚赖编译期(compile-time)优化技术101
实践30:理解运行期(runtime)代码优化技术105
卖践31:如欲进行字符串接合,StringBuffer优于String107
实践32:将对象的创建成本(creation cost)降至最小109
实践33:慎防未用上的对象(unused objects)114
实践34:将同步化(synchronization)降至最低116
实践35:尽可能使用stack变量122
实践36:使用static、final和private函数以促成inlining126
实践37:instance变量的初始化一次就好127
实践38:使用基本型别(primitive types)使代码更快更小130
实践39:不要使用Enumeration或Iterator来遍历vector135
实践40:使用System.arraycopy()来复制arrays136
实践41:优先使用array,然后才考虑vector和ArrayList138
实践42:尽可能复用(reuse)对象141
实践43:使用缓式评估(延迟求值,lazy evaluation)144
实践44:以手工方式将代码优化151
实践45:编译为本机代码(Compile to native code)159
5 多线程(Multithreading)161
实践46:面对instance函数,synchronized锁定的是对象(objects)而非函数(methods)或代码(code)162
实践47:弄清楚synchronized statics函数与synchronized instance函数之间的差异166
实践48:以「private数据+相应的访问函数(accessor)」替换「public/protected数据」170
实践49:避免无谓的同步控制173
实践50:访问共享变量时请使用synchronized或volatile176
实践51:在单一操作(single operation)中锁定所有用到的对象180
实践52:以固定而全局性的顺序取得多个locks(机锁)以避免死锁181
实践53:优先使用notifyAll()而非notify()185
实践54:针对wait()和notifyAll()使用旋锁(spin locks)187
实践55:使用wait()和notifyAll()替换轮询循环(polling loops)191
实践56:不要对locked object(上锁对象)之object reference重新赋值194
实践57:不要调用stop()或suspend()197
实践58:通过线程(threads)之间的协作来中止线程198
6 类与接口(Classes and Interfaces)201
实践59:运用interfaces支持多重继承(multiple inheritance)201
实践60:避免interfaces中的函数发生冲突206
实践61:如需提供部分实现(partial implementation),请使用abstract classes(抽象类)209
实践62:区分interface、abstract class和concrete class212
实践63:审慎地定义和实现immutable classes(不可变类)213
实践64:欲传递或接收mutable objects(可变对象)之object references时,请实施clone()215
实践65:使用继承(inheritance)或委托(delegation)来定义immutable classes(不可变类)226
实践66:实现clone()时记得调用super.clone()233
实践67:别只依赖finalize()清理non-memory(内存以外)的资源235
实践68:在构造函数内调用non-final函数时要当心238