Effective Java中文版(第2版)图书
人气:106

Effective Java中文版(第2版)

本书为Exam70-178:Microsoft® Project 2010 Managing Projects的同步培训教材。

内容简介

本书介绍了在Java编程中78条具有实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码。

本书中的每条规则都以简短、独立的小文章形式出现,并通过例子代码加以进一步说明。本书内容,结构清晰,讲解详细。可作为技术人员的参考用书。

编辑推荐

相关阅读>>>

Effective Python:编写高质量Python代码的59个有效方法

Effective Ruby:改善Ruby程序的48条建议

“我很希望10年前就拥有这本书。可能有人认为我不需要任何Java方面的书籍,但是我需要这本书。”

——Java之父James Gosling

编码平添乐趣,程序更加,高效成为习惯,工作如此轻松。

你是否正在寻找一本能够更加深入地了解Java编程语言的书,以便编写出更清晰、更正确、更健壮且更易于重用的代码。不用找了!本书为我们带来了共78条程序员必备的经验法则,针对你每天都会遇到的编程问题提出了有效、实用的解决方案。

这本经典Jolt获奖作品实属众望所归。作者对新版进行了彻底的更新。涵盖了自第l版之后所引入的Java E5和Java SE 6的特性,同时开发了新的设计模式和语言习惯用法,介绍了如何充分利用从泛型到枚举、从注解到自动装箱的各种特性。

书中的每一章都包含几个“条目”,以简洁的形式呈现,自成独立的短文,它们提出了具体的建议,对于Java平台精妙之处的独到见解,以及的代码范例。每个条目的综合描述和解释都阐明了应该怎么做,不应该怎么做,以及为什么。

本书的内容包括:

全新的泛型、枚举、注解、自动装箱、fof-each循环、可变参数、并发机制,等等。

经典主题的全新技术和实践,包括对象.类、类库、方法和序列化。

如何避免Java编程语言中常被误解的细微之处:陷阱和缺陷。

重点关注Java语言本身和基本的类库及其扩展java.langjava.utiljava.util.concurrent和java.io。

作者简介

Joshua Bloch是Google公司的首席Java架构师。是Jolt大奖的获得者。他曾是Sun公司的杰出工程师,和Transarc公司的高级系统设计师。Bloch曾带领团队设计和实现过无数的Java平台特性,包括JDK 5.0语言增强版和获奖的Java Collections Framework。他的著作还包括:《Java Puzzler

目录

译者序

前言

致谢

第1章 引言

第2章 创建和销毁对象

第1条:考虑用静态工厂方法代替构造器

第2条:遇到多个构造器参数时要考虑用构建器

第3条:用私有构造器或者枚举类型强化Singleton属性

第4条:通过私有构造器强化不可实例化的能力

第5条:避免创建不必要的对象

第6条:消除过期的对象引用

第7条:避免使用终结函数

第3章 对于所有对象都通用的方法

第8条:改写equals时请遵守通用约定

第9条:改写equals时总要改写hashCode

第10条:始终要改写toString

第11条:谨慎地改写clone

第12条:考虑实现Comparable接口

第4章 类和接口

第13条:使类和成员的可访问性最小化

第14条:在公有类中使用访问方法而非公有域

第15条:使非可变性最小化

第16条:复合优先于继承

第17条:要么为继承而设计,并提供文档说明,要么就禁止继承

第18条:接口优于抽象类

第19条:接口只用于定义类型

第20条:类层次优于标签类

第21条:用函数对象表示策略

第22条:优先考虑静态成员类

第5章 泛型

第23条:请不要在新代码中使用原生态类型

第24条:消除非受检警告

第25条:列表优先于数组

第26条:优先考虑泛型

第27条:优先考虑泛型方法

第28条:利用有限制通配符来提升API的灵活性

第29条:优先考虑类型安全的异构容器

第6章 枚举和注解

第30条:用enum代替int常量

第31条:用实例域代替序数

第32条:用EnumSet代替位域

第33条:用EnumMap代替序数索引

第34条:用接口模拟可伸缩的枚举

第35条:注解优先于命名模式

第36条:坚持使用Override注解

第37条:用标记接口定义类型

第7章 方法

第38条:检查参数的有效性

第39条:必要时进行保护性拷贝

第40条:谨慎设计方法签名

第41条:慎用重载

第42条:慎用可变参数(varargs)

第43条:返回零长度的数组或者集合,而不是null

第44条:为所有导出的API元素编写文档注释

第8章 通用程序设计

第45条:将局部变量的作用域最小化

第46条:for-each循环优先于传统的for循环

第47条:了解和使用类库

第48条:如果需要的答案,请避免使用float和double

第49条:原语类型优先于装箱的原语类型

第50条:如果其他类型更适合,则尽量避免使用字符串

第51条:了解字符串连接的性能

第52条:通过接口引用对象

第53条:接口优先于反射机制

第54条:谨慎地使用本地方法

第55条:谨慎地进行优化

第56条:遵守普遍接受的命名惯例

第9章 异常

第57条:只针对异常的条件才使用异常

第58条:对可恢复的条件使用受检异常,对编程错误使用运行时异常

第59条:避免不必要地使用受检的异常

第60条:尽量使用标准的异常

第61条:抛出与抽象相对应的异常

第62条:每个方法抛出的所有异常都要有文档

第63条:在细节消息中包含失败-捕获信息

第64条:努力使失败保持原子性

第65条:不要忽略异常

第10章 并发

第66条:同步访问共享的可变数据

第67条:避免过多同步

第68条:executor和task优先于线程

第69条:并发工具优先于wait和notify

