《KOTLIN入门与实战》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:向治洪著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2019
  • ISBN:9787115498762
  • 页数:357 页
图书介绍:本书内容由基础知识和项目实例构成,基础知识主要围绕基础语法和常见的概念进行讲解,让读者对Kotlin的语法结构有一个大概的了解,每个语法点的讲解都配备相应的实例。全书共分为18章,包括Kotlin入门与基础部分、Kotlin语法和Kotlin项目实例三部分。通过本书的讲解,读者可以对Kotlin语言有一个全面的了解,并将它运用到实际的项目中。

第一部分 Kotlin入门与基础 1

第1章 Kotlin简介 1

1.1 Kotlin发展史 1

1.2 面向对象编程概述 3

1.2.1 面向过程编程 3

1.2.2 面向对象编程 4

1.3 Java虚拟机 5

1.3.1 JVM语系生态 5

1.3.2 Java虚拟机概述 7

1.3.3 Kotlin应用程序运行过程 7

1.4 为什么使用Kotlin 8

1.5 Kotlin与Java的比较 11

1.6 小结 12

第2章 Kotlin初体验 13

2.1 Kotlin在线运行 13

2.2 Kotlin 1.1 特性 15

2.2.1 JavaScript全面支持 15

2.2.2 JVM新特性 16

2.2.3 协程 17

2.2.4 标准库 19

2.3 Kotlin 1.2 新特性 20

2.3.1 多平台支持 21

2.3.2 多平台环境搭建 21

2.3.3 特定平台声明 24

2.3.4 标准库支持 25

2.3.5 JVM特性 27

2.3.6 JavaScript特性支持 28

2.4 小结 29

第3章 Kotlin快速入门 30

3.1 在Mac上搭建Kotlin开发环境 30

3.1.1 安装与配置JDK环境 30

3.1.2 安装与配置IDE 33

3.2 Kotlin开发IDE介绍 36

3.2.1 IntelliJ IDEA开发环境 36

3.2.2 Android Studio集成开发环境 38

3.3 Kotlin的编译与运行 42

3.3.1 命令行方式编译运行Kotlin 42

3.3.2 运行Kotlin REPL 44

3.3.3 在浏览器中运行Kotlin 45

3.3.4 在Node.js中运行Kotlin 47

3.4 Kotlin构建方式 48

3.4.1 使用Gradle方式构建Kotlin 48

3.4.2 使用Maven方式构建Kotlin 50

3.4.3 使用Ant方式构建Kotlin 51

3.4.4 Kotlin与OSGi 52

3.4.5 Kotlin与Kapt 53

3.5 编译器插件 55

3.5.1 全开放编译插件 55

3.5.2 无参编译器插件 56

3.6 小结 58

第二部分 Kotlin语法 59

第4章 Kotlin语法基础 59

4.1 Kotlin编程风格 59

4.2 变量与属性 61

4.2.1 变量声明 61

4.2.2 getter和setter 63

4.2.3 访问权限 65

4.3 基本数据类型 66

4.3.1 数值类型 66

4.3.2 字符类型 68

4.3.3 布尔类型 69

4.3.4 数组类型 69

4.3.5 字符串 70

4.4 包声明与使用 72

4.5 流程控制语句 75

4.5.1 if条件语句 75

4.5.2 when语句 76

4.5.3 for循环 78

4.5.4 while循环 79

4.5.5 返回与跳转 79

4.6 Kotlin运算符 80

4.6.1 赋值运算符 80

4.6.2 算数运算符 81

4.6.3 关系运算符 81

4.6.4 逻辑运算符 82

4.6.5 区间运算符 82

4.6.6 运算符优先级 83

4.7 运算符重载 84

4.7.1 一元运算符 85

4.7.2 二元运算符 86

4.7.3 位运算符 88

4.8 Kotlin操作符 88

4.8.1 冒号操作符 88

4.8.2 @操作符 89

4.8.3 $操作符 90

4.8.4 安全转换操作符 90

4.8.5 类型判断操作符 90

4.9 Kotlin动态类型 91

4.10 Kotlin空安全 92

4.10.1 可空类型与不可空类型 92

4.10.2 判空操作符 93

4.10.3 Elvis操作符 94

4.10.4 强校验操作符 94

4.10.5 安全的类型转换 95

4.10.6 可空类型集合 95

4.11 异常处理 95

4.11.1 异常类 95

4.11.2 自定义异常 96

4.11.3 try表达式 97

4.11.4 throw表达式 97

4.11.5 受检异常 97

4.12 小结 98

第5章 类与接口 99

5.1 类 99

5.1.1 类的声明 99

