c语言sscanf函数的用法是什么
275
2022-12-12
Java与kotlin详细对比
使用kotlin已经有一段时间了。打算从宏观上做一下java和kotlin的对比。java8虽然也有很多新特性,但是android低版本并不兼容。因此这里以旧版本为例。
易用性
在语法糖的加持下,kotlin能够用更短的代码实现更多的http://功能。这是java 无法比拟的。所谓代码量越少,出bug的可能性就越低。
kotlin特有的扩展属性,不再需要java工具类,对开发更加友好。
比如我们想实现字符串判空操作,在java中需要写一个StringUtil类,这样其他开发同学想实现该功能的时候,可能并不知道已经有人实现了该功能,存在重复造轮子的可能。通过扩展属性,我们可以很方便的看出String类都存在哪些方法。
java中的bean类总是需要使用插件生成setter getter方法。kotlin中的data关键字可以解决这类问题,data类在编译期自动生成getter setter方法。
http://
规范性
工程项目都是需要指定开发规范的。比如变量命名等。在java中,方法重载的时候会生成@Override注解,但是这并不是强制约束的。kotlin的方法采用override关键字进行了强制约束。
再比如TODO。java中的TODO是以注释的形式存在,即使没有实现TODO处的代码http://,也没什么运行时问题。kotlin的TODO形式如下:
fun main(args: Array
TODO()
}
kotlin TODO的实现
@kotlin.internal.InlineOnly
public inline fun TODO(): Nothing = throw NotImplementedError()
可以看到运行时会抛出异常。
思考:这里为什么不在编译期抛出异常呢?
安全性
java中虽然有@Nullable @NotNull等注解。但是不会在编译期起作用,而是在运行期抛出异常。kotlin在声明变量的时候,可以指定变量是否为空,调用可为空对象时,需要进行空判断。
跨平台
java在jvm的协助下虽然也是跨平台语言,但是不能像kotlin一样可以既可以编译成class字节码,又可以编译成js。
编译速度
只有全量编译下,kotlin比java慢。增量编译下,两者几乎没有差距。
其他kotlin特性
懒加载、高阶函数、协程、inline操作符、运算符重载、默认参数等。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~