当前位置:当前位置:主页 > 计算机电子书 > Java > Java pdf电子书
On Java 中文版 进阶卷

On Java 中文版 进阶卷 PDF 完整超清版

  • 更新:2022-03-31
  • 大小:88.6 MB
  • 类别:Java
  • 作者:布鲁斯·埃克尔
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

On Java 中文版 进阶卷》是由人民邮电出版社出版的一本关于Java方面的书籍,作者是布鲁斯·埃克尔,主要介绍了关于Java、Java进阶方面的知识内容,目前在Java类书籍综合评分为:9.6分。

书籍介绍

java编程开发语言程序设计核心技术教程书籍,Thinkingin作者BruceEckel重讲Java的编程思想,基于Java81117,配套视频讲解与导读指南!

内容简介

本书内容主要是对《OnJava中文版基础卷》的拓展延伸,重点讲解Java的高级特性、并发、设计模式等相关进阶知识,对一些和开发密切相关的底层操作(如I/O系统、底层并发、数据压缩等)进行深入探讨,同时针对基础卷的重点章节进行了补充说明(如第3章增补了一些关于集合的高级特性)。在附录中,作者给出了67条关于低级程序设计和编写代码的建议,并分享了自己成为程序员的一些经验之谈。

本书适合有一定项目开发经验的Java程序员阅读。

