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