1、Kotlin的作用
- Kotlin是一种全栈开发语言:可以用于服务端、Web前端、多平台移动端
- 使用 Kotlin 进行 Android 开发(Kotlin可与Java进行100%兼容)
- Kotlin-Native用于原生开发
- Kotlin直接依赖Java命令,需要先有JDK环境
- Kotlin也会生成一个class文件
![image.png](https://img-blog.csdnimg.cn/img_convert/78f12da51b3c3d6fb01411eaad26a23a.png#averageHue=#f8f8f8&clientId=u69d6aff0-ea3c-4&from=paste&height=221&id=ud830c542&originHeight=322&originWidth=699&originalType=binary&ratio=1&rotation=0&showTitle=false&size=39451&status=done&style=none&taskId=u41956839-29f8-4588-84c3-df7bb855eff&title=&width=479.5)
2、Hello World
2-1、云端IDE方式
2-2、IDEA方式
- 运行方式3:IDEA运行
- 下载IDEA,确认安装Kotlin插件
- 新建Kotlin项目,并选择JVM|IDEA类型
- 主目录下新建src/main文件夹,文件夹下建com.wanhe包名,包名下新建xx.kt类型文件
- 直接run输出Hello World
fun main(args: Array<String>) {
println("Hello World")
}
3、Kotlin文件、字节码文件、Java文件
Main.kt
fun main(args: Array<String>) {
var g : String = "abc"
println(g)
}
Main.class
![](https://img-blog.csdnimg.cn/img_convert/e5ac46dac6fdea05912bd6fd3b5ef523.png#averageHue=#404a55&from=url&id=o5r37&originHeight=543&originWidth=742&originalType=binary&ratio=1.25&rotation=0&showTitle=false&status=done&style=none&title=)
// ================MainKt.class =================
// class version 52.0 (52)
// access flags 0x31
public final class MainKt {
// access flags 0x19
public final static main([Ljava/lang/String;)V
// annotable parameter count: 1 (visible)
// annotable parameter count: 1 (invisible)
@Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0
L0
ALOAD 0
LDC "args"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkNotNullParameter (Ljava/lang/Object;Ljava/lang/String;)V
L1
LINENUMBER 3 L1
LDC "abc"
ASTORE 1
L2
LINENUMBER 4 L2
L3
GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
ALOAD 1
INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/Object;)V
L4
L5
LINENUMBER 5 L5
RETURN
L6
LOCALVARIABLE g Ljava/lang/String; L2 L6 1
LOCALVARIABLE args [Ljava/lang/String; L0 L6 0
MAXSTACK = 2
MAXLOCALS = 2
@Lkotlin/Metadata;(mv={1, 8, 0}, k=2, d1={"\u0000\u0014\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0002\u0008\u0002\u001a\u0019\u0010\u0000\u001a\u00020\u00012\u000c\u0010\u0002\u001a\u0008\u0012\u0004\u0012\u00020\u00040\u0003\u00a2\u0006\u0002\u0010\u0005\u00a8\u0006\u0006"}, d2={"main", "", "args", "", "", "([Ljava/lang/String;)V", "KotlinDemo"})
// compiled from: Main.kt
}
// ================META-INF/KotlinDemo.kotlin_module =================
MainKt" *
Main.java
![](https://img-blog.csdnimg.cn/img_convert/8bbe6568c8ce94e9e3e80771317ead2f.png#averageHue=#a0632f&from=url&id=JfsFW&originHeight=576&originWidth=1096&originalType=binary&ratio=1.25&rotation=0&showTitle=false&status=done&style=none&title=)
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import org.jetbrains.annotations.NotNull;
@Metadata(
mv = {1, 8, 0},
k = 2,
d1 = {"\u0000\u0014\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\u0010\u000e\n\u0002\b\u0002\u001a\u0019\u0010\u0000\u001a\u00020\u00012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\u0002\u0010\u0005¨\u0006\u0006"},
d2 = {"main", "", "args", "", "", "([Ljava/lang/String;)V", "KotlinDemo"}
)
public final class MainKt {
public static final void main(@NotNull String[] args) {
Intrinsics.checkNotNullParameter(args, "args");
String g = "abc";
System.out.println(g);
}
}
4、Kotlin常用网站