Kotlin中对Java中8个基本类型数组用了 新的 xxxArray来定义。(比如 BooleanArray、ByteArray、DoubleArray…)

2. 可空类型

=========================================================================

Java中的用Optional中的orElse来判空,但是使用起来不美观。

Kotlin中使用了 ?.安全调用符,?:Elvis操作符。举一个例子:

fun main(args: Array){

println(getLength(null))

println(getLength(“hello”))

}

fun getLength(s: String?):Int{

return s?.length ?: 0 //如果s不为空,就返回 s.length,否则就返回0

}

3. 安全操作符

==========================================================================

null的类型是 Nothing?

在Kotlin中,多使用 ?,就可以免去很多判空的操作:

val str:String = null //编译报错,因为String不能为空

var nullStr:String? = null //编译通过

null == null //返回true

null is Any //返回false

null is Any? //返回true

var a = null

a //输出null

a = 1 //编译报错,因为null的类型Nothing? 而1是Int,不能向上转型

我们不能用可空类型来直接调用它的属性或方法,例如下面代码直接报错:

nullStr.length //编译报错

nullStr?.length //要用安全调用符 ?. 编译才正确

!!非空断言使得可空类型对象可以调用成员方法或者属性:

nullStr = null

nullStr!!.lenth //如果nullStr为空,则抛出空指针异常

…Expection

4. 特殊类型

=========================================================================

4.1 Unit类型

Kotlin中的Unit类型实现了和Java中void一样的功能

下面是Unit的定义

public object Unit{ //Unit类型是一个object对象类型

override fun toString() = “kotlin.Unit” //如果println输出对象类型,就是"kotlin.Unit"

}

当一个函数没有返回值的时候,我们就用Unit,并且不需要显示的返回Unit、或者声明一个函数的返回类型为Unit。

编译器会推断它,所以Unit对我们来说相当是缺省的。

4.2 Nothing与Nothing?类型

在Java中,如果你想让一个函数返回值永远是null,那你可把函数的返回类型写成是 void的装箱类 Void,并返回null

而这个Void就对应Kolin中的Nothing?,其唯一可被访问的返回值也是null

在Kotlin系统类型中,Nothing是最底层,其构造函数时private的,说明其不能被实例化。

**如果一个函数的返回值是Nothing,这代表这个函数永远都不会有返回值。**和Java的void一样

我们可以在返回值为Nothing的函数去抛出异常

Nothing和Unit的区别:

Unit是有返回类型Unit的

而Nothing是没有任何返回类型的

Nothing和Nothing?的区别:

Nothing?类型除了 null,其他都不能赋值。

而Nothing不能赋值。

4.3 Any与Any?类型

Any?是可空类型层次的根,Any?是Any的父类。

1 is Any //Int类型的1是Any

true

1 is Any? //Int类型的1是Any?

true

null is Any //null不是Any类型

false

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频 如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)

最后

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以加一下下面的技术群。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

这里放一下资料获取方式:GitHub

好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

完善自己的之后的面试计划及职业规划。**

这里放一下资料获取方式:GitHub

[外链图片转存中…(img-u92PNg0r-1710844417502)]

好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

[外链图片转存中…(img-iuugHVVC-1710844417502)]

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。