Kotlin学习之Kotlin初识

作者: 程序员丶星霖 | 来源:发表于2017-11-16 08:57 被阅读194次

Kotlin学习之Kotlin初识

@(Kotlin学习)

一、什么是Kotlin?

Kotlin,是JetBrains开发团队开发的基于JVM的静态型别编程语言,也可以被被编译为JavaScript源代码。

从上面的这一句话,我们可以总结出:

  1. 基于JVM
  • JVM就是Java虚拟机(Java Virtual Machine)
    。Java虚拟机不只是Java语言的虚拟机,只要文件格式满足JVM对编译文件的要求,就可以在其上运行。所以只要能编译成符合要求的Java字节码,任何语言都可以在Java虚拟机上运行。也说明了Kotlin是一种编译型语言,需要先编译成字节码,再在JVM上运行。
  1. 静态型别
  • 如果一个编程语言的类型检查,可在不测试运行时期表达式的等价性的情况下进行,该语言为静态类型。
  • 一般来说编译这个执行过程的语言,基本都是静态类型;而不需要编译的解释型语言,一般都是动态类型。
  • Kotlin是一种强类型的语言,有与Java类似的类型系统。
  1. JavaScript支持
  • 从Kotlin1.1开始,Kotlin完全支持JavaScript平台的所有语言功能,但是因为JVM不支持弱类型语言,所以用于JVM的Kotlin代码不能直接用在JavaScript平台上。

二、Kotlin与Java之间的关系

Kotlin没有完全取代Java语言的野心,它用一种巧妙的方式利用JVM平台上丰富的类库迅速发展。

一方面,它是一种新兴的现代编程语言;另一方面,他又与Java有完善的互操作性,完善到可以直接在Kotlin代码中随意插入Java语句,也可以在Java代码中调用Kotlin语言写成的函数和类库。

相比Java 7 的优势如下所示:

  • 相比Java,Kotlin增加了许多特性,比如Java 8 之前没有的Lambda表达式、when表达式、扩展函数、高阶函数等;
  • 相比Java,Kotlin去除了一些特性,比如final关键字、静态变量、静态方法、空指针异常等;
  • 相比Java,Kotlin封装了许多过程和表示方法。

三、Kotlin的特点

总结一下Kotlin语言的特点如下:

  1. 从Kotlin开始学习函数式编程:在Java8 的Stream API之前,Kotlin就已经走上函数式编程的路了,通过函数式编程,代码将会变得简洁而有效。
  2. 只写简介的代码:Kotlin封装了Java里那些冗长而易错的代码,用一个又一个语法糖压缩代码。
  3. 清楚地声明每一个要素
  • 在Kotlin里,只有声明为open的类才能被继承,只有声明为open的方法才能被重写,子类重写父类方法时,必须加上override关键字;
  • 声明变量时,用var声明的变量是“可变的量”;声明为val的变量则相当于Java中用final修饰的常量。

四、Hello Kotlin

学一门编程语言的开始就来问个好吧:

fun main(args: Array<String>) {
    print("Hello Kotlin")
}

根据上面的代码,可以看看Kotlin与Java声明main函数的方式的不同之处:

  1. Kotlin使用fun关键字声明函数,Java通过方法名后的括号表明这是一个方法;
  2. Kotlin允许创建包级函数,函数不一定在类里面,Java要求所有方法必须包括在类里;
  3. Kotlin中所有变量、函数和类默认都是public的,Java需要用public关键字声明;
  4. Kotlin抛弃了静态变量和静态方法,没有static关键字,Java则用static关键字声明静态成员;
  5. Kotlin中声明一个函数没有返回值使用Unit关键字,但是一般省略,Java则用void关键字声明无返回值;
  6. Kotlin声明函数参数列表采用“变量名:变量类型”的方式,Java采用“变量类型 变量名”的形式;
  7. Kotlin抛弃了类C语言声明数组的方式,使用“Array<T>”的方式声明数组,Java则采用类C语言的“T[]”方式声明数组;
  8. Kotlin语句结尾一般不使用分号;结尾,Java则必须用分号;结尾。
  9. Kotlin的print()函数是对Java中System.out.println()方法的封装。

学海无涯苦作舟

我的微信公众号.jpg

相关文章

  • Kotlin学习之Kotlin初识

    Kotlin学习之Kotlin初识 @(Kotlin学习) 一、什么是Kotlin? Kotlin,是JetBra...

  • Kotlin学习目录

    Kotlin学习目录 一、Kotlin学习之函数和变量二、Kotlin学习之类和属性三、Kotlin学习之枚举和W...

  • Kotlin学习之继承

    Kotlin学习之继承 @(Kotlin学习) Kotlin中的继承模式与Java中存在差异: Kotlin中所有...

  • Kotlin 学习笔记(一) Kotlin初识

    Kotlin 学习笔记(一) Kotlin初识 这是一个Kotlin系列的教程,目的是为了使自己记忆和理解的更加深...

  • 学习笔记之Kotlin系列-Kotlin的介绍

    学习笔记之Kotlin系列-Kotlin的介绍 kotlin是什么? ​ Kotlin就是一门由JetBrai...

  • Kotlin学习之基础语法

    写在前面的:1,Kotlin学习之基础语法2,Kotlin学习之类和继承3,Kotlin学习之属性和字段4,Kot...

  • Kotlin学习之数组

    Kotlin学习之数组 @(Kotlin学习) Kotlin中的数组采用Array类定义,抛弃了类C语言中“...

  • Kotlin学习之定义函数

    Kotlin学习之定义函数 @(Kotlin学习) 一、定义函数 Kotlin中的函数比Java中的方法更灵活,用...

  • Kotlin之美——DSL篇

    Kotlin 系列:Kotlin之美——高效篇Kotlin之美——DSL篇 Kotlin DSL 把 Kotlin...

  • Kotlin学习之基础数据类型

    Kotlin学习之基础数据类型 @(Kotlin学习) Kotlin的基础数据类型包括数字类型、字符类型、字符串类...

网友评论

    本文标题:Kotlin学习之Kotlin初识

    本文链接:https://www.haomeiwen.com/subject/spwkvxtx.html