Java和Kotlin之间的要素都是什么以及它们的区别

1.要素

在Java中作为第一要素,而Kotlin中函数作为第一要素

2.区别:  简化代码

( 1 ) 不需要使用分号结尾

( 2 ) 类型自动推断:当我去创建一个变量时,在我不手动赋予类型,系统也会智能推断出类型,比如我定义一个var a=1,看起来它没有类型,但实际上他被定义为了int类型,体现在我去a+1时得到的结果是int类型

( 3 ) 数据类:Kotlin可以创建只包含数据的类,叫做数据类,体现在他是被data修饰的类,编译器 会自动从主构造函数中根据所有的声明属性提取函数(如:toString,set,get)

( 4 ) 避免null指针异常:默认声明的变量不能为空,如果要使变量为空需要添加?操作符

( 5 ) 构造函数:分为主构与次构函数,每一个类默认带一个无参主构函数,特点是没有函数体,在Kotlin中继承使用: 而Java中则使用关键字Exdense

( 6 ) 成员变量默认的set/get方法

( 7 ) kotlin可以函数里定义函数,java方法里不可以定义方法

( 8 ) 协程:最重要的是他可以通过看起来同步的方式写出异步的代码,这也是Toklin最有名的非阻 塞式挂起,可以把运行在不同线程的代码写到同一代码块中

怎么用:lauch()函数:lauch()函数的意义上我要创建一个协程并且在指定的线程上运行它,可以指定线程来执行代码,并且在执行之后吧线程再次切换回来

withContext函数:可以有效的解决嵌套问题,那么由于消除嵌套,我们可以把withContext函数放在函数里面包着里面的代码,这时会发生报错,错误信息提示为withContext是个suspend函数,需要写到协程中使用

suspend修饰符:withcontext就是被suspend修饰的函数,他需要在协程里被调用或者在另一个suspand函数中被调用(挂起函数)给自己的函数加suspend修饰符,报错消失了,被挂起后的代码被从原来的线程中抽离出来,理解为原来的线程不再执行被挂起的函数,这里suspend是暂停的意思,但是在这里,被挂起的函数并不会暂停而是被分离出去,在另外的线程中去执行任务了,当被切换另外的线程任务被执行完,协程会再次切回到主线程

挂起:所谓挂起就是一个稍后会被切回来的线程切换,为什么挂起只能在协程中或其他挂起函  数中执行。         因为被挂起后,线程任务执行完还需要切回来,切回来在Kotlin中叫做rumue(恢复),   而恢            复功能是属于协程的,所以他不能在其他地方使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值