读书笔记第一章

167 阅读1分钟

Kotlin概述

kotlin是由JetBrains创建的基于JVM的编程语言。

kotlin可以编译成java字节码,像java一样运行在java虚拟机上,kotlin还可以编译成JavaScript代码,运行在没有jvm的机器上。

  • kotlin相对于java有哪些优势 1.kotlin包括函数式编程思想的面向对象编程语言 2.kotlin函数库更小,android存在65k的方法数限制,相比java更有优势 3.kotlin与java高度互操作性。

kotlin 与 java 函数对比

  • kotlin
fun main(args:Array<String>)
{
    println("你好,要努力赚钱奥,赚钱第一");
}
  • java
public class Hello{
    public static void main(String[] args){
        System.out.println("hello , Make money is first");
    }
}

上面代码的差异

1.kotlin的main函数没有放在类中,java的放在了类中
2.kotlin的变量放在前中间冒号然后是变量类型,返回类型也是放在后面。
3.kotlin每一行后面无分号,java有分号

命令行执行hello.kt

kotlinc hello.kt -include-runtime -d hello

上面的命令会生成hello.class ,然后执行java hello,从上面看出,都是最终编译成了.class 文件后执行的。

kotlin语法糖

kottlin 里面有很多语法糖如:

fun main(args:Array<String>)
{
    println("你好,要努力赚钱奥,赚钱第一");
}

生成的文件名字是 HelloKt.class (注意多了一个Kt奥),这个就是语法糖,

HelloKt.class 反编译生成的 byte code
public final class HelloKt {
public static final void main(java . lang.String[]) ;
Code:
0: aload 0
1: ldc #9 II String args
3: invokestatic #15 II Method kotlinljvmlinternallintrinsics .chec kParameterisNotNull : (LjavallanglObject;LjavallanglString;)V
6: ldc #17 II String 你好,今天放假吗?
8: astore 1
9: getstatic #23 II Field javallanglSystem .out:Ljava/iolPrintStream;
12: aload 1
13: invokevirtual #29 II Method javal土。IPrintStream.println : (Ljavallangl Object;) V
16: return
}

1.从上面可以看到,默认系统给添加了类和main函数
2.增加了检查是否为空kotlinljvmlinternallintrinsics .chec kParameterisNotNull