前言
各种专业技术名词不断增加,学好编程首先要了解技术术语,然后才可以对技术行业整体有一个大概判断。学习中对某个知识点经常使用但是看官方文档时还是很容易混淆,专业术语与自己已经掌握的知识对应关系。blog在于罗列 java 和 kotlin ,类、接口、函数 种类。

函数
Lambda 是一个对象。
Lambda 表达式是一个函数接口对象
lambda表达式 :block:String.()->Unit
kotlin inline 关键字
每次调用高阶函数,会创建一个匿名内部类。 函数设置成Inline之后。函数的表达式会在编译时候内嵌到被调用的地方,达到性能优化效果。减少类加载时机。
inline 关键字 函数与普通函数对比字节码后发现:
- 使用inline后 字节码行数减少相对于非 inline 函数所在字节码的类
- 使用inline 字节码中不会出现 kotlin/jvm/lambda 类的继承,而普通函数会有继承 kotlin/jvm/lambda 。
Intelj IDE 查看字节码(java 和 kotlin 方式)
kotlin 查看字节码
Kotlin 函数类型 :函数类型都有一对括号,并有返回值
表达式 (Int)->Unit
函数式(SAM)接口
只有一个抽象方法的接口称为函数式接口或 SAM(单一抽象方法)接口。函数式接口可以有多个非抽象成员,但只能有一个抽象成员。
声明:
fun interface KRunnable {
fun invoke()
}
函数式接口转换: Lambda 转化 SAM
问题 :
1.什么是字节码