【Android -- 面试】复习指南之 Kotlin

不断学习,做更好的自己!💪

视频号 CSDN 简书
欢迎打开微信,关注我的视频号:程序员朵朵 点我 点我

在这里插入图片描述

1. 基础

==、===和equal的区别?
==和equal的作用相同,===比较内存地址

var和val的区别?

  • var:可变引用,具有可读和可写权限,值可变,类型不可变
  • val:不可变引用,具有可读权限,值不可变,但是对象的属性可变

2. 函数

Kotlin 中默认参数的作用以及原理?
作用:配合 @JavaOverloads 可以解决Java调用Kotlin函数重载的问题。
原理:Kotlin 编译的默认参数是被编译到调用的函数中的,所以默认参数改变的时候,是需要重新编译这个函数的。

Kotlin 中顶层函数的原理
顶层函数实质就是 Java 中的静态函数,可以通过 Kotlin 中的 @Jvm:fileName 自动生成对应的 Java 调用类名。

中缀函数是什么?注意点?
中缀函数需要是用infix关键字修饰,如downTo

public infix fun Int.downTo(to: Int): IntProgression {
   
    return IntProgression.fromClosedRange(this, to, -1)
}

注意点是函数的参数只能有一个,函数的参与者只能有两个。

解构函数的本质?
解构声明将对象中的所有属性,解构成一组属性变量,而且这些变量可以单独使用,可以单数使用的原因是通过获取对应的component()方法对应着类中每个属性的值,这些属性的值被存储在局部变量中,所以解构声明的实质是局部变量。

扩展函数的本质?
扩展函数的本质就是对应Java中的静态函数,这个静态函数参数为接受者类型的对象,然后利用这个对象去访问对象中的属性和成员方法,最后返回这个对象的本身。

扩展函数和成员函数的区别?

  • 实质不同:扩展函数实质是静态函数,是外部函数,成员函数是内部函数。
  • 权限不同:扩展函数访问不了私有的属性和成员方法,成员函数可以。
  • 继承:扩展函数不可复写,成员函数可以复写。

3. 类、对象和接口

Kotlin

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin-Dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值