新書推薦:
《
中国妖怪故事(全集·增订版)
》
售價:HK$
221.8
《
于胥斯原 乡族、风水与地方记忆
》
售價:HK$
177.0
《
以经治国与汉代社会
》
售價:HK$
98.6
《
我真正想要什么?:智慧瑜伽答问/正念系列
》
售價:HK$
58.2
《
元朝理财记 从成吉思汗的崛起到元朝的衰亡
》
售價:HK$
98.6
《
欧洲史:一本书历览欧洲数千年兴衰起伏,理解欧洲文明何以铸就今日世界
》
售價:HK$
333.8
《
趣学CCNA——路由与交换(第2版)
》
售價:HK$
100.6
《
世界航空地理(世界国别与区域地理研究丛书)
》
售價:HK$
244.2
編輯推薦:
适读人群 :使用Java技术进行实际项目开发的编程人员
Java领域极具影响力和价值的著作之一,与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。
全新原书中文第11版!针对Java SE 9、10、11全面更新,系统全面讲解Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。
卷I:主要介绍Java语言的基础知识的专业级详解;
卷II:主要介绍软件开发需要了解的高级主题。
內容簡介:
本书由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),是程序员的优选Java指南。本版针对Java SE 9、10和 11全面更新。
【卷1共12章】
☉第1章概述Java语言的特色功能;
☉第2章详细论述如何下载和安装JDK以及本书的程序示例;
☉第3章开始讨论Java 语言,包括变量、循环和简单的函数;
☉第4章介绍面向对象两大基石中极要的一个概念封装,以及Java语言实现封装的机制,即类与方法;
☉第5章介绍面向对象的另一个重要概念继承,继承使程序员可以使用现有的类,并根据需要进行修改;
☉第6章展示如何使用Java的接口(可帮助你充分获得Java的完全面向对象程序设计能力)、lambda表达式(用来表述可以在以后某个时间点执行的代码块)和内部类;
☉第7章讨论异常处理,并给出大量实用的调试技巧;
☉第8章概要介绍泛型程序设计,使程序更可读、更安全;
☉第9章讨论Java平台的集合框架,以及如何充分利用内建的标准集合;
☉第10章介绍GUI程序设计(包括如何建立窗口、如何在窗口中绘图、如何利用几何图形绘图、如何采用多种字体格式化文本,以及如何显示图像)和编写代码来响应事件(如鼠标点击事件和按键事件);
☉第11章详细讨论Swing GUI工具包,以建立跨平台的图形用户界面,包括各种按钮、文本组件、边框、滑块、列表框、菜单以及对话框的有关内容;
☉第12章讨论并发。本书*后还有一个附录,其中列出了Java语言的保留字。
【卷2共12章】
☉第1章介绍了Java中的流库;
☉第2章涵盖输入输出处理,探讨了Java 11中引入的广受欢迎的改进和优化;
☉第3章介绍了XML,展示如何解析XML文件、生成XML和使用XSL转换;
☉第4章讲解了网络API,以及怎样连接到服务器、实现自己的服务器、创建HTTP连接,并讨论了新的HTTP客户端;
☉第5章介绍了数据库编程,重点讲解JDBC,即Java数据库连接API;
☉第6章涵盖如何使用新的日期和时间库来处理日历及时区;
☉第7章讨论国际化;
☉第8章介绍3种处理代码的技术;
☉第9章讲解从Java 9开始引入的Java平台模块系统,以促进Java平台和核心类库的有序演化;
☉第10章继续介绍Java安全模型,展示怎样编写类加载器和安全管理器,以及允许使用消息、代码签名、授权和认证及加密等重要特性的安全API;
☉第11章讨论没有纳入卷Ⅰ的所有Swing知识,包括树形构件、表格构件,以及Java 2D API;
☉第12章介绍本地方法,这个功能支持你调用为微软Windows API这样的特殊机制而编写的各种方法。
關於作者:
[美]凯.S.霍斯特曼(Cay S. Horstmann)
圣何塞州立大学计算机科学系教授、Java的倡导者。
他是《Java核心技术》两卷本的作者,并著有《Core Java SE 9 for the Impatient, Second Edition》 Addison-Wesley 2018和《Scala for the Impatient, Second Edition》Addison- Wesley, 2017。
还为专业程序员和计算机科学专业的学生撰写过数十本其他图书。
目錄 :
【卷I基础知识】
第1章 Java程序设计概述 1
1.1 Java程序设计平台 1
1.2 Java白皮书的关键术语 2
1.3 Java applet与Internet 6
1.4 Java发展简史 7
1.5 关于Java的常见误解 10
第2章 Java程序设计环境 12
2.1 安装Java开发工具包 12
2.2 使用命令行工具 16
2.3 使用集成开发环境 20
2.4 JShell 23
第3章 Java的基本程序设计结构 26
3.1 一个简单的Java应用程序 26
3.2 注释 29
3.3 数据类型 29
3.4 变量与常量 34
3.5 运算符 37
3.6 字符串 44
3.7 输入与输出 55
3.8 控制流程 62
3.9 大数 76
3.10 数组 79
第4章 对象与类 92
4.1 面向对象程序设计概述 92
4.2 使用预定义类 96
4.3 用户自定义类 103
4.4 静态字段与静态方法 115
4.5 方法参数 121
4.6 对象构造 126
4.7 包 134
4.7.1 包名 134
4.8 JAR文件 143
4.9 文档注释 148
4.10 类设计技巧 152
第5章 继承 155
5.1 类、超类和子类 155
5.2 Object:所有类的超类 174
5.3 泛型数组列表 186
5.4 对象包装器与自动装箱 192
5.5 参数数量可变的方法 195
5.6 枚举类 196
5.7 反射 198
5.8 继承的设计技巧 219
第6章 接口、lambda表达式与内部类 222
6.1 接口 222
6.2 lambda表达式 242
6.3 内部类 255
6.4 服务加载器 270
6.5 代理 273
第7章 异常、断言和日志 279
7.1 处理错误 279
7.2 捕获异常 286
7.3 使用异常的技巧 297
7.4 使用断言 300
7.5 日志 304
7.6 调试技巧 321
第8章 泛型程序设计 326
8.1 为什么要使用泛型程序设计 326
8.2 定义简单泛型类 328
8.3 泛型方法 330
8.4 类型变量的限定 331
8.5 泛型代码和虚拟机 333
8.6 限制与局限性 338
8.7 泛型类型的继承规则 346
8.8 通配符类型 348
8.9 反射和泛型 354
第9章 集合 365
9.1 Java集合框架 365
9.2 集合框架中的接口 373
9.3 具体集合 375
9.4 映射 394
9.5 视图与包装器 403
9.6 算法 411
9.7 遗留的集合 419
第10章 图形用户界面程序设计 429
10.1 Java用户界面工具包简史 429
10.2 显示窗体 430
10.3 在组件中显示信息 435
10.4 事件处理 453
10.5 首选项API 472
第11章 Swing用户界面组件 478
11.1 Swing和模型视图控制器设计模式 478
11.2 布局管理概述 481
11.3 文本输入 485
11.4 选择组件 491
11.5 菜单 507
11.6 复杂的布局管理 520
11.7 对话框 532
第12章 并发 552
12.1 什么是线程 552
12.2 线程状态 555
12.3 线程属性 558
12.4 同步 563
12.5 线程安全的集合 589
12.6 任务和线程池 603
12.7 异步计算 615
12.8 进程 628
附录 Java关键字 634
【卷II高级特性】
第1章 Java 8的流库 1
1.1 从迭代到流的操作 1
1.2 流的创建 3
1.3 f?ilter、map和f?latMap方法 8
1.4 抽取子流和组合流 9
1.5 其他的流转换 10
1.6 简单约简 11
1.7 Optional类型 13
1.8 收集结果 19
1.9 收集到映射表中 24
1.10 群组和分区 27
1.11 下游收集器 28
1.12 约简操作 32
1.13 基本类型流 34
1.14 并行流 39
第2章 输入与输出 43
2.1 输入输出流 43
2.2 读写二进制数据 61
2.3 对象输入输出流与序列化 70
2.4 操作文件 86
2.5 内存映射文件 99
2.6 文件加锁机制 107
2.7 正则表达式 109
第3章 XML 120
3.1 XML概述 120
3.2 XML文档的结构 122
3.3 解析XML文档 124
3.4 验证XML文档 133
3.5 使用XPath来定位信息 148
3.6 使用命名空间 152
3.7 流机制解析器 154
3.8 生成XML文档 162
3.9 XSL转换 171
第4章 网络 180
4.1 连接到服务器 180
4.2 实现服务器 186
4.3 获取Web数据 199
4.4 HTTP客户端 215
4.5 发送E-mail 221
第5章 数据库编程 225
5.1 JDBC的设计 225
5.2 结构化查询语言 227
5.3 JDBC配置 232
5.4 使用JDBC语句 237
5.5 执行查询操作 246
5.6 可滚动和可更新的结果集 256
5.7 行集 261
5.8 元数据 265
5.9 事务 274
5.10 Web与企业应用中的连接管理 278
第6章 日期和时间API 280
6.1 时间线 280
6.2 本地日期 284
6.3 日期调整器 288
6.4 本地时间 289
6.5 时区时间 290
6.6 格式化和解析 294
6.7 与遗留代码的互操作 298
第7章 国际化 300
7.1 locale 300
7.2 数字格式 305
7.3 日期和时间 311
7.4 排序和规范化 318
7.5 消息格式化 323
7.6 文本输入和输出 327
7.7 资源包 330
7.8 一个完整的例子 333
第8章 脚本、编译与注解处理 348
8.1 Java平台的脚本机制 348
8.2 编译器API 358
8.3 使用注解 367
8.3.1 注解简介 368
8.3.2 示例:注解事件处理器 369
8.4 注解语法 373
8.5 标准注解 379
8.6 源码级注解处理 383
8.7 字节码工程 388
第9章 Java平台模块系统 395
9.1 模块的概念 395
9.2 对模块命名 396
9.3 模块化的Hello, World!程序 397
9.4 对模块的需求 398
9.5 导出包 400
9.6 模块化的JAR 403
9.7 模块和反射式访问 404
9.8 自动模块 406
9.9 不具名模块 408
9.10 用于迁移的命令行标识 409
9.11 传递的需求和静态的需求 410
9.12 限定导出和开放 411
9.13 服务加载 412
9.14 操作模块的工具 414
第10章 安全 417
10.1 类加载器 417
10.2 安全管理器与访问权限 429
10.3 用户认证 446
10.4 数字签名 459
10.5 加密 472
第11章 高级Swing和图形化编程 483
11.1 表格 483
11.2 树 513
11.3 高级AWT 544
11.4 像素图 583
11.5 打印 604
第12章 本地方法 632
12.1 从Java程序中调用C函数 633
12.2 数值参数与返回值 637
12.3 字符串参数 639
12.4 访问域 644
12.5 编码签名 648
12.6 调用Java方法 650
12.7 访问数组元素 656
12.8 错误处理 659
12.9 使用调用API 663
12.10 完整的示例:访问Windows注册表 668
內容試閱 :
【卷I】
致读者
1995年年底,Java语言在Internet舞台一亮相便名声大噪。原因在于它将有望成为连接用户与信息的万能胶,而不论这些信息来自Web服务器、数据库、信息提供商,还是任何其他可以想象的渠道。事实上,就发展前景而言,Java的地位是独一无二的。它是一种完全可信赖的程序设计语言,并得到了广泛认可。其固有的可靠性与安全性不仅令Java程序员放心,也令使用Java程序的用户放心。Java内建了对网络编程、数据库连接和并发等高级程序设计任务的支持。
1995年以来,已经发布了Java开发工具包(Java Development Kit)的11个主要版本。在过去的20年中,应用程序编程接口(API)已经从200个类扩展到超过4000个类。现在这些API覆盖了用户界面构建、数据库管理、国际化、安全性以及XML处理等各个不同的领域。
本书是《Java核心技术》第11版的卷Ⅰ。自《Java核心技术》出版以来,每个新版本都尽可能快地跟上Java开发工具包发展的步伐,而且每一版都重新改写了部分内容,以便利用Java的最新特性。这一版经过修订,反映了Java 标准版(Java SE)9、10和11的特性。
与本书前几版一样,这一版仍然将读者群定位为那些打算将Java应用到实际工程项目中的程序设计人员。本书假设读者是一名具有程序设计语言(除Java之外)坚实背景知识的程序员,并且不希望书中充斥着玩具式的示例(诸如,烤面包机、动物园的动物或神经质的跳动文本)。这些内容绝对不会在本书中出现。本书的目标是让读者充分理解书中介绍的Java语言及Java类库的相关特性,而不会产生任何误解。
在本书中,我们选用大量的示例代码演示所讨论的每一个语言特性和类库特性。我们有意使用简单的示例程序以突出重点,然而,其中的大部分既不是赝品也没有偷工减料。它们将成为读者自己编写代码的良好开端。
我们假定读者愿意(甚至渴望)学习Java提供的所有高级特性。例如,本书将详细介绍下列内容:
面向对象程序设计、反射与代理、接口与内部类、异常处理、泛型程序设计、集合框架、事件监听器模型、图形用户界面设计、并发。
【卷II】
本书是按照Java SE 11进行更新的。卷Ⅰ主要介绍了Java语言的一些关键特性,而本卷主要介绍编程人员进行专业软件开发时需要了解的高级主题。因此,与卷Ⅰ和之前的版本一样,我们仍将本书定位于用Java技术进行实际项目开发的编程人员。