5.1.2 构造函数 101

5.1.3 类的实例 102

5.2 继承 103

5.3 抽象类 106

5.4 接口 108

5.5 小结 110

第6章 扩展函数与属性 111

6.1 枚举 111

6.1.1 基本用法 111

6.1.2 枚举类扩展 112

6.2 扩展 114

6.2.1 扩展的动机 114

6.2.2 扩展原生函数 114

6.2.3 静态解析 115

6.2.4 扩展属性 116

6.2.5 扩展伴生对象 117

6.2.6 扩展的作用域 117

6.2.7 类中声明扩展 118

6.3 this表达式 120

6.4 小结 121

第7章 数据类与密封类 122

7.1 数据类 122

7.1.1 对象复制 123

7.1.2 序列化 124

7.1.3 成员解构 125

7.2 密封类 127

7.3 小结 128

第8章 集合与泛型 129

8.1 集合 129

8.1.1 集 129

8.1.2 列表 130

8.1.3 映射 132

8.2 泛型 133

8.2.1 泛型基础 133

8.2.2 型变 134

8.2.3 声明处型变 135

8.2.4 类型投影 136

8.2.5 星号投影 138

8.2.6 泛型函数 138

8.2.7 泛型约束 139

8.3 小结 139

第9章 对象与委托 140

9.1 对象 140

9.1.1 对象表达式 140

9.1.2 对象声明 142

9.1.3 伴生对象 143

9.2 委托 144

9.2.1 类委托 144

9.2.2 委托属性 145

9.3 标准委托 146

9.3.1 延迟属性 146

9.3.2 可观察属性 147

9.3.3 Map委托 148

9.3.4 Not Null 149

9.3.5 局部委托属性 150

9.3.6 提供委托 151

9.4 小结 152

第10章 反射与注解 153

10.1 反射 153

10.1.1 类引用 154

10.1.2 类成员引用 154

10.1.3 函数引用 155

10.1.4 属性引用 156

10.1.5 构造函数引用 157

10.1.6 KClass反射 158

10.1.7 对象序列化 161

10.2 注解 162

10.2.1 注解声明 162

10.2.2 注解使用 163

10.2.3 注解类的构造函数 165

10.2.4 注解使用场景目标 166

10.2.5 与Java注解互调 167

10.2.6 注解分类 168

10.2.7 注解的生命周期 169

10.3 小结 169

第11章 函数与Lambda表达式 170

11.1 函数 170

11.1.1 函数基本用法 170

11.1.2 中缀表示法 171

11.1.3 函数参数 171

11.1.4 函数作用域 173

11.1.5 函数返回值 174

11.1.6 尾递归函数 175

11.2 高阶函数 175

11.2.1 高阶函数基本用法 175

11.2.2 标准高阶函数 177

11.3 内联函数 179

11.3.1 内联Lambda表达式 179

11.3.2 内联函数声明 180

11.3.3 非局部返回 181

11.3.4 实例化类型参数 182

11.3.5 内联属性 183

11.4 Lambda表达式与匿名函数 183

11.4.1 Lambda表达式语法 184

11.4.2 函数类型 185

11.4.3 匿名函数 185

11.4.4 闭包 186

11.4.5 函数显式声明 186

11.5 小结 187

第12章 协程 188

12.1 协程简介 188

12.1.1 协程与线程 188

12.1.2 使用协程的好处 189

12.2 协程开发环境 190

12.2.1 Gradle构建方式 190

12.2.2 Maven构建方式 191

12.3 协程基础 192

12.3.1 launch函数 192

12.3.2 共享线程池 193

12.3.3 阻塞与挂起 193

12.3.4 runBlocking函数 194

12.3.5 协程取消 195

12.3.6 协程超时 195

12.3.7 标准API 196

12.4 挂起函数 197

12.4.1 默认顺序执行 198

12.4.2 异步并发执行 198

12.4.3 异步样式函数 200

12.5 协程上下文与调度器 201

12.5.1 协程调度与线程 201

12.5.2 非限制与限制协程 202

12.5.3 协程与线程调试 203

12.5.4 协程中的子协程 203

12.6 通道 204

12.6.1 通道基础 204

12.6.2 通道的关闭与迭代 205

12.6.3 通道生产者 206

12.7 管道 206

12.7.1 管道生产与消费 206

12.7.2 管道与质数 207

12.7.3 多接收者协程 208

12.7.4 通道缓存 209

12.8 小结 210

第13章 I/O操作与多线程 211

13.1 Kotlin流层次 211

13.1.1 字节输入流 212

13.1.2 字节输出流 213

13.1.3 字符输入流 214

13.1.4 字符输出流 215