第70条:线程安全性的文档化

第71条:慎用延迟初始化

第72条:不要依赖于线程调度器

第73条:避免使用线程组

第11章 序列化

第74条:谨慎地实现Serializable

第75条:考虑使用自定义的序列化形式

第76条:保护性地编写readObject方法

第77条:对于实例控制,枚举类型优先于readResolve

第78条:考虑用序列化代替序列化实例

在线预览

第2章 创建和销毁对象

第4条:通过私有构造器强化不可实例化的能力

有时候,你可能需要编写只包含静态方法和静态域的类。这些类的名声很不好,因为有些人在面向对象的语言中滥用这样的类来编写过程化的程序。尽管如此,它们也确实有它们特有的用处。我们可以利用这种类,以java.1ang.Math或者java.util.Arrays的方式,把基本类型的值或者数组类型上的相关方法组织起来。我们也可以通过java.util.Collections的方式,把实现特定接口的对象上的静态方法(包括工厂方法,见第1条)组织起来。,还可以利用这种类把final类上的方法组织起来,以取代扩展该类的做法。

这样的工具类(utility class)不希望被实例化,实例对它没有任何意义。然而,在缺少显式构造器的情况下,编译器会自动提供一个公有的、无参的缺省构造器(default constructor)。对于用户而言,这个构造器与其他的构造器没有任何区别。在已发行的API中常常可以看到一些被无意识地实例化的类。

企图通过将类做成抽象类来强制该类不可被实例化,这是行不通的。该类可以被子类化,并且该子类也可以被实例化。这样做甚至会误导用户,以为这种类是专门为了继承而设计的(见第17条)。然而,有一些简单的习惯用法可以确保类不可被实例化。由于只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此我们只要让这个类包含私有构造器,它就不能被实例化了。

……

网友评论(不代表本站观点)

来自匿名用**的评论:

当当越来越用心了。送来的书外面都有一层薄膜 ,这样不会弄花书了。

2017-07-23 11:41:52
来自无昵称**的评论:

这是一本被Java之父看好的书,而且讲解的知识都是Java开发中常用切重点的东西,要想成为合格的出色Java工程师,还真的不得不看!

2010-10-12 07:56:37
来自无昵称**的评论:

书本身纸张质量不错的,内容还没看,快递很快,昨天晚上下单,今天中午拿到的。当场拆开验证的然后付款的!!

2017-05-12 12:52:44
来自无昵称**的评论:

很好的书 但是和引言说的一样 可能有些内容只有在真正进行开发之后才会有所考虑

2016-11-29 20:01:29
来自匿名用**的评论:

程序语言的基础,对于深入了解java体系有很大的帮助,细节成就一切,对细节了解越多,才能对原理理解越深

2017-08-01 16:50:21
来自无昵称**的评论:

java的经典书籍,很重要,里面的知识点再写代码时需要考虑。非常实用的工具书

2016-12-22 13:22:32
来自无昵称**的评论:

EFFECTIVE JAVA中文版(第2版)象引用 第条:避免使用终结函U数第章对于所有R对象都通用的方法 第条:改写时请遵守通用约定 

2015-08-30 00:10:53
来自无昵称**的评论:

定义类型 10第K条:类层次优于标签类 第条:用函数对象表示策略 第条:优先考虑静态成员类第章泛型F 第条:EFFECTIVE

2016-01-16 16:59:37
来自rainy14**的评论:

东西挺好的,但就是快递很不给力,当当的快递需要改进的地方太多了,你们的客户为什么流失的多,有很大一部分原因是你们的物流,什么如风达,飞远,能不能用点有名气的快递???

2016-08-27 15:41:10
来自无昵称**的评论:

不得不承认,这本书写的很深入,看到了平时不知道的好多的java方面的知识,即使工作很长时间的人也不一定了解,不错!

2011-11-06 12:25:11
来自一天阴**的评论:

本书内容第一次看,好像应该是一本初学者使用的介绍性书籍。但是当我阅读完第二遍的时候,我发现在浅显的文字描述中有很多需要深思的地方。结合在实际工作过程中思考的问题,有一种茅塞顿开的感觉。

2009-03-26 12:00:37
来自无昵称**的评论:

Effective Java 一书是我在学习JAVA中觉得非常有用,非常好用的一本书,其中的内容对于“现实”中的编程有着非常重要的借鉴作用。但读此书需要对编程算法等有一定的基础。很不错的一本书。

2012-02-06 14:37:32
来自无昵称**的评论:

“我很希望10年前就拥有这本书。可能有人认为我不需要任何java方面的书籍,但是我需要这本书”java之父james gosling之言。我在10年拥有了这本书,让我对java有了更深的认识,推荐大家品读这本书

2010-10-21 23:08:35
来自无昵称**的评论:

这个是java进阶手册,帮助程序员更好的写出高效,健壮代码的好书

2017-10-18 11:51:21
来自匿名用**的评论:

针对的是java1.5 1.6进行的讲解,虽然不是最新版的java,但对于java编程确实有提升,给出了很多java编程的建议,吸收消化用于实践中还是不错的。

2017-05-07 21:41:33
来自kevinls**的评论:

我看的第一本java书籍,也就是我的java入门书,公司架构师推荐的,写的好就不多说了,主要是想说很多人把这本书当作java的进阶读物,其实如果有开发经验,直接看完这本书再看Think In Java会是Java入门的不错组合。

2012-02-11 22:15:21
来自无昵称**的评论:

JAVA程序员分两种,看过effective Java的和没看过effective Java的!

2013-09-17 01:00:51
登录后即可发表评论

免责声明

更多相关图书
在线咨询