Kotlin面试问题整理
1、什么是kotlin
kotlin是由JetBrains开发的静态类型的编程语言,运行在JVM上。
2、为什么使用Kotlin语言
Kotlin语言简洁高效,没有那么多冗余代码,而且是空安全的。
3、解释一下extension函数
extension函数用来对class进行扩展,而不用从class派生
4、kotlin中的空安全null safety是什么意思
空安全的特性是为了避免空指针异常问题,也可以用来区分空引用和非空引用。
5、kotlin为什么和java具有互操作性
因为对于jvm来讲他们编译后都是一样的,编译后都是byte code在jvm上运行
6、kotlin中是否存在三元操作符
不存在
7、kotlin中如何声明一个变量
var name: String
8、kotlin当中有多少构造函数
两种,一种是primary构造函数,一种是secondary构造函数
9、说一下kotlin中对于Java.io.file的扩展方法
bufferedReader,readBytes,readText,forEachLine,readLines
10、kotlin如何处理空异常
使用elvis操作符处理空异常 ?: , ?.
11、有哪些特点,kotlin有而java没有
null safety,operator overloading,coroutines, range expressions, smart cast, compaion object
12、kotlin中数据类的作用
数据类包含基本的数据类型,但是它不包含任何功能函数
13、可以把java代码转换成kotlin代码吗
可以在AndroidStudio或者JetBrains当中转换
14、kotlin允许macros吗
kotlin不支持宏
15、kotlin类的缺省行为
kotlin缺省是final的。因为kotlin支持多重类继承,开放类代价要比final类高很多
16、kotlin是否支持原始数据类型
kotlin不支持原始数据类型
17、什么是range操作符
range操作符用来遍历一个范围,用两个点表示
for(i in 1..5)
print(i)
18、kotlin对标准的java库和类提供额外的功能吗
kotlin程序是跑在标准的java虚拟机上的,所以kotlin和java在这一层级是没有区别的,java也可以直接在kotlin程序中运行
19、在kotlin当中定义一个volatile变量
volatile var x: Long? = null
20、kotlin中的抽象有什么作用
抽象是面向对象编程最重要的概念。抽象类的特点:你知道这个类会有什么功能,但是不知道如何实现这些功能和具体实现哪些功能。
21、kotlin当中如何比较两个字符串
(1)==
(2).equals(Any?)
22、下面这段代码干什么用
bar {
System.out.println("1111")
}
bar作为一个函数,正在接收一个表达式作为参数,这个表达式打印一行字符串
23、kotlin高阶函数