您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
Kotlin进阶实战
装帧: 平装
出版社: 清华大学出版社
作者: 沈哲、易庞宙
出版日期: 2021-10-01
商品条码: 9787302591207
版次: 1
开本: 其他
页数: 408
出版年份: 2021
定价:
¥109
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
编辑推荐
"本书几乎涵盖了Kotlin所有的特性,包括函数特性、面向对象特性、元编程、DSL、跨平台开发、协程、Flow、RxJava、Jetpack等,内容非常丰富。 本书还介绍了使用Kotlin开发的多个实例,如移动端实战、服务端实战、响应式开发实战等,这些例子是对本书知识的综合运用,对使用Kotlin进行开发的读者具备较大的参考价值。 本书是编者系统学习Kotlin和多年实战经验的积累和总结,通过非常简易的代码讲解Kotlin语言的各种特性,代码实例不会涉及过于抽象的业务场景,但会通过具体代码实例对Kotlin语言背后的设计思想和原理进行详细分析,力图使读者通过实际操作快速上手和深入理解Kotlin语言的相关知识。 本书面向所有希望从事 Android 开发和服务端开发的IT从业人员,希望读者通过阅读本书,使用Kotlin开发应用程序的技能更上一层楼。"
内容简介
本书详细介绍了Kotlin语言方方面面的特性,包括各种类型的函数,贯彻本书始终的Lambda表达式,有别于Java的委托、泛型,灵活、简洁的DSL,常用的语法糖,相比线程更加轻量级的协程,参考RxJava实现的Flow,等等。本书还提供了大量涉及移动端、服务端甚至桌面端的案例,这些案例都是编者使用Kotlin之后的实践和心得,同时包含很多编者封装的library,供读者参考、借鉴和使用。 本书适合有一定Kotlin语法基础的读者使用,尤其适合移动端和服务端的开发人员使用,也可以用作大专院校和培训机构的教学参考书。
作者简介
"沈 哲,现就职于万物新生(爱回收),担任创新中心技术总监,负责AIoT 产品相关的研发工作。具有多年的服务端、移动端研发经验,熟悉函数响应式编程,对计算机视觉有一定的研究。曾负责过一款移动端深度链接的产品,日活数千万,该产品已于2019年初以千万级别的交易额卖给极光,后更名为极光魔链。出版著作《RxJava 2.x 实战》。 易庞宙,Android开源爱好者,RxTask库、全面屏适配库以及一些Android常用开源工具的开发者,CSDN博主。负责过搜床科技集团Android开发,例如xbed、酒店自助入住App开发等,目前就职于广州极飞科技股份有限公司,担任高级Android开发工程师。"
目录
目 录 第1章 认识Kotlin 1 1.1 Kotlin简介 1 1.1.1 Kotlin的历史 1 1.1.2 Kotlin的特性 1 1.2 Kotlin的发展 2 1.2.1 实用主义 2 1.2.2 生态圈 3 1.2.3 逐渐Kotlin化的Java 3 1.3 总结 3 第2章 Kotlin的函数与类 4 2.1 函数的基本概念 4 2.1.1 函数的参数 5 2.1.2 函数 8 2.2 Kotlin的类(一) 11 2.2.1 构造函数和初始化块 12 2.2.2 属性 15 2.2.3 抽象类 16 2.2.4 嵌套类和内部类 16 2.2.5 枚举类 17 2.3 Kotlin的类(二) 18 2.3.1 对象声明和对象表达式 18 2.3.2 伴生对象 19 2.3.3 数据类 20 2.3.4 密封类 23 2.4 总结 24 第3章 Kotlin的函数式编程 25 3.1 函数式编程与高阶函数 25 3.1.1 函数式编程 25 3.1.2 高阶函数 25 3.2 Lambda表达式 29 3.2.1 Java 8的Lambda 29 3.2.2 Kotlin的Lambda语法 31 3.2.3 简化Kotlin的Lambda表达式 31 3.2.4 方法引用 32 3.2.5 Kotlin支持SAM转换 33 3.2.6 使用高阶函数的例子 34 3.2.7 换个角度看 Lambda表达式 35 3.3 集合、序列和Java中的流 38 3.3.1 集合中的函数式API 38 3.3.2 序列和流 41 3.4 总结 41 第4章 内联函数与扩展函数 42 4.1 内联函数 42 4.1.1 inline的使用 42 4.1.2 禁用内联——noinline 45 4.1.3 非局部返回以及crossinline的使用 47 4.2 内联属性 48 4.2.1 内联属性 48 4.2.2 内联类 48 4.3 扩展函数 48 4.3.1 扩展函数的特性 48 4.3.2 常用标准库的扩展函数 51 4.4 扩展属性 56 4.5 总结 60 第5章 委托 61 5.1 委托介绍 61 5.1.1 静态代理 61 5.1.2 动态代理 62 5.2 Kotlin的委托模式和委托属性 64 5.2.1 委托模式 64 5.2.2 委托属性 65 5.3 lateinit和by lazy 69 5.4 总结 73 第6章 泛型 74 6.1 类型擦除 74 6.1.1 Java泛型的优点 74 6.1.2 Kotlin的泛型 75 6.1.3 Java通过类型擦除支持泛型 75 6.1.4 Kotlin如何获得声明的泛型类型 77 6.2 型变 80 6.2.1 类和类型 80 6.2.2 型变 80 6.3 泛型约束、类型投影与星号投影 83 6.3.1 泛型约束 83 6.3.2 类型投影 84 6.3.3 星号投影 84 6.3.4 泛型的应用 85 6.4 总结 86 第7章 元编程 87 7.1 元编程 87 7.1.1 元编程介绍 87 7.1.2 元编程的分类 87 7.1.3 根本没有什么元编程,从来只有编程而已 88 7.2 Kotlin反射概述 88 7.2.1 概述 88 7.2.2 Kotlin反射API 89 7.3 Java反射和Kotlin反射(上) 90 7.3.1 类引用,获取Class对象 90 7.3.2 构造函数引用,获取类的构造函数 91 7.3.3 函数引用,获取类的成员函数 92 7.3.4 属性引用,获取类的成员变量 94 7.4 Java反射和Kotlin反射(下) 96 7.4.1 获取类的其他信息 96 7.4.2 Java反射与Kotlin反射的互操作性 98 7.5 总结 99 第8章 DSL的构建 100 8.1 DSL介绍 100 8.2 构建一个DSL的多种方式 101 8.2.1 带接收者的函数类型 101 8.2.2 带接收者的Lambda 101 8.2.3 创建一个自己的DSL 102 8.2.4 将扩展函数改成DSL的方式 104 8.2.5 使用运算符重载实现DSL 105 8.2.6 使用中缀表达式实现DSL 106 8.2.7 Kotlin DSL的实际使用——封装路由框架的使用 107 8.3 总结 108 第9章 常用语法糖与设计模式 110 9.1 运算符重载 110 9.2 中缀表达式 112 9.2.1 在扩展函数中使用中缀表达式 113 9.2.2 在成员函数中使用中缀表达式 113 9.3 作用域函数 114 9.3.1 作用域函数的概念 114 9.3.2 如何优雅地使用作用域函数 114 9.4 Contract契约 118 9.4.1 Contract的概念 119 9.4.2 Contract的特性 119 9.4.3 Contract源码解析 120 9.4.4 小结 122 9.5 在data class中使用MapStruct 122 9.5.1 data class的copy()为浅拷贝 122 9.5.2 MapStruct简介 123 9.5.3 在Kotlin中使用MapStruct 123 9.6 更好地使用设计模式 126 9.6.1 单例模式 126 9.6.2 builder模式 127 9.6.3 观察者模式 128 9.6.4 状态模式 129 9.7 总结 130 第10章 跨平台开发 131 10.1 跨平台的简单介绍 131 10.1.1 跨平台开发的愿景 131 10.1.2 跨平台开发当前的主流技术 131 10.1.3 Kotlin与Flutter的对比 132 10.2 利用Ktor-Client实现跨平台网络请求 132 10.2.1 什么是Ktor 132 10.2.2 Ktor-Client的使用 132 10.3 总结 142 第11章 协程及其应用 143 11.1 协程的基本概念 143 11.1.1 协程的定义 143 11.1.2 为何要使用协程 143 11.1.3 Kotlin协程的基本概念 148 11.2 Coroutine builders 149 11.2.1 launch和async 149 11.2.2 runBlocking 152 11.3 挂起函数 152 11.3.1 delay 152 11.3.2 yield 153 11.3.3 withContext 154 11.3.4 coroutineScope 156 11.4 协程的上下文和调度 156 11.4.1 协程的调度 156 11.4.2 父子协程 158 11.4.3 多个CoroutineContext进行“+”操作 160 11.4.4 CoroutineContext+Job 161 11.5 协程的作用域 CoroutineScope 162 11.5.1 尽量少用GlobalScope 162 11.5.2 安全地使用CoroutineScope 163 11.5.3 在Android中更好地使用Coroutines 163 11.6 Channel机制 164 11.6.1 生产者和消费者 164 11.6.2 管道 165 11.6.3 channel缓冲 167 11.6.4 actor 168 11.6.5 Select表达式 169 11.7 总结 170 第12章 Flow的基本使用 171 12.1 Flow的使用 171 12.1.1 Kotlin Flow介绍 171 12.1.2 Flow的基本使用方式 171 12.1.3 Flow的生命周期 176 12.2 Flow和RxJava 177 12.2.1 Flow和Sequences 177 12.2.2 Flow和RxJava 178 12.3 Flow的异常处理 182 12.3.1 catch操作符 182 12.3.2 retry、retryWhen操作符 184 12.4 Flow的线程操作 185 12.4.1 更为简化的线程切换 185 12.4.2 flowOn和RxJava的observeOn 185 12.4.3 buffer实现并发操作 186 12.4.4 并行操作 188 12.5 Flow其他的操作符 189 12.5.1 转换操作符 189 12.5.2 大小的操作符 189 12.5.3 终端操作符 189 12.5.4 合并操作符 190 12.5.5 扁平化操作符 193 12.6 总结 195 第13章 RxJava的新特性及常用操作符 198 13.1 RxJava入门 198 13.1.1 RxJava入门理念 198 13.1.2 RxJava的基础知识 199 13.1.3 RxJava的生命周期 201 13.2 RxJava 3新特性描述 204 13.2.1 主要特性讲解 204 13.2.2 与RxJava 2.x的区别 204 13.2.3 RxJava 3新特性部分详述 204 13.3 常用操作符讲解 207 13.3.1 创建操作符 207 13.3.2 转换操作符 215 13.3.3 过滤操作符 220 13.4 总结 227 第14章 RxJava的核心机制 229 14.1 ObservableSource、Observable、Observer的同流合污 229 14.2 恐怖的Function机制 230 14.3 线程的决策者Scheduler 231 14.3.1 Scheduler工作核心Worker 232 14.3.2 Scheduler线程池核心RxThreadFactory 232 14.3.3 异步实践例子 233 14.3.4 并行的操作 234 14.4 Observeable五兄弟的差异性 235 14.4.1 Observable 235 14.4.2 Flowable 238 14.4.3 Single 239 14.4.4 Completable 240 14.4.5 Maybe 240 14.5 背压策略 241 14.5.1 MISSING 242 14.5.2 ERROR 242 14.5.3 BUFFER 242 14.5.4 DROP 243 14.5.5 LATEST 243 14.6 总结 243 第15章 Jetpack 244 15.1 Jetpack介绍 244 15.1.1 客户端的架构迭代 244 15.1.2 AAC的功能 246 15.1.3 Android Jetpack 247 15.2 Lifecycle 249 15.2.1 Lifecycle介绍 249 15.2.2 Lifecycle的使用 250 15.2.3 Retrofit结合Lifecycle 253 15.3 ViewModel 254 15.3.1 ViewModel介绍 254 15.3.2 ViewModel的使用 255 15.3.3 使用Kotlin委托属性创建ViewModel 256 15.3.4 AndroidViewModel 257 15.3.5 ViewModel源码简单分析 257 15.4 LiveData 261 15.4.1 LiveData介绍 261 15.4.2 LiveData的使用 262 15.4.3 在ViewModel中使用LiveData 263 15.4.4 LiveData实现Fragment之间的通信 264 15.4.5 LiveData源码简单分析 265 15.5 Room的用法 267 15.5.1 Room的基本了解 267 15.5.2 Room的配置与使用 268 15.5.3 常用的SQL操作 270 15.5.4 Room的兼容与升级 271 15.5.5 小结 275 15.6 Navigation用法详解 276 15.6.1 Navigation的配置 276 15.6.2 Navigation的基本使用 277 15.6.3 Navigation原理解析 284 15.6.4 小结 287 15.7 总结 287 第16章 Android实战 288 16.1 构建一个日志框架 288 16.1.1 Android日志框架L 288 16.1.2 如何开发一款类似L的日志框架 289 16.1.3 记录Android日志更好的方式 297 16.2 网络诊断工具 297 16.3 使用Netty构建一个在Android上运行的Web服务器 304 16.3.1 开发背景 304 16.3.2 AndroidServer的特性 304 16.3.3 AndroidServer的设计原理 304 16.3.4 AndroidServer的使用 310 16.4 实现协程版本的EventBus 313 16.4.1 RxJava版本的EventBus 313 16.4.2 Kotlin Coroutine版本的EventBus 317 16.4.3 小结 322 16.5 总结 322 第17章 响应式开发实战 323 17.1 封装一个基于RxJava的任务框架RxTask 323 17.1.1 RxTask奠基石的实现 324 17.1.2 利用奠基石实现多种Task 328 17.1.3 RxTask的改进,针对Java、Android平台进行适应 335 17.2 基于Kotlin、RxJava实现的有限状态机 339 17.2.1 状态机 339 17.2.2 常用的状态机分类 339 17.2.3 Kotlin开发的FSM 340 17.2.4 应用 351 17.3 Kotlin、RxJava以及传统的机器学习在手机质检上的应用 353 17.3.1 业务背景 353 17.3.2 设计思路 353 17.3.3 代码实现以及踩过的坑 355 17.3.4 后续的规划 361 17.4 总结 361 第18章 服务端实战 362 18.1 使用Ktor快速开发Web项目 362 18.1.1 Ktor介绍 362 18.1.2 Ktor服务端的使用 362 18.1.3 例子 365 18.2 使用WebFlux + R2DBC开发Web项目 369 18.2.1 R2DBC介绍 369 18.2.2 R2DBC的使用 370 18.2.3 小结 376 18.3 使用NetDiscovery开发网络爬虫 376 18.3.1 NetDiscovery介绍 376 18.3.2 DSL在爬虫框架中的使用 379 18.3.3 Kotlin Coroutines在爬虫框架中的使用 384 18.4 实现智能硬件的远程控制系统(上) 388 18.4.1 业务背景及远程控制系统的功能 388 18.4.2 远程控制系统服务端的设计 388 18.4.3 远程控制系统的数据流向 389 18.4.4 远程控制系统服务端的相关代码 390 18.4.5 远程控制系统后续的规划 397 18.5 实现智能硬件的远程控制系统(下) 397 18.5.1 远程控制的客户端介绍 397 18.5.2 Watcher的设计 398 18.5.3 Watcher的核心代码 399 18.5.4 小结 408 18.6 总结 408
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网