13.1.5 字符流与字节流转换 216

13.2 文件I/O操作 216

13.2.1 文件读取 217

13.2.2 文件写入 217

13.2.3 文件遍历 218

13.3 网络I/O操作 219

13.4 多线程 219

13.4.1 线程创建 220

13.4.2 线程同步 220

13.5 小结 221

第14章 Kotlin DSL 222

14.1 DSL简介 222

14.1.1 DSL的设计与实现 222

14.1.2 DSL分类 223

14.2 DSL语义模型 223

14.2.1 依赖网络 224

14.2.2 产生式规则系统 224

14.2.3 状态机 224

14.3 Kotlin的DSL特性 225

14.4 使用kotlinx.html创建DSL 226

14.4.1 Maven构建方式 227

14.4.2 Gradle构建方式 228

14.4.3 kotlinx.html实例 229

14.5 Android Gradle指南 233

14.5.1 链式命令 233

14.5.2 委托 234

14.6 使用Kotlin与Anko进行Android开发 235

14.6.1 Anko简介 235

14.6.2 Anko核心组件与工具 236

14.6.3 Anko使用实例 238

14.7 小结 242

第15章 Kotlin互操作 243

15.1 Kotlin与Java互操作 243

15.1.1 在Kotlin中调用Java 243

15.1.2 在Java中调用Kotlin 251

15.1.3 JSR-305支持 257

15.2 Kotlin与JavaScript互操作 261

15.2.1 在Kotlin中调用JavaScript 261

15.2.2 在JavaScript中调用Kotlin 264

15.2.3 JavaScript模块 266

15.2.4 JavaScript反射 269

15.2.5 JavaScript DCE 270

15.3 小结 271

第16章 Kotlin Native开发 272

16.1 Kotlin Native 272

16.1.1 Kotlin Native简介 272

16.1.2 Kotlin Native编译器 273

16.1.3 编译器konan 274

16.2 Kotlin Native实例 275

16.2.1 构建Kotlin Native项目 275

16.2.2 添加konan插件配置 276

16.2.3 编写源代码 277

16.2.4 添加konanInterop与konanArtifacts配置 278

16.2.5 编译与执行 279

16.2.6 用命令行方式编译Kotlin Native 280

16.3 使用Kotlin Native开发iOS应用 281

16.3.1 创建Kotlin Native项目 281

16.3.2 Kotlin Native测试 284

16.4 小结 286

第三部分 Kotlin项目实例 287

第17章 使用Kotlin与Spring Boot开发服务端 287

17.1 Spring Boot环境搭建 287

17.1.1 Spring Boot简介 287

17.1.2 创建Spring Boot应用程序 288

17.1.3 启动Spring Boot应用程序 292

17.1.4 应用测试 293

17.1.5 properties配置文件 296

17.2 Spring Boot之Thymeleaf模板 298

17.3 使用Swagger构建RESTful API 301

17.4 Spring Boot通过MyBatis整合MySQL数据库 304

17.5 Spring Boot整合Redis数据库 308

17.5.1 Redis简介 308

17.5.2 Spring Boot整合Redis 310

17.6 Spring Boot整合Elasticsearch 313

17.6.1 Elasticsearch简介 313

17.6.2 Spring Boot整合Elasticsearch 315

17.7 Spring Boot集成RabbitMQ 319

17.7.1 RabbitMQ简介 319

17.7.2 Spring Boot集成RabbitMQ 321

17.8 Spring Boot热部署与日志管理 323

17.9 Spring Framework 5.0对Kotlin的支持 326

17.9.1 函数式Bean注册方式 326

17.9.2 使用Kotlin调用Spring Web的功能性API 326

17.9.3 RestTemplate与函数式API扩展 327

17.9.4 Reactor的Kotlin扩展 327

17.9.5 基于模板的Kotlin脚本 327

17.10 小结 328

第18章 使用Kotlin开发Android视频应用 329

18.1 项目概述 329

18.2 浅谈Android开发架构模式 329

18.2.1 MVC 331

18.2.2 MVP 331

18.2.3 MVVM 332

18.3 项目准备 333

18.3.1 新建Android项目 333

18.3.2 添加项目库依赖 334

18.3.3 编写主页面 335

18.3.4 Android 6.0权限适配 338

18.3.5 GSYVideoPlayer播放器简介 340

18.4 项目开发 341

18.4.1 基础类封装 341

18.4.2 Retrofit封装 344

18.4.3 自定义状态控制控件 345

18.4.4 首页模块开发 348

18.4.5 视频详情页面开发 352

18.4.6 搜索功能的实现 355

18.5 小结 357