出版社: 中国电力出版社
副标题: 中文版
译者: 侯捷 / 刘永丹
出版年: 2003-1
页数: 278
定价: 46.00元
装帧: 简裝本
丛书: 开发大师系列
ISBN: 9787508307398
内容简介 · · · · · ·
本书出自第一线JAVA编程专家之手,为读者展现正确、高效、强固之JAVA代码实践方案。
这本取材广泛的掼,以不同层级的专家经验,帮助程序员更透彻地理解JAVA,使他们的编码效能发挥到极致。此书以准则/条款形式进行编排,探究改善代码的68个重要主题,提供精晰明快、精心撰写之示例和方案。所有示例和方案都带有详尽的解说,你可以将它们融入自身工作之中。这些编程和设计上的实践方案,描述了经验丰富的程序员实际运用之最佳实践手法。为方便中高阶JAVA程序员阅读,本书内容被精心安排成为各自独立的课程,因此你既可以从头通读至尾,也可以挑选独特专题加以精读。
作者简介 · · · · · ·
Peter Haggar是一位公认的Java编程专家,也是IBM资深软件工程师。他拥有广博的编程经验,曾投身于开发工具、类库(class libraries)和操作系统的方面工作。他在IMB致力于emerging Java技术研究,目前专门从事embedded Java和real-time Java的研究。Peter屡屡以Java技术演讲人的身份出现在众多企业界会议上。他在Clarkson大学得计算机学士学位。
丛书信息
喜欢读"Practical Java中文版"的人也喜欢 · · · · · ·
Practical Java中文版的话题 · · · · · · ( 全部 条 )



Practical Java中文版的书评 · · · · · · ( 全部 5 条 )


