Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。作为目前广受欢迎的 Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言。

Kotlin设计目标是

1、创建一种兼容Java的语言

2、让它比Java更安全,能够静态检测常见的陷阱。如:引用空指针

3、让它比Java更简洁,通过支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等实现。

4、让它比最成熟的竞争对手Scala语言更加简单。

有人总结了如下优点

1、非常简洁的语法

2、与Java代码交互非常容易和简单

3、更好的泛型

4、安全的null运算, 跟Swift的一样

5、更好的Lambda支持

6、方法(函数)为一级公民

7、扩展方法

8、inline

9、有一系列的语法糖: range, data class 等

对于优势,有Kotlin的拥护者更是这样总结:

1、Kotlin编译成JVM字节码或JavaScript——这不仅会吸引Java开发人员,还会吸引所有使用垃圾收集运行时的开发人员,比如使用Scala、Go、Python、Ruby和JavaScript的开发人员。

2、Kotlin来自业界,而非学术界——它解决了程序员现如今在工作中面临的问题。

3、采用成本低——JetBrains提供了高质量的转换工具(可以实现Java到Kotlin代码的一键转换),而且特别注重Java二进制兼容性。开发者可以一次仅转换现有Java项目中的一个文件,整个项目仍然可以正常编译。

4、Kotlin程序可以使用所有现有的Java框架和库,并可以集成Maven、Gradle和其它构建系统。

5、易于学习——Kotlin语法简洁直观,看上去非常像Scala,但更简单。 它不遵循特定的编程哲学,如函数式风格或面向对象风格。

6、不增加运行时开销——Kotlin标准库非常紧凑,主要包含Java标准库的扩展。

7、适合Android开发——借助像Anko和Kovenant这样的框架,Kotlin将在Android开人员中流行。

8、IntelliJ对Kotlin提供了良好的支持。

另外,经常看到各种性能测试,发现Kotlin是在Scala、Groovy等第三方JVM语言中最快的,没有过多去尝试,试试了试简单的特性,确实可以简洁不少,对于个人来言,通常不会用于大型项目,反而性能不是第一,简洁高效则显得尤为重要。比如:

定义Pojo类,直接定义如下

package com.poorren.pojo

/**

* Created by William.Wei on 2015/11/29.

*/

data class People(var name:String="People",val age:Int=0) {

fun say(){

println("I'am $name,$age years old")

}

}

fun main(args: Array < string >) {

val people = People(null)

people.say()

}

这里初始化时无需new,传入参数中由于默认构造都是不可为空的,都不能传入null,否则直接编译不通过,这样大大降低了出现空指针的几率,相反,如果需要传入null,则只需在类型后面添加”?”如

package com.poorren.pojo

/**

* Created by William.Wei on 2015/11/29.

*/

data class People(var name:String?="People",val age:Int=0) {

fun say(){

println("I'am $name,$age years old")

}

}

这里只做简单的记录,其他特性不再一一贴出示例,有兴趣欢迎大家一起学习、交流。