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

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

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

  • [正版]On Java 中文版 基础卷 布鲁斯·埃克尔著 深入理解java核心技术java从入门到精通编程入门零基础自
  • 正版图书!品质保证!默认发最新版本!收藏店铺可享优先发货!
    • 作者: 布鲁斯·埃克尔著
    • 出版社: 人民邮电出版社
    • 出版时间:2022-03
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    友一个文化制品专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 布鲁斯·埃克尔著
    • 出版社:人民邮电出版社
    • 出版时间:2022-03
    • 页数:840页
    • ISBN:9786426331811
    • 版权提供:人民邮电出版社

            铺公告

      为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。

    温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货)。

      关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。

     

     

     


    目录

    第 *章 什么是对象 / 00*

    *.*抽象的历程 / 002

    *.2 对象具有接口 / 003

    *.3 对象可以提供服务 / 005

    *.4 隐藏的实现 / 006

    *.5 复用实现 / 008

    *.6 继承 / 008

    is-a关系与is-like-a关系 / 0*2

    *.7 多态 / 0*3

    *.8 单根层次结构 / 0*6

    *.9 集合 / 0*7

    参数化类型(泛型) / 0*8

    *.*0 对象的*建和生命周期 / 0*9

    *.** 异常处理 / 02*

    *.*2 总结 / 022

    第 2章 安装Java和本书示例 / 023

    2.* 编辑器 / 023

    2.2 shell / 024

    2.2.* 运行shell / 024

    2.2.2 目录(文件夹) / 025

    2.2.3 shell基础操作 / 025

    2.3 安装Java / 026

    2.4 确认安装成功 / 027

    2.5 安装和运行本书示例 / 028

    Gradle基础任务 / 028

    第3章 对象*处*在 / 029

    3.* 通过引用操作对象 / 030

    3.2 *须*建所有对象 / 03*

    3.2.* 数据*存在哪里 / 03*

    3.2.2 *殊情况:基本类型 / 032

    3.2.3 Java中的数组 / 034

    3.3 注释 / 034

    3.4 *须销毁对象 / 035

    3.4.* 作用域 / 035

    3.4.2 对象的作用域 / 036

    3.5 使用class关键字*建新类型 / 037

    字段 / 037

    3.6 方法、参数以及返回值 / 039

    参数列表 / 039

    3.7 编写Java程序 / 04*

    3.7.* 名称可见性 / 04*

    3.7.2 使用其他组件 / 042

    3.7.3 static关键字 / 043

    3.8 你的第 *个Java程序 / 045

    编译和运行 / 047

    3.9 编程风格 / 048

    3.*0 总结 / 049

    第4章 操作符 / 050

    4.* 使用Java操作符 / 050

    4.2 *先级 / 05*

    4.3 赋值 / 05*

    方法调用中的别名 / 053

    4.4 算术操作符 / 054

    *元加操作符和*元减操作符 / 055

    4.5 自动递增和自动递减 / 056

    4.6 关系操作符 / 057

    测试对象是否相等 / 057

    4.7 逻辑操作符 / 06*

    短路 / 062

    4.8 字面量 / 063

    4.8.* 字面量里的下划线 / 065

    4.8.2 科学记数法(又称“指数

    记数法”) / 066

    4.9 按位操作符 / 067

    4.*0 移位操作符 / 067

    4.** 三元操作符 / 07*

    4.*2 字符串操作符+和+= / 072

    4.*3 使用操作符时常犯的错误 / 073

    4.*4 类型转换操作符 / 074

    4.*4.* 截尾和舍入 / 075

    4.*4.2 提* / 076

    4.*5 Java没有sizeof() / 076

    4.*6 操作符小结 / 076

    4.*7 总结 / 08*

    第5章 控制流 / 082

    5.* true和false / 082

    5.2 if-else / 083

    5.3 迭代语句 / 084

    5.3.* do-while / 085

    5.3.2 for / 085

    5.3.3 逗号操作符 / 086

    5.4 for-in语法 / 087

    5.5 return / 089

    5.6 break和continue / 090

    5.7 臭名昭著的goto / 09*

    5.8 switch / 095

    5.9 字符串作为选择器 / 096

    5.*0 总结 / 098

    第6章 初始化和清理 / 099

    6.* 用构造器*证初始化 / *00

    6.2 方法重载 / *02

    6.2.* 区分重载的方法 / *03

    6.2.2 使用基本类型的重载 / *04

    6.2.3 通过返回值区分重载方法 / *07

    6.3 *参构造器 / *08

    6.4 this关键字 / *09

    6.4.* 在构造器中调用构造器 / ***

    6.4.2 static的含义 / **2

    6.5 清理:*结和垃圾收集 / **3

    6.5.* finalize()的作用 / **4

    6.5.2 你*须执行清理 / **5

    6.5.3 *止条件 / **5

    6.5.4 垃圾收集器的工作原理 / **7

    6.6 成员初始化 / *20

    *初始化 / *2*

    6.7 构造器初始化 / *22

    6.7.* 初始化顺序 / *23

    6.7.2 静态数据的初始化 / *24

    6.7.3 显式的静态初始化 / *26

    6.7.4 非静态实例初始化 / *27

    6.8 数组初始化 / *28

    6.8.* 动态数组*建 / *29

    6.8.2 可变参数列表 / *32

    6.9 枚举类型 / *36

    6.*0 新*性:局*变量类型

    推断 / *38

    6.** 总结 / *40

    第 7章 实现隐藏 / *4*

    7.* package:库单元 / *42

    7.*.* 代码组织 / *44

    7.*.2 *建***二的*名 / *45

    7.*.3 定制工具库 / *48

    7.*.4 用import来改变行为 / *49

    7.*.5 关于*的忠告 / *50

    7.2 Java访问权限修饰符 / *50

    7.2.* *访问 / *50

    7.2.2 public:接口访问权限 / *5*

    7.2.3 private:你*法访问它 / *53

    7.2.4 protected:继承访问权限 / *54

    7.2.5 *访问权限与公共构造器 / *55

    7.3 接口和实现 / *56

    7.4 类的访问权限 / *57

    7.5 新*性:模块 / *60

    7.6 总结 / *62

    第8章 复用 / *64

    8.* 组合语法 / *65

    8.2 继承语法 / *67

    初始化基类 / *69

    8.3 委托 / *7*

    8.4 组合与继承相结合 / *73

    8.4.* 确*正确的清理 / *75

    8.4.2 名称隐藏 / *77

    8.5 选择组合还是继承 / *78

    8.6 protected关键字 / *80

    8.7 向上转型 / *8*

    再论组合与继承 / *82

    8.8 final关键字 / *82

    8.8.* final数据 / *83

    8.8.2 final方法 / *86

    8.8.3 final类 / *88

    8.8.4 关于final的忠告 / *89

    8.9 初始化及类的加载 / *90

    继承与初始化 / *90

    8.*0 总结 / *9*

    第9章 多态 / *93

    9.* 再论向上转型 / *94

    忘记对象类型 / *95

    9.2 难点 / *96

    9.2.* 方法调用绑定 / *97

    9.2.2 产生正确的行为 / *97

    9.2.3 可扩展性 / 20*

    9.2.4 陷阱:“重写”private

    方法 / 203

    9.2.5 陷阱:字段与静态方法 / 205

    9.3 构造器和多态 / 206

    9.3.* 构造器的调用顺序 / 206

    9.3.2 继承与清理 / 208

    9.3.3 构造器内*的多态方法

    行为 / 2*3

    9.4 协变返回类型 / 2*5

    9.5 用继承进行设计 / 2*6

    9.5.* 替换与扩展 / 2*7

    9.5.2 向下转型与反射 / 2*8

    9.6 总结 / 220

    第 *0章 接口 / 22*

    *0.* 抽象类和抽象方法 / 22*

    *0.2 接口定义 / 226

    *0.2.* 默认方法 / 228

    *0.2.2 多重继承 / 230

    *0.2.3 接口中的静态方法 / 233

    *0.2.4 作为接口的Instrument / 234

    *0.3 抽象类与接口 / 236

    *0.4 完*解耦 / 237

    *0.5 组合多个接口 / 242

    *0.6 通过继承来扩展接口 / 244

    组合接口时的名称冲突 / 245

    *0.7 适配接口 / 246

    *0.8 接口中的字段 / 249

    初始化接口中的字段 / 249

    *0.9 嵌套接口 / 250

    *0.*0 接口和工厂 / 252

    *0.** 新*性:接口的private

    方法 / 255

    *0.*2 新*性:密封类和密封

    接口 / 256

    *0.*3 总结 / 259

    第 **章 内*类 / 260

    **.* *建内*类 / 26*

    **.2 到外*类的* / 262

    **.3 使用.this和.new / 264

    **.4 内*类和向上转型 / 266

    **.5 在方法和作用域中的内*类 / 267

    **.6 匿名内*类 / 269

    **.7 嵌套类 / 273

    **.7.* 接口中的类 / 274

    **.7.2 从多层嵌套的内*类中

    访问外*成员 / 275

    **.8 为什么需要内*类 / 276

    **.8.* 闭*与回调 / 278

    **.8.2 内*类与控制框架 / 28*

    **.9 继承内*类 / 287

    **.*0 内*类可以被重写吗 / 287

    **.** 局*内*类 / 289

    **.*2 内*类标识符 / 29*

    **.*3 总结 / 29*

    第 *2章 集合 / 292

    *2.* 泛型和类型*的集合 / 293

    新*性:类型推断和泛型 / 296

    *2.2 基本概念 / 297

    *2.3 添加*组元素 / 298

    *2.4 打印集合 / 300

    *2.5 List / 302

    *2.6 Iterator / 306

    ListIterator / 309

    *2.7 LinkedList / 3*0

    *2.8 Stack / 3*2

    *2.9 Set / 3*4

    *2.*0 Map / 3*8

    *2.** 新*性:记录(record)

    类型 / 32*

    *2.*2 Queue / 325

    PriorityQueue / 327

    *2.*3 Collection和Iterator的

    对比 / 328

    *2.*4 for-in和迭代器 / 332

    适配器方法惯用法 / 334

    *2.*5 总结 / 338

    第 *3章 函数式编程 / 342

    *3.* 旧方式与新方式 / 344

    *3.2 lambda表达式 / 346

    递归 / 348

    *3.3 方法引用 / 349

    *3.3.* Runnable / 350

    *3.3.2 未绑定方法引用 / 35*

    *3.3.3 构造器方法引用 / 353

    *3.4 函数式接口 / 354

    *3.4.* 带有更多参数的函数式

    接口 / 36*

    *3.4.2 解决缺乏基本类型函数

    式接口的问题 / 36*

    *3.5 **函数 / 363

    *3.6 闭* / 364

    内*类作为闭* / 369

    *3.7 函数组合 / 370

    *3.8 柯里化和*分求值 / 372

    *3.9 纯函数式编程 / 373

    *3.*0 总结 / 374

    第 *4章 流 / 375

    *4.* Java 8对流的支持 / 377

    *4.2 流的*建 / 378

    *4.2.* 随机数流 / 379

    *4.2.2 int类型的区间范围 / 382

    *4.2.3 generate() / 383

    *4.2.4 iterate() / 385

    *4.2.5 流生成器 / 385

    *4.2.6 Arrays / 386

    *4.2.7 正则表达式 / 387

    *4.3 中间操作 / 388

    *4.3.* 跟踪与调试 / 389

    *4.3.2 对流元素进行排序 / 389

    *4.3.3 移除元素 / 390

    *4.3.4 将函数应用于每个流

    元素 / 390

    *4.3.5 在应用map()期间组

    合流 / 392

    *4.4 Optional类型 / 395

    *4.4.* 便捷函数 / 397

    *4.4.2 *建Optional / 399

    *4.4.3 Optional对象上的操作 / 400

    *4.4.4 由Optional组成的流 / 404

    *4.5 *结操作 / 405

    *4.5.* 将流转换为*个数组 / 405

    *4.5.2 在每个流元素上应用某个*结操作 / 406

    *4.5.3 收集操作 / 407

    *4.5.4 组合所有的流元素 / 4*0

    *4.5.5 匹配 / 4**

    *4.5.6 选择*个元素 / 4*2

    *4.5.7 获得流相关的信息 / 4*3

    *4.6 小结 / 4*5

    第 *5章 异常 / 4*6

    *5.* 概念 / 4*7

    *5.2 基本的异常 / 4*8

    异常参数 / 4*9

    *5.3 捕捉异常 / 420

    *5.3.* try块 / 420

    *5.3.2 异常处理程序 / 420

    *5.4 *建自己的异常 / 42*

    异常与日志记录 / 424

    *5.5 异常说明 / 427

    *5.6 捕捉任何异常 / 428

    *5.6.* 多重捕捉 / 430

    *5.6.2 栈轨迹 / 43*

    *5.6.3 重新抛出异常 / 432

    *5.6.4 异常链 / 436

    *5.7 标准Java异常 / 439

    *例:RuntimeException / 440

    *5.8 新*性:更好的NullPointerException

    报告机制 / 44*

    *5.9 使用finally执行清理 / 443

    *5.9.* finally是干什么用的 / 444

    *5.9.2 在return期间使用

    finally / 446

    *5.9.3 缺陷:异常丢失 / 447

    *5.*0 异常的约束 / 449

    *5.** 构造器 / 452

    *5.*2 try-with-resources语句 / 456

    *5.*2.* 细节揭秘 / 459

    *5.*2.2 新*性:try-with-resources中的实际

    上的最*变量 / 463

    *5.*3 异常匹配 / 464

    *5.*4 其他可选方式 / 465

    *5.*4.* 历史 / 466

    *5.*4.2 观点 / 468

    *5.*4.3 把异常传递到控制台 / 470

    *5.*4.4 将“检查型异常”转换为

    “非检查型异常” / 470

    *5.*5 异常使用指南 / 473

    *5.*6 小结 / 473

    附记 异常的奇异* / 474

    第 *6章 代码校验 / 476

    *6.* 测试 / 476

    *6.*.* 单元测试 / 477

    *6.*.2 测试覆盖率的幻觉 / 48*

    *6.2 前置条件 / 482

    *6.2.* 断言 / 482

    *6.2.2 DbC + 单元测试 / 488

    *6.2.3 使用Guava里的前置

    条件 / 495

    *6.3 测试驱动开发 / 498

    测试驱动与测试*先 / 505

    *6.4 日志 / 505

    日志级别 / 507

    *6.5 调试 / 508

    *6.5.* 使用JDB进行调试 / 508

    *6.5.2 图形调试器 / 5**

    *6.6 基准测试 / 5**

    *6.6.* 微基准测试 / 5*2

    *6.6.2 介绍JMH / 5*4

    *6.7 分析与*化 / 520

    *化指南 / 520

    *6.8 样式检查 / 52*

    *6.9 静态错误分析 / 52*

    *6.*0 代码审查 / 52*

    *6.** 结对编程 / 522

    *6.*2 重构 / 522

    重构的基础 / 522

    *6.*3 持续集成 / 523

    *6.*4 总结 / 525

    第 *7章 文件 / 526

    *7.* 文件和目录路径 / 527

    *7.*.* 选择Path的片段 / 530

    *7.*.2 分析Path / 53*

    *7.*.3 添加或删除路径片段 / 532

    *7.2 目录 / 533

    *7.3 文件系统 / 537

    *7.4 监听Path / 538

    *7.5 查找文件 / 54*

    *7.6 读写文件 / 543

    *7.7 小结 / 546

    第 *8章 字符串 / 547

    *8.* *可变的字符串 / 547

    *8.2 重载+与StringBuilder / 548

    *8.3 *意识的递归 / 553

    *8.4 对字符串的操作 / 555

    *8.5 格式化输出 / 556

    *8.5.* printf() / 556

    *8.5.2 System.out.format() / 557

    *8.5.3 Formatter类 / 557

    *8.5.4 格式说明符 / 558

    *8.5.5 Formatter转换 / 560

    *8.5.6 String.format() / 562

    *8.6 新*性:文本块 / 563

    *8.7 正则表达式 / 565

    *8.7.* 基础 / 566

    *8.7.2 *建正则表达式 / 569

    *8.7.3 量词 / 57*

    *8.7.4 Pattern和Matcher / 572

    *8.7.5 split() / 580

    *8.7.6 替换操作 / 580

    *8.7.7 reset() / 582

    *8.7.8 正则表达式和Java 

    I/O / 583

    *8.8 扫描输入 / 584

    *8.8.* Scanner分隔符 / 586

    *8.8.2 使用正则表达式扫描 / 586

    *8.9 StringTokenizer / 587

    *8.*0 总结 / 588

    第 *9章 反射 / 589

    *9.* 为什么需要反射 / 589

    *9.2 Class对象 / 592

    *9.2.* 类字面量 / 596

    *9.2.2 泛型类的引用 / 598

    *9.2.3 cast()方法 / 602

    *9.3 转型前检查 / 603

    *9.3.* 使用类字面量 / 609

    *9.3.2 动态的instanceof / 6**

    *9.3.3 递归计数 / 6*2

    *9.4 注册工厂 / 6*4

    *9.5 Instanceof与Class的

    等*性 / 6*6

    *9.6 运行时的类信息 / 6*8

    类方法提取器 / 6*9

    *9.7 动态代理 / 62*

    *9.8 使用Optional / 625

    *9.8.* 标签接口 / 630

    *9.8.2 模拟对象和桩 / 633

    *9.9 接口和类型信息 / 633

    *9.*0 总结 / 639

    第 20章 泛型 / 64*

    20.* 和C++的对比 / 642

    20.2 简单泛型 / 643

    20.2.* 元组库 / 645

    20.2.2 栈类 / 648

    20.2.3 RandomList / 649

    20.3 泛型接口 / 650

    20.4 泛型方法 / 653

    20.4.* 可变参数和泛型方法 / 654

    20.4.2 通用Supplier / 655

    20.4.3 简化元组的使用 / 657

    20.4.4 Set实用工具 / 658

    20.5 构建复杂模型 / 663

    20.6 类型擦除的奥秘 / 665

    20.6.* C++的实现方法 / 667

    20.6.2 迁移的兼容性 / 669

    20.6.3 类型擦除存在的问题 / 670

    20.6.4 边界的行为 / 672

    20.7 对类型擦除的补偿 / 676

    20.7.* *建类型实例 / 677

    20.7.2 泛型数组 / 680

    20.8 边界 / 686

    20.9 通配符 / 689

    20.9.* 编译器有多聪明? / 692

    20.9.2 逆变性 / 694

    20.9.3 *界通配符 / 696

    20.9.4 捕获转换 / 705

    20.*0 问题 / 707

    20.*0.* 基本类型*可作为

    类型参数 / 707

    20.*0.2 实现参数化接口 / 709

    20.*0.3 类型转换和警告 / 709

    20.*0.4 重载 / 7*2

    20.*0.5 基类会劫持接口 / 7*2

    20.** 自限定类型 / 7*4

    20.**.* 奇异递归泛型 / 7*4

    20.**.2 自限定 / 7*5

    20.**.3 参数协变性 / 7*8

    20.*2 动态类型* / 72*

    20.*3 异常 / 722

    20.*4 混型 / 724

    20.*4.* C++中的混型 / 724

    20.*4.2 与接口混合 / 726

    20.*4.3 使用装饰器模式 / 727

    20.*4.4 与动态代理混合 / 729

    20.*5 潜在类型机制 / 730

    20.*5.* Python中的潜在类型

    机制 / 73*

    20.*5.2 C++中的潜在类型

    机制 / 732

    20.*5.3 Go中的潜在类型

    机制 / 733

    20.*5.4 Java中的直接潜在

    类型机制 / 735

    20.*6 对于缺少(直接的)潜在类型机制的补偿 / 736

    20.*6.* 反射 / 736

    20.*6.2 将方法应用于序列 / 737

    20.*7 Java 8中的辅助潜在类型

    机制 / 74*

    使用Supplier的泛型方法 / 743

    20.*8 总结:转型真的这么糟糕吗? / 745

    延伸阅读 / 747

    第 2* 章 数组 / 748

    2*.* 数组为何*殊 / 749

    *个用于显示数组的常用工具

    程序 / 75*

    2*.2 数组是*等对象 / 752

    2*.3 返回数组 / 755

    2*.4 多维数组 / 757

    2*.5 数组和泛型 / 76*

    2*.6 Arrays.fill() / 764

    2*.7 Arrays.setAll() / 765

    2*.8 增量生成器 / 766

    2*.9 随机数生成器 / 775

    2*.*0 泛型和基本类型数组 / 783

    2*.** 修改已有的数组元素 / 787

    2*.*2 关于数组并行 / 788

    2*.*2.* 策略 / 789

    2*.*2.2 parallelSetAll() / 789

    2*.*3 数组实用工具 / 790

    2*.*4 数组复制 / 79*

    2*.*5 数组比较 / 794

    2*.*6 流和数组 / 795

    2*.*7 数组排序 / 796

    2*.*7.* 使用Arrays.sort() / 800

    2*.*7.2 并行排序 / 80*

    2*.*8 用Arrays.binarySearch()进行二分查找 / 802

    2*.*9 用parallelPrefix()进行累积计算 / 804

    2*.20 总结 / 806

    补充内容 / 809

    积*看待C++与Java的

    遗产 / 8*0



    作者介绍

    【作者简介】

    布鲁斯·埃克尔(Bruce Eckel)

    C++ 标准委员会的*始成员之*,技术顾问,*注于编程语言和软件系统设计方面的研究,常活跃于*各大技术研讨会。他自 *986 年以来,累计出版 

    Thinking in C++、Thinking in Java、On Java 8 等十余*计算机,曾多次荣获 Jolt 最佳图书奖(被誉为“软件业界的奥斯卡”),其代表作 Thinking in 

    Java 被译为中文、日文、俄文、意大利文、波兰文、韩文等十几种语言,在*范围内产生了广泛影响。


    【译者简介】

    陈德伟,深耕软件研发十余年,目前*注于金融系统研发工作。

    臧秀涛,InfoQ 前会议内容总编。现于涛思数据负责开源时序数据库 TDengine 的社区生态。代表译作有《Java性能*指南》《C++ API 设计》

    《Groovy 程序设计》等。

    孙*,现任职于*度健康研发中心,*度技术委员会成员。从业十余年,熟悉 Java、PHP 等语言体系,同时也是*名语言文字爱好者。

    秦彬,现任腾讯游戏*级项目经理,曾翻译《体验引擎》《游戏设计梦工厂》《游戏制作的本质》等书。


    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

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

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

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

    查看我的收藏夹

    确定

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

    关闭

    抱歉,您暂无任性付资格

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