Google book上可以预览英文版
> 更多书评 5篇
-
-
jvmpoko (\液/#^_^#)
-
1.java中参数以by value方式而非by reference 方式传递. 2.对不变的date和object reference 使用final,(对象的值可修改,对象不可修改) 3.缺省情况下所有non-static函数都可覆写 4.在array和vectors之间慎重选择 5.多态优于instanceof 6.必要时才用instanceof 7.一时不再使用object reference,就将它设为null 8.区别reference(引用)类型和primitive(基本)类型 9.区分==和equals() 10.不要依赖equals()的缺省实现 11.实现equal...
2013-12-07 10:37:56
1.java中参数以by value方式而非by reference 方式传递. 2.对不变的date和object reference 使用final,(对象的值可修改,对象不可修改) 3.缺省情况下所有non-static函数都可覆写 4.在array和vectors之间慎重选择 5.多态优于instanceof 6.必要时才用instanceof 7.一时不再使用object reference,就将它设为null 8.区别reference(引用)类型和primitive(基本)类型 9.区分==和equals() 10.不要依赖equals()的缺省实现 11.实现equals()时必须深思熟虑 12.使用equals()时优先考虑使用getClass() 13.调用super.equals()以唤起base class的相关行为 14.在equals()函数中谨慎使用instanceof 15.实现equals()时需遵循某些规则 16.认识异常控制流(exception control flow)机制 17.绝不轻易忽视异常 18.千万不要遮掩异常 19.明确throws子句的缺点 20.细致而全面地理解throws子句 21.使用finally避免资源泄露 22.不要从try区段中返回 23.将try/catch块置于循环之外 24.不要将异常用于流程控制 25.不要每逢出错就使用异常 26.在构造函数中抛出异常 27.抛出异常之前先将对象恢复为有效状态 28.先把焦点放在设计,数据结构和算法身上 29.不要依赖编译期优化技术 30.理解运行期代码优化技术 31.欲进行字符串拼接,stringbuffer优于string 32.将对象的创建成本降至最小 33.谨防未用上的对象 34.将同步化降至最低 35.尽可能使用stack变量 36.使用static,final,private函数以促成inling(内联) 37.instance变量的初始化一次就好 38.使用基本类型使代码更小更快 39.考虑使用enumeration或iterator,或(get+for())来遍历vector 40.使用System.arraycopy()来复制array 41.优先使用array,再考虑vectory,arraylist 42.尽可能的复用对象 43.使用缓式评估(延迟求值)--延迟那些或许永远都不需要进行的工作 44.以手工方式将代码优化 45.编译为本机代码 46.面对instance函数,synchronized锁定的是对象而非函数或代码 47.弄清楚synchronized statics 函数与synchronized instance函数之间的差异 48.以private 数据+访问函数(get/setter) 替换 public/protected 数据 49.避免无谓的同步控制 50.访问共享变量时使用synchronized 或 volatile 51.在单一操作(single operation)中锁定所有用到的对象 52.以固定而全局性的顺序取得多个locks以避免死锁 53.优先使用notifyAll()而非notify() 54.针对wait()和notifyAll()使用旋锁(spin locks) 55.使用wait()和notifyAll()替换轮询循环(polling loops) 56.不要对locked object之object reference重新赋值 57.不要调用stop()或suspend() 58.通过线程之间的协作来中止线程 59.运用interface支持多重继承 60.避免interface中的函数发生冲突 61.如需提供部分实现,使用abstract class 62.区分interface,abstract和concrete(具体) class 63.审慎地定义和实现immutable class(不可变类) 64.欲传递或接收mutable object(可变对象)之object reference时,实施clone() 65.使用继承或委托来定义不可变类 66.实现clone()时记得调用super.clone() 67.别只依赖finalize()清理ono-memory(内存以外)的资源 68.在构造函数内调用non-final函数时要当心
回应 2013-12-07 10:37:56 -
jvmpoko (\液/#^_^#)
实践4:在array和Vector之间慎重选择 hmmm,慎重选择这是当然的啦,但是呢,为什么呢,啥时候该用array啥时候该用Vector为啥呢? 新建一个array时候每一个元素都将依据 其自身型别而被赋予缺省值,。array有固定长度,length属性表示其长度。 Vector的话其体积是自动增长的。Vector通过size()返回Vector内的实际元素数量 Vector内部是array实现的,当Vector改变时其内部整个array必须重新分配并进行拷贝。 另外Vector只能容纳object r...2014-04-15 23:52:23
实践4:在array和Vector之间慎重选择 hmmm,慎重选择这是当然的啦,但是呢,为什么呢,啥时候该用array啥时候该用Vector为啥呢? 新建一个array时候每一个元素都将依据 其自身型别而被赋予缺省值,。array有固定长度,length属性表示其长度。 Vector的话其体积是自动增长的。Vector通过size()返回Vector内的实际元素数量 Vector内部是array实现的,当Vector改变时其内部整个array必须重新分配并进行拷贝。 另外Vector只能容纳object reference 不能容纳基本类型。因为Vector使用了以object为元素类别的array作为其底部结构。 面对基本类型,array比Vector具更高性能。
回应 2014-04-15 23:52:23 -
jvmpoko (\液/#^_^#)
实践8:区别 reference 和 primitive 类型。 即平常说的引用型和基本型。后者又称为built-in类型,每一种primitive类型都有其相应的 wrapper classes 使用 primitive type 和使用 wrapper class 一样都是存储在局部变量表里。但二者表示的意义完全不同,但两者在stack里所占的空间都是32bit的。wrapper在stack存的并不是对象本身而是其引用reference。 所有Java的对象都是通过reference来访问的,这也算是某种形式的指针了,指向h... (1回应)2014-04-16 00:53:30
实践8:区别
reference
和
primitive
类型。 即平常说的引用型和基本型。后者又称为built-in类型,每一种primitive类型都有其相应的
wrapper classes
使用
primitive type
和使用
wrapper class
一样都是存储在局部变量表里。但二者表示的意义完全不同,但两者在stack里所占的空间都是32bit的。wrapper在stack存的并不是对象本身而是其引用reference。 所有Java的对象都是通过reference来访问的,这也算是某种形式的指针了,指向heap的某块区域,heap则为对象的生存提供了真是的存储空间。
1回应 2014-04-16 00:53:30
-
-
jvmpoko (\液/#^_^#)
这本书的其他版本 · · · · · · ( 全部2 )
-
Addison Wesley (2000)暂无评分 6人读过
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
谁读这本书?
二手市场
订阅关于Practical Java中文版的评论:
feed: rss 2.0
0 有用 王哈哈 2012-08-23 01:10:26
翻出来看了一遍。虽然内容有些老了,但还是有很多不错的建议。初学者可以看看。
0 有用 herowzz 2010-01-22 15:25:24
基础.....
0 有用 橙衣恶少 2016-01-25 14:28:58
有些条目翻译的不是很好。本书也是一本经验之谈的合集,指导如何把代码写的更优雅。
0 有用 Enlight 2010-09-19 14:59:18
对于给出的选题缺乏有说服力的解释,解释往往不够深入,例子也不太能够说明问题,有些解释甚至存在一定的误导,并且没有给出最佳的解决方案。
0 有用 天行 2012-07-09 00:34:11
已经忘记内容了
0 有用 王金雷 2017-11-16 13:09:40
比《Effective Java》更基础一些,适合初学者进阶用,很少看到有人读。
0 有用 橙衣恶少 2016-01-25 14:28:58
有些条目翻译的不是很好。本书也是一本经验之谈的合集,指导如何把代码写的更优雅。
1 有用 ring@o3o.ca 2015-09-08 12:38:31
翻译不错,就是太老了,对初学者来说分不清哪些内容已经过时,对有一定经验的读者来说又太浅了,不如去看《effective java》
0 有用 kane 2014-04-19 22:18:06
一些建议与demo,看看就好
0 有用 Naru 2013-10-18 11:28:34
同步这一部分impressive