目录

  • 第1章枚举类型001
  • 1.1枚举类型的基本特性/001
  • 静态导入枚举类型/002
  • 1.2在枚举类型中增加自定义方
  • 法/003
  • 重载枚举类型中的方法/004
  • 1.3在switch语句中使用枚举/005
  • 1.4values()方法的神秘之处/006
  • 1.5实现,而不是继承/009
  • 1.6随机选择/010
  • 1.7使用接口来组织枚举/011
  • 1.8用EnumSet来代替标识/015
  • 1.9使用EnumMap/017
  • 1.10常量特定方法/018
  • 1.10.1用枚举实现职责链模
  • 式/023
  • 1.10.2用枚举实现状态机/027
  • 1.11多路分发/032
  • 1.11.1使用枚举类型分发/034
  • 1.11.2使用常量特定方法/036
  • 1.11.3使用EnumMap分发/038
  • 1.11.4使用二维数组/039
  • 1.12支持模式匹配的新特性/041
  • 1.13新特性:switch中的箭头语
  • 法/041
  • 1.14新特性:switch中的case
  • null/042
  • 1.15新特性:将switch作为表达
  • 式/044
  • 1.16新特性:智能转型/046
  • 1.17新特性:模式匹配/048
  • 1.17.1违反里氏替换原则/049
  • 1.17.2守卫/053
  • 1.17.3支配性/055
  • 1.17.4覆盖范围/057
  • 1.18总结/058
  • 第2章对象传递和返回060
  • 2.1传递引用/061
  • 引用别名/061
  • 2.2创建本地副本/063
  • 2.2.1值传递/063
  • 2.2.2克隆对象/064
  • 2.2.3为类增加可克隆能力/065
  • 2.2.4成功的克隆/067
  • 2.2.5Object.clone()的效果/068
  • 2.2.6克隆组合对象/070
  • 2.2.7深拷贝ArrayList/073
  • 2.2.8通过序列化进行深拷贝/074
  • 2.2.9在继承层次结构中增加可克隆性并向下覆盖/076
  • 2.2.10为什么用这种奇怪的
  • 设计/077
  • 2.3控制可克隆性/078
  • 复制构造器/082
  • 2.4不可变类/086
  • 2.4.1创建不可变类/088
  • 2.4.2不可变性的缺点/089
  • 2.4.3String很特殊/091
  • 2.5总结/091
  • 第3章集合主题093
  • 3.1样例数据/093
  • 3.2List的行为/099
  • 3.3Set的行为/102
  • 3.4在Map上使用函数式操作/104
  • 3.5选择Map的部分元素/105
  • 3.6填充集合/107
  • 3.6.1使用Suppliers来填充Collection/108
  • 3.6.2使用Suppliers来填充
  • Map/109
  • 3.7使用享元自定义Collection和Map/112
  • 3.8Collection的功能/123
  • 3.9可选的操作/125
  • 不支持的操作/127
  • 3.10Set与存储顺序/129
  • SortedSet/132
  • 3.11Queue/134
  • 3.11.1优先级队列/135
  • 3.11.2Deque/136
  • 3.12理解Map/137
  • 3.12.1性能/139
  • 3.12.2SortedMap/141
  • 3.12.3LinkedHashMap/143
  • 3.13工具函数/144
  • 3.13.1List上的排序和
  • 查找/147
  • 3.13.2创建不可修改的Collection或Map/148
  • 3.13.3同步Collection或
  • Map/150
  • 3.14持有引用/151
  • WeakHashMap/154
  • 3.15Java1.0/1.1的集合类/155
  • 3.15.1Vector和
  • Enumeration/155
  • 3.15.2Hashtable/156
  • 3.15.3Stack/157
  • 3.15.4BitSet/158
  • 3.16总结/160
  • 第4章注解162
  • 4.1基本语法/163
  • 4.1.1定义注解/164
  • 4.1.2元注解/165
  • 4.2编写注解处理器/166
  • 4.2.1注解元素/167
  • 4.2.2默认值的限制/168
  • 4.2.3生成外部文件/168
  • 4.2.4注解不支持继承/172
  • 4.2.5实现处理器/172
  • 4.3用javac处理注解/174
  • 4.3.1简单的处理器/175
  • 4.3.2更复杂的处理器/178
  • 4.4基于注解的单元测试/182
  • 4.4.1在@Unit中使用泛型/190
  • 4.4.2实现@Unit/192
  • 4.5总结/202
  • 第5章并发编程203
  • 5.1令人迷惑的术语/204
  • 并发的新定义/206
  • 5.2并发的超能力/207
  • 5.3并发为速度而生/209
  • 5.4Java并发四定律/211
  • 5.4.1不要使用并发/211
  • 5.4.2一切都不可信,一切都很
  • 重要/212
  • 5.4.3能运行并不代表没有
  • 问题/212
  • 5.4.4你终究要理解并发/213
  • 5.5残酷的事实/214
  • 5.6本章剩余部分/216
  • 5.7并行流/218
  • 5.7.1parallel()并非灵丹妙
  • 药/219
  • 5.7.2parallel()和limit()的
  • 作用/224
  • 5.7.3并行流只是看起来很简
  • 单/228
  • 5.8创建和运行任务/228
  • 5.8.1Task和Executor/228
  • 5.8.2使用更多的线程/232
  • 5.8.3生成结果/234
  • 5.8.4作为任务的lambda与方法引用/236
  • 5.9终止长时间运行的任务/237
  • 5.10CompletableFuture/240
  • 5.10.1基本用法/241
  • 5.10.2其他操作/244
  • 5.10.3合并多个Completable-Future/247
  • 5.10.4模拟场景应用/251
  • 5.10.5异常/253
  • 5.11死锁/259
  • 5.12构造器并不是线程安全的/264
  • 5.13工作量、复杂性、成本/268
  • 5.14总结/273
  • 5.14.1缺点/274
  • 5.14.2Java核心设计的失败之
  • 处/275
  • 5.14.3其他的库/275
  • 5.14.4设想一种为并发而设计的语言/276
  • 5.14.5延伸阅读/276
  • 第6章底层并发277
  • 6.1什么是线程?/277
  • 6.1.1线程数/279
  • 6.1.2我可以创建多少线程/280
  • 6.2捕获异常/282
  • 6.3共享资源/286
  • 6.3.1资源竞争/286
  • 6.3.2解决资源竞争/290
  • 6.3.3将EvenProducer同步化/292
  • 6.4volatile关键字/293
  • 6.4.1字分裂/293
  • 6.4.2可见性/294
  • 6.4.3(指令)重排序和先行发
  • 生/295
  • 6.4.4何时使用volatile/296
  • 6.5原子性/296
  • 6.5.1Josh的序列号/300
  • 6.5.2原子类/303
  • 6.6临界区/304
  • 6.6.1在其他对象上进行同步/307
  • 6.6.2使用显式Lock对象/308
  • 6.7库组件/310
  • 6.7.1延迟队列DelayQueue/311
  • 6.7.2优先级阻塞队列Priority-BlockingQueue/313
  • 6.7.3无锁集合/316
  • 6.8总结/317
  • 第7章JavaI/O系统319
  • 7.1I/O流/319
  • 7.1.1各种InputStream类型/321
  • 7.1.2各种OutputStream类型/321
  • 7.1.3添加属性和有用的接口/322
  • 7.1.4各种Reader和Writer/324
  • 7.1.5自成一家的Random-AccessFile/327
  • 7.1.6I/O流的典型用法/328
  • 7.1.7小结/335
  • 7.2标准I/O/335
  • 7.2.1从标准输入中读取/336
  • 7.2.2将System.out转换为PrintWriter/336
  • 7.2.3标准I/O重定向/337
  • 7.2.4进程控制/338
  • 7.3新I/O系统/340
  • 7.3.1字节缓冲区ByteBuffer/340
  • 7.3.2转换数据/344
  • 7.3.3获取基本类型/347
  • 7.3.4视图缓冲区/348
  • 7.3.5用缓冲区操纵数据/352
  • 7.3.6内存映射文件/357
  • 7.3.7文件加锁/361
  • 第8章设计模式364
  • 8.1设计模式的概念/364
  • 8.2单例模式/366
  • 8.3设计模式的分类/370
  • 8.4模板方法/370
  • 8.5封装实现/371
  • 8.5.1代理模式/372
  • 8.5.2状态模式/373
  • 8.5.3状态机模式/376
  • 8.6工厂模式:封装对象的创建/377
  • 8.6.1动态工厂模式/380
  • 8.6.2多态工厂模式/381
  • 8.6.3抽象工厂模式/382
  • 8.7函数对象模式/384
  • 8.7.1命令模式/385
  • 8.7.2策略模式/386
  • 8.7.3职责链模式/388
  • 8.8改变接口/391
  • 8.8.1适配器模式/391
  • 8.8.2外观模式/392
  • 8.9解释器模式:运行时的灵活
  • 性/394
  • 8.10回调/394
  • 8.10.1观察者模式/394
  • 8.10.2示例:观察花朵/395
  • 8.10.3一个可视化的观察者示
  • 例/398
  • 8.11多路分发/401
  • 8.12模式重构/405
  • 8.12.1Trash和它的子类/405
  • 8.12.2信使对象/410
  • 8.12.3使工厂通用化/411
  • 8.12.4从文件解析Trash/412
  • 8.12.5用DynaFactory实现回
  • 收/415
  • 8.12.6将用法抽象化/416
  • 8.12.7用多路分发重新设计/420
  • 8.12.8访问者模式/427
  • 8.12.9反射是有害的?/431
  • 8.13总结/435
  • 编程指南/436
  • Javadoc/446
  • 理解equals()和hashCode()/451
  • 数据压缩/475
  • 对象序列化/481
  • 静态类型检查的利与弊/505

资源获取

相关资源

网友留言