Android开发面试:Kotlin面试知识答案精解

目录

Kotlin


Kotlin

  1. 什么是Kotlin:目标(更好的Java)、编程方式(面向对象命令式编程+函数式编程(Scala有包括宏))、一些改良(单例模式,data数据类,NPE,可变性,更多的语法糖,类型推导)
  2. 为什么使用Kotlin:a、Kotlin在空安全、扩展函数、协程和语法糖带来诸多特性,让代码量减少,也更加易读;b、Google一直在大力推Kotlin,目前很多源码都是Kotlin,并且可以和Java互操作无缝切换,继续做Android开发需要我们去掌握这门语言;c、自己也比较喜欢接触新事物,主动买书Kotlin核心编程来看
  3. var和val:定义(var是varible变量;val是varible+final或者value(值),声明的变量是只读变量,引用不可改变,但引用的对象可以改变)、Kotlin开发原则(优先使用val来声明变量,尽可能采用val、不可变对象及纯函数(就是没有副作用的函数)来设计程序,具备引用透明性)、使用val声明变量的优势(a、这是一种防御性编码思维模式,更加安全和可靠,因为变量值不会被修改(反射技术除外);b、不可变变量使得程序更容易推理,越是复杂业务逻辑,优势越大)、使用var声明变量的优势(a、相比其他实现方式,var有更好性能,占用内存更少,可以让程序显得直接、易于理解;b、针对于数据结构,可能需要存储大量数据,var更合适)
  4. 什么是闭包:闭包就是访问外部环境变量的函数。a、闭包是函数;b、闭包能够访问外部环境变量,也能对其进行修改;c、Lambda表达式、匿名函数、函数内部的函数条件语句等都可以理解为闭包
  5. let,with,run,apply,also函数区别:let(适用于对一个可null对象统一做判空处理,返回值为函数块最后一行或指定return表达式,如item?.let { it -> })、with(调用一个类名多个方法时,可省去this,返回值为函数块最后一行或指定return表达式,如with(item){this.})、run(let和with结合体所以适用于let和with的任何场景,返回值为函数块最后一行或指定return表达式,如item?.let { it -> }?: run {})、apply(适用于run的任何场景,用于初始化对象然后返回对象,多个函数链式调用也可使用,返回this,如View.inflate(activity, R.layout.*, null).apply{})、also(适用于let的任何场景,用于多个函数链式调用,返回this,如item.also { it -> })
  6. @JvmOverloads注解的作用:在有默认参数值的方法中,使用此注解Kotlin就会暴露多个重载方法,如果不加此注解则只有一个方法没传入的参数使用默认值
  7. 协程与线程:区别(a、协程是轻量级线程,用户态的,无需操作系统支持;b、线程是抢占式,协程是协作式的比抢占式高效)、协程优势(轻量和高效,在线程中开启上千个协程也是没关系的;简单好用,简化异步并发任务,解决Java回调地狱问题)
  8. Any、Object与Unit、void:Kotlin的Any是兼容Java的一种权衡设计,Java引用类型看作平台类型,即可看作可空,也可看作不可空;引入Unit是为替代Java中的void关键字


Android开发面试系列文章:


猜你喜欢

转载自blog.csdn.net/Agg_bin/article/details/129502783