内容简介
本书是一本讲解Kotlin程序员面试笔试的百科全书,将Kotlin程序员面试笔试过程中各类知识点一网打尽。在讲解的广度上,通过各种渠道,搜集3年来几乎所有IT企业针对Kotlin岗位的笔试面试所涉及的知识点括但不限于Kotlin、计算机网络、操作系统等。在讲解的深度上,本书由浅入深,庖丁解牛式地分析每一个知识点,并提炼归纳,同时,引入与该知识点相关的内容,并对知识行的深度剖析,让读者不仅能够理解这个知识点,还能在遇到相似问题的时候,也能游刃有余地解决,而这些内容是其他同类书籍所没有的。本书将知识点归纳分类,结构合理,条理清晰,便于读行学索。
本书是一本计算机相关专业毕业生面试笔试的求职用书,同时也适合期望在计算机软、硬件行业大显身手的计算机爱好者阅读。
目录
前言
面试笔试经验技巧篇
经验技巧1 如何巧妙地回答面试官的问题2
经验技巧2 如何回答技术的问题3
经验技巧3 如何回答非技术问题4
经验技巧4 如何回答快速估算类问题5
经验技巧5 如何回答算法设计问题6
经验技巧6 如何回答系统设计题8
经验技巧7 如何解决求职中的时间冲突问题11
经验技巧8 如果面试问题曾经遇见过,是否要告知面试官11
经验技巧9 被企业拒是否可以再申请12
经验技巧10 如何应对自己不会回答的问题12
经验技巧11 如何应对面试官的“激将法”语言13
经验技巧12 如何处理与面试官持不同观点这个问题14
经验技巧13 什么是职场暗语14
面试笔试技术攻克篇
第1章 Kotlin是什么 19
1.1 关于Kotlin19
1.2 Kotlin的特20
1.2.1 空20
1.2.2 简洁20
1.2.3 兼容22
1.3 Kotlin的前景22
1.4 学tlin22
第2章 Kotlin工具介绍23
2.1 使用Web IDE快速体验Kotlin23
2.2 使用IntelliJ IDE行Kotlin开发23
2.1.1 运行Hello World23
2.1.2 配置 Kotlin25
2.1.3 将 Java 代码转换为 Kotlin 代码25
2.1.4 Kotlin 命令行编译工具27
第3章 Kotlin语法基础29
3.1 Kotlin 开发基本知识29
3.1.1 项目结构29
3.1.2 代码编写0
3.1.3 相等31
3.1.4 字符串模板31
3.2 名词定义31
3.2.1 属32
3.2.2 表达式32
3.2.3 高阶函数32
3.2.4 字面值和函数字面值33
3.3 变量33
3.3.1 变量声明33
3.3.2 类型推断34
3.4 函数35
3.4.1 声明函数35
3.4.2 函数参数37
3.4.3 可变数量的参数39
3.4.4 命名参数39
3.4.5 中缀函数40
3.5 基本类型41
3.5.1 数字类型41
3.5.2 比较42
3.5.3 运算44
3.6 空44
3.6.1 可空变量44
3.6.2 let和apply46
3.6.3 Elvis47
3.6.4 空机制48
3.7 控制语句49
3.7.1 if49
3.7.2 when50
3.7.3 for51
3.7.4 while 和 do…while52
3.7.5 break 和 continue52
3.8 数组和区间52
3.8.1 数组52
3.8.2 区间53
第4章 Kotlin基能55
4.1 类的声明和构造55
4.1.1 声明类55
4.1.2 构造函数55
4.1.3 二级构造函数56
4.1.4 类的实例57
4.1.5 类的构造57
4.2 属和字段58
4.2.1 属58
4.2.2 属声明59
4.2.3 访问器59
4.2.4 属的探究60
4.3 继承和接口62
4.3.1 继承62
4.3.2 重写方法64
4.3.3 重写属64
4.3.4 抽象类65
4.3.5 接口66
4.4 可见修饰68
4.4.1 顶层声明的可见68
4.4.2 类成员的可见70
4.4.3 构造函数的可见71
4.5 单例和伴生对象71
4.5.1 单例71
4.5.2 伴生对象73
4.6 嵌套类和内部类75
4.6.1 嵌套类75
4.6.2 内部类76
4.7 对象表达式77
4.8 枚举类80
4.9 泛型81
4.9.1 泛型的使用方法82
4.9.2 协变和逆变83
4.9.3 泛型的out和in85
4.9.4 类型投影87
4.9.5 泛型约束90
4.10 数据类91
4.11 密封类94
4.12 扩展94
4.12.1 扩展函数94
4.12.2 扩展函数是静态解析的95
4.12.3 扩展属96
4.12.4 对象和伴生对象的扩展97
4.12.5 类中的扩展方法97
4.12.6 扩展函数在Java中的调用99
4.13 委托101
4.14 委托属103
4.14.1 延迟加载属103
4.14.2 可观察属104
4.14.3 将多个属保存在一个 Map 内105
4.14.4 自定义委托106
4.14.5 局部委托属107
第5章 Kotli能108
5.1 函阶108
5.1.1 局部函数和108
5.1.2 尾递归函数108
5.1.3 内联函数110
5.2 Lambda表达式和高阶函数112
5.2.1 Lambda表达式112
5.2.2 高阶函数114
5.2.3 带接收者的函数字面值116
5.2.4 标准库中用的Lambda表达式117
5.3 异常处理119
5.3.1 非受检的异常119
5.3.2 异常处理120
5.3.3 try 表达式121
5.3.4 Nothing 类型122
5.4 集合123
5.4.1 List124
5.4.2 Set125
5.4.3 Map125
5.4.4 集合的遍历126
5.4.5 集合的转换127
5.4.6 集合的变换128
5.4.7 序列129
5.5 解构声明132
5.6 运算符重载135
5.6.1 一元操作符136
5.6.2 二元操作符137
5.7 类型检查和转换140
5.7.1 类型检查与智能转换140
5.7.2 类型的转换142
5.7.3 泛型的检测142
5.8 注解143
5.8.1 注解声明143
5.8.2 注解的使用143
5.8.3 注解和 Java 的兼容147
5.9 使用DSL148
第6章 Java和Kotlin的互相调用151
6.1 Kotlin和Java代码的对应关系151
6.1.1 级函数的对应151
6.1.2 Kotlin 的 object 在 Java中的对应关系152
6.1.3 Kotlin 的属和 Java 的对应关系153
6.2 Java中使用Kotlin的扩展155
6.3 静态函数和静态字段157
6.3.1 静态方法和静态字段157
6.3.2 Java 中使用 Kotlin 的 object159
6.4 Kotlin中的Lambda表达式和函数参数160
6.5 解决命名冲突163
6.5.1 Kotlin 中使用标识符转义解决命名冲突163
6.5.2 使用 @JvmName 指定名字164
6.6 重载函数165
6.7 空167
6.7.1 Kotlin 兼容 Java 空检查机制167