Kotlin学习笔记——特征及优势

Kotlin的主要特征

1.目标平台:服务器端、Android及任何Java运行的地方

Kotlin的首要目标是提供一种更简洁、更高效、更安全的替代Java的语言,并且适用于现今使用Java的所有环境。

2.静态类型

Kotlin和Java一样是一种静态类型的编程语言。所有表达式的类型在编译期已经确认了,而编译器就能验证对象是否包含了你想访问的方法或者字段。

静态类型的优点:

  • 性能——方法调用速度更快,因为不需要在运行时才来判断调用那个方法;

  • 可靠性——编译验证了程序的可靠性,因而运行时崩溃的概率更低;

  • 可维护性——陌生代码更容易维护,因为你可以看到代码中用到的对象的类型;

  • 工具支持——静态类型使IDE能提供可靠的重构、精确的代码补全以及其他特性。

Groovy和JRuby这种动态类型的编程语言。允许你定义可以储存任何数据的变量,或者返回任何类型的函数,并在运行时才解析方法和字段引用。

动态类型的优点:减少代码量并增加创建数据的灵活性;

动态类型的缺点:在编译期不能发现像名字拼写错误这样的问题,继而导致运行时的错误。

另一方面,与Java不同的是,Kotlin不需要你在源代码中显式地声明每个变量类型。很多情况下,变量类型可以根据上下文来自动判断。(PS:Java在第10版中加入新特性——局部变量类型推断)

3.函数式和面向对象

函数式编程的核心概念。

  • 头等函数——把函数(一小段行为)当作值使用,可以用变量保存它,把它当作参数传递,或者当作其他函数的返回值。

  • 不可变性——使用不可变对象,它保证了它们的状态在其创建之后,不能在变化。

  • 无副作用——使用的是纯函数。此类函数在输入时会产生同样的结果,并且不会修改其他对象的状态。也不会和外面的世界交互。

使用Kotlin进行Android开发的优势

Kotlin 非常适合开发 Android 应用程序,将现代语言的所有优势带入 Android 平台而不会引入任何新的限制。

  • 兼容性:Kotlin与JDK6完全兼容,保障了Kotlin应用程序可以在较旧的Android设备上运行而无任何问题。Kotlin工具在Android Studio中会完成支持,并且兼容Android构架系统。
  • 性能:由于非常相似的字节码结构,Kotlin应用程序的运行速度与Java类似。随着Kotlin对内联函数的支持,使用lambda表达式的代码通常比用Java的代码运行速度更快。
  • 互操作性:Kotlin可与Java进行100%的互操作,允许在Kotlin应用程序中使用所有现有的Android库。这包含注解处理,所有数据绑定与Dagger也是一样的。
  • 占用:Kotlin具有非常紧凑的运行时库,可以通过使用ProGuard进一步减少。在实际程序中,Kotlin运行时只增加几百个方法以及.apk文件不到100k大小。
  • 编译时长:Kotlin支持高效的增量编译,所有对于清理构架会有额外开销,增量构建通常与Java一样快或者更快。
  • 学习曲线:对于Java开发人员,Kotlin入门很容易。包括在Kotlin插件中的自动Java到Kotlin的转换器有助于迈出第一步。

小结

对目前所涉及到Kotlin相关的理论知识进行总结回顾。

  • Kotlin是静态类型语言并支持类型推导,允许维护正确与性能的同时保持源码的简洁。
  • Kotlin支持面向对象和函数式两种编程风格,通过头等函数使更高级别的抽象成为可能,通过支持不可变值简化了测试和多线程开发。
  • 在服务端应用程序中它工作得很好,全面支持所有现存的java框架,为常见的任务提供了新工具,如生成HTML和持久化。
  • 在Android上它也可以工作,这得益于紧凑的运行时、对Android API特殊的编译支持以及丰富的库,为常见Android开发任务提供了Kotlin友好的函数。
  • 他是免费和开源的,全面支持主流的IDE和构建系统。
  • Kotlin是务实的、安全的、简洁的,与Java可互操作,意味着它专注于使用已经证明过的解决方案处理常见任务,防止常见的像NullPointerException这样的错误,支持紧凑和易读的代码,以及提供与Java无限制的集成。÷

你可能感兴趣的:(Kotlin学习笔记——特征及优势)