返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 正版 Effective Java 第三版 第3版 英文版 约书亚·布洛克(Joshua Bloch)人民邮电出版社
  • 新商品上架
    • 作者: 约书亚·布洛克著 | 无编
    • 出版社: 人民邮电出版社
    • 出版时间:2024-02
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    句字图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 约书亚·布洛克著| 无编
    • 出版社:人民邮电出版社
    • 出版时间:2024-02
    • 页数:无
    • ISBN:9785673222476
    • 版权提供:人民邮电出版社

    书名:Effective Java:第3版 英文版
    品牌:POSTS & TELECOM PRESS/人民邮电出版社
    ISBN编号:9787115628992
    作者:约书亚·布洛克
    定价:99.80元
    是否是套装:否
    出版社名称:人民邮电出版社
    页数:376
    出版时间:2024-02

    本书是经典Jolt获奖作品《Effective Java》的第3版,对上一版进行了全面更新,涵盖了从Java 5到Java 9的种种特性,是Java开发人员不可缺少的一本参考书。 本书分为12章,包含90个条目,形式简洁。每个条目中都讲述了对Java的独到见解,阐明了如何编写高效、优雅的程序,并且提供了清晰、易懂的示例代码。与上一版相比,本书增加了Lambda表达式、流、Optional类、接口默认方法、try-with-resources、@SafeVarargs注解、模块等Java 7及以后所引入的新特性。本书介绍了如何充分利用泛型、枚举、注解、自动装箱、for-each循环、可变参数、并发机制等各种特性,帮助读者更加有效地使用Java编程语言及其基本类库:java.lang、java.util和java.io,以及子包,如java.util.concurrent和java.util.function等。 本书并非面向Java初学者,而是要求读者有一定的Java编程经验。对于在Java开发方面已经积累一定经验的读者而言,本书可以帮助其更深入地理解Java编程语言,以成为更卓越、高效的Java开发人员。 


    序言 6

    前言 7
    第3版前言 7
    第 2版前言 7
    第 1版前言 8
    致谢 9
    第3版致谢 9
    第 2版致谢 10
    第 1版致谢 11
    第 1章 引言 13
    第 2章 创建和销毁对象 16
    条目1:用静态工厂方法代替构造器 16
    条目2:当构造器参数较多时考虑使用生成器 19
    条目3:利用private构造器或枚举类型实现单件 26
    条目4:利用private构造器防止类被实例化 28
    条目5:优先考虑通过依赖注入来连接资源 29
    条目6:避免创建不必要的对象 31
    条目7:清除过期的对象引用 34
    条目8:避免使用终结方法和清理方法 36
    条目9:与try-finally相比,首选try-with-resources 41
    第3章 所有对象通用的方法 44
    条目10:在重写equals方法时要遵守通用约定 44
    条目11:重写equals方法时应该总是重写hashCode方法 55
    条目12:总是重写toString方法 59
    条目13:谨慎重写clone方法 61
    条目14:考虑实现Comparable接口 68
    第4章 类和接口 74
    条目15:最小化类和成员的可访问性 74
    条目16:在公开类中,使用访问方法,而不使用public的字段 77
    条目17:使可变性最小化 79
    条目18:组合优先于继承 85
    条目19:要么为继承而设计并提供文档说明;要么就禁止继承 90
    条目20:与抽象类相比,优先选择接口 95
    条目21:为传诸后世而设计接口 99
    条目22:接口仅用于定义类型 101
    条目23:优先使用类层次结构而不是标记类 102
    条目24:与非静态成员类相比,优先选择静态成员类 105
    条目25:限制在一个源文件中放一个顶层类 107
    第5章 泛型 109
    条目26:不要使用原始类型 110
    条目27:消除unchecked类型的警告 114
    条目28:列表优先于数组 116
    条目29:首选泛型类型 120
    条目30:首选泛型方法 124
    条目31:使用有限制的通配符增加API的灵活性 128
    条目32:谨慎混用泛型和可变参数 133
    条目33:考虑类型安全的异构容器 137
    第6章 枚举和注解 142
    条目34:使用enum代替int常量 142
    条目35:使用实例字段代替序号 152
    条目36:使用EnumSet代替位域 153
    条目37:不要以序号作为索引,使用EnumMap代替 154
    条目38:使用接口模拟可扩展的枚举 159
    条目39:与命名模式相比首选注解 162
    条目40:始终使用Override注解 169
    条目41:使用标记接口来定义类型 171
    第7章 Lambda表达式和流 173
    条目42:与匿名类相比,优先选择Lambda表达式 173
    条目43:与Lambda表达式相比,优先选择方法引用 176
    条目44:首选标准的函数式接口 178
    条目45:审慎地使用流 181
    条目46:在流中首选没有副作用的函数 187
    条目47:作为返回类型时,首选集合类而不是流 191
    条目48:将流并行化时要谨慎 196
    第8章 方法 200
    条目49:检查参数的有效性 200
    条目50:必要时进行保护性拷贝 203
    条目51:仔细设计方法签名 207
    条目52:谨慎使用重载 208
    条目53:谨慎使用可变参数 214
    条目54:返回空的集合或数组,而不是null 215
    条目55:谨慎返回Optional 217
    条目56:为所有导出的API元素编写文档注释 221
    第9章 通用编程 227
    条目57:最小化局部变量的作用域 227
    条目58:与传统的for循环相比,首选for-each循环 230
    条目59:了解并使用库 232
    条目60:如果需要精确的答案,避免使用float和double 235
    条目61:首选基本类型,而不是其封装类 237
    条目62:如果其他类型更适合,就不要使用字符串 239
    条目63:注意字符串连接操作的性能 241
    条目64:通过接口来引用对象 242
    条目65:与反射相比,首选接口 244
    条目66:谨慎使用本地方法 246
    条目67:谨慎进行优化 247
    条目68:遵循普遍接受的命名惯例 249
    第 10章 异常 253
    条目69:异常机制应该仅用于异常的情况 253
    条目70:对于可恢复的条件,使用检查型异常;对于编程错误,使用运行时异常 255
    条目71:避免不必要地使用检查型异常 256
    条目72:优先使用标准异常 258
    条目73:抛出适合于当前抽象的异常 260
    条目74:将每个方法抛出的所有异常都写在文档中 261
    条目75:将故障记录信息包含在详细信息中 263
    条目76:努力保持故障的原子性 264
    条目77:不要忽略异常 266
    第 11章 并发 267
    条目78:同步对共享可变数据的访问 267
    条目79:避免过度同步 271
    条目80:与线程相比,首选执行器、任务和流 276
    条目81:与wait和notify相比,首选高级并发工具 278
    条目82:将线程安全性写在文档中 282
    条目83:谨慎使用惰性初始化 285
    条目84:不要依赖线程调度器 287
    第 12章 序列化 290
    条目85:优先选择其他序列化替代方案 290
    条目86:在实现Serializable接口时要特别谨慎 293
    条目87:考虑使用自定义的序列化形式 295
    条目88:防御性地编写readObject方法 301
    条目89:对于实例受控的类,首选枚举类型而不是readResolve 306
    条目90:考虑使用序列化代理代替序列化实例 310
    附录 与第 2版中条目的对应关系 314
    参考文献 317


    -----
    目录
    序言 6
    前言 7
    第3版前言 7
    第 2版前言 7
    第 1版前言 8
    致谢 9
    第3版致谢 9
    第 2版致谢 10
    第 1版致谢 11
    第 1章 引言 13
    第 2章 创建和销毁对象 16
    条目1:用静态工厂方法代替构造器 16
    条目2:当构造器参数较多时考虑使用生成器 19
    条目3:利用private构造器或枚举类型实现单件 26
    条目4:利用private构造器防止类被实例化 28
    条目5:优先考虑通过依赖注入来连接资源 29
    条目6:避免创建不必要的对象 31
    条目7:清除过期的对象引用 34
    条目8:避免使用终结方法和清理方法 36
    条目9:与try-finally相比,首选try-with-resources 41
    第3章 所有对象通用的方法 44
    条目10:在重写equals方法时要遵守通用约定 44
    条目11:重写equals方法时应该总是重写hashCode方法 55
    条目12:总是重写toString方法 59
    条目13:谨慎重写clone方法 61
    条目14:考虑实现Comparable接口 68
    第4章 类和接口 74
    条目15:最小化类和成员的可访问性 74
    条目16:在公开类中,使用访问方法,而不使用public的字段 77
    条目17:使可变性最小化 79
    条目18:组合优先于继承 85
    条目19:要么为继承而设计并提供文档说明;要么就禁止继承 90
    条目20:与抽象类相比,优先选择接口 95
    条目21:为传诸后世而设计接口 99
    条目22:接口仅用于定义类型 101
    条目23:优先使用类层次结构而不是标记类 102
    条目24:与非静态成员类相比,优先选择静态成员类 105
    条目25:限制在一个源文件中放一个顶层类 107
    第5章 泛型 109
    条目26:不要使用原始类型 110
    条目27:消除unchecked类型的警告 114
    条目28:列表优先于数组 116
    条目29:首选泛型类型 120
    条目30:首选泛型方法 124
    条目31:使用有限制的通配符增加API的灵活性 128
    条目32:谨慎混用泛型和可变参数 133
    条目33:考虑类型安全的异构容器 137
    第6章 枚举和注解 142
    条目34:使用enum代替int常量 142
    条目35:使用实例字段代替序号 152
    条目36:使用EnumSet代替位域 153
    条目37:不要以序号作为索引,使用EnumMap代替 154
    条目38:使用接口模拟可扩展的枚举 159
    条目39:与命名模式相比首选注解 162
    条目40:始终使用Override注解 169
    条目41:使用标记接口来定义类型 171
    第7章 Lambda表达式和流 173
    条目42:与匿名类相比,优先选择Lambda表达式 173
    条目43:与Lambda表达式相比,优先选择方法引用 176
    条目44:首选标准的函数式接口 178
    条目45:审慎地使用流 181
    条目46:在流中首选没有副作用的函数 187
    条目47:作为返回类型时,首选集合类而不是流 191
    条目48:将流并行化时要谨慎 196
    第8章 方法 200
    条目49:检查参数的有效性 200
    条目50:必要时进行保护性拷贝 203
    条目51:仔细设计方法签名 207
    条目52:谨慎使用重载 208
    条目53:谨慎使用可变参数 214
    条目54:返回空的集合或数组,而不是null 215
    条目55:谨慎返回Optional 217
    条目56:为所有导出的API元素编写文档注释 221
    第9章 通用编程 227
    条目57:最小化局部变量的作用域 227
    条目58:与传统的for循环相比,首选for-each循环 230
    条目59:了解并使用库 232
    条目60:如果需要精确的答案,避免使用float和double 235
    条目61:首选基本类型,而不是其封装类 237
    条目62:如果其他类型更适合,就不要使用字符串 239
    条目63:注意字符串连接操作的性能 241
    条目64:通过接口来引用对象 242
    条目65:与反射相比,首选接口 244
    条目66:谨慎使用本地方法 246
    条目67:谨慎进行优化 247
    条目68:遵循普遍接受的命名惯例 249
    第 10章 异常 253
    条目69:异常机制应该仅用于异常的情况 253
    条目70:对于可恢复的条件,使用检查型异常;对于编程错误,使用运行时异常 255
    条目71:避免不必要地使用检查型异常 256
    条目72:优先使用标准异常 258
    条目73:抛出适合于当前抽象的异常 260
    条目74:将每个方法抛出的所有异常都写在文档中 261
    条目75:将故障记录信息包含在详细信息中 263
    条目76:努力保持故障的原子性 264
    条目77:不要忽略异常 266
    第 11章 并发 267
    条目78:同步对共享可变数据的访问 267
    条目79:避免过度同步 271
    条目80:与线程相比,首选执行器、任务和流 276
    条目81:与wait和notify相比,首选高级并发工具 278
    条目82:将线程安全性写在文档中 282
    条目83:谨慎使用惰性初始化 285
    条目84:不要依赖线程调度器 287
    第 12章 序列化 290
    条目85:优先选择其他序列化替代方案 290
    条目86:在实现Serializable接口时要特别谨慎 293
    条目87:考虑使用自定义的序列化形式 295
    条目88:防御性地编写readObject方法 301
    条目89:对于实例受控的类,首选枚举类型而不是readResolve 306
    条目90:考虑使用序列化代理代替序列化实例 310
    附录 与第 2版中条目的对应关系 314
    参考文献 317

    约书亚·布洛克(Joshua Bloch)是美国卡内基-梅隆大学教授,曾是Google公司首席Java架构师、Sun公司杰出工程师和Transarc公司高级系统设计师。他带领团队设计和实现过无数的Java平台特性,包括JDK 5.0语言增强版和获奖的Java Collections Framework。他拥有哥伦比亚大学的计算机科学学士学位和卡内基-梅隆大学的计算机科学博士学位。他的著作还包括Java Puzzlers和《Java并发编程实战》(Java Concurrency in Practice,曾获Jolt大奖提名)等。
    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购