在android开发中,Kotlin已经是一种趋势,作为Google默认android的开发语言,优秀的易用性和规范性使得它有到开发者的青睐,下面我们将对比两种语言之间的优势。
功能性 | Kotlin | Java |
---|---|---|
易用性 | ①语法糖,能够用更短的代码实现更多的功能 ② kotlin特有扩展属性,不在需要java工具类 ③bean类只需要data关键字可以解决问题,编译时期自动生成getter setter方法 | ①代码相对冗余 ②bean类总需要使用插件生成setter getter方法 |
规范性 | 例如:①kotlin的方法采用override关键字进行强制约束 ②TODO没有实现,运行时会抛出异常 |
①Java方法重载的时候使用@Override注解,但是这并不是强制约束②Java中的TODO是以注释的形式存在,即时没有实现TODO代码,也没什么运行时问题 |
安全性 | Kotlin声明变量的时候,可以指定变量是否为空,调用可为空对象时,需要进行空判断 | Java中虽然有@Nullable @NotNull等注解。但是不会在编译期起作用,而是在运行期抛出异常。 |
跨平台 | Kotlin既可以编译成 class字节码,又可以编译成js
|
java在jvm的协助下虽然也能实现跨平台,相对比较有限 |
编译速度 | 全量编译下,Kotlin比Java慢。增量编译下,两者几乎没有差距 |
|
其他特性 | 懒加载、高阶函数、协程、inline操作符、运算符重载、默认参数等 |
个人喜爱的几点:
- 提高效率:简洁直观的语法,提供了团队的效率;代码行与量更少了,提升了开发速度;
- 支持与java交互:遍历切换与两者之间;
- 易于维护:支持大量ide,能实现的功能很全面,能实现前后端功能;
- 可靠:新旧版本之间反向兼容,无效担心差异问题;
- 容易学习:与java相似,易于上手;
明显缺点:
- 编译速度:相对java稍慢一点
- 社区支持:小型的开发人员社区,导致学习资源有限,很多问题得不到回答;
- 人才缺口:kotlin面世比较短,市场上这类的人才比较少;
网友评论