00. Kotlin 安装和语言的基本组成

简介: 00. Kotlin 安装和语言的基本组成

为什么要学 Kotlin


要想知道为什么 Kotlin 广受欢迎,首先要理解 Java 在现代软件开发领域中所扮演的角色。这两门语言联系得非常紧密,因为很多时候,Kotlin 代码的开发目标就是要在 Java 虚拟机上运行。


Java 语言比较稳健,久经考验。多年来,它一直是最常用的一种编程语言,造就了庞大的生产代码库。自从 1995 年 Java 问世以来,对于优秀的编程语言应满足什么条件,人们已通过实践积攒了很多经验教训。然而 Java 却裹足不前,开发者喜欢的很多现代语言高级特性,它都没有,或者迟迟才加入。


Kotlin 从这些经验教训中受益良多,而 Java(和其他语言,比如 Scala)中的某些早期设计却愈显陈旧。脱胎于旧语言,Kotlin 解决了它们的很多痛点,进化成了一门优秀的语言。相比 Java,Kotlin 进步巨大,带来了更可靠的开发体验。


作为一门新秀语言,Kotlin 不仅支持编写代码在虚拟机上运行,而且还是一门跨平台的通用型语言:你可以用 Kotlin 开发各种类型的原生应用,如 macOS 应用、Windows 应用、JavaScript 应用,当然还有 Android 应用。平台独立性意味着 Kotlin 有各种各样的用途。


Kotlin 语言特点


简洁、安全、支持函数式编程、支持面向对象、Java 具有良好的互操作性、免费开源。


1. Kotlin 对函数式编程的支持


函数式编程并不能完全取代面向对象编程,函数式编程擅长数据处理,如核心业务逻辑、算法实现等;而面向对象擅长构建 UI 界面编程、搭建系统架构等。


2. 异常处理的理念


Java 把异常分为受检查异常和运行期异常,编译器强制要求受检查异常必须捕获或抛出。事实上经过多年的实践,开发者发现即便是捕获了那些受检查异常处理起来也力不从心。受检查异常会使得程序结构变得混乱,代码大量增加。而 Kotlin 把所有的异常都看做是运行期异常,编译器不会强制要求捕获或抛出任何异常,开发人员可以酌情考虑是否捕获处理异常。


3. 对可空类型的支持


空指针异常是 Java 最为头痛的问题之一,Java 数据类型可以接收空值。而 Kotlin 数据类型默认不能接收空值,是非空数据类型,这样保证了数据类型的安全,防止空指针异常的发生。


Kotlin 应用程序运行过程


Java 程序运行过程如下图所示,首先由 Java 编译器将 Java 源文件编译成为 class 字节码文件文件),这个过程可以通过 JDK(Java 开发工具包)提供的 javac 命令进行编译。当运行 Java 字节码文件时,由 Java 虚拟机中的解释器将字节码解释成为机器码去执行,这个过程可以通过 JRE(Java 运行环境)提供的 java 命令解释运行。


image.png

Java 程序运行过程


安装 Kotlin 集成开发环境


为了把 Kotlin 代码转译为字节码,编写 Kotlin 程序需要 JDK。所以这里先配置 JDK 环境。


image.png


image.png


1. 设置为 JAVA_HOME 变量


image.png


2. Path下添加 %JAVA_HOME%\bin


手动下载 Kotlin 编译器


https://github.com/JetBrains/kotlin/releases/ 之后设置两环境变量。


  1. 设置“变量名”设置为 KOTLIN_HOME,“变量值”设置为 Kotlin 编译器解压路径。


  1. 将 Kotlin 编译器下的 bin 目录追加到 Path 环境变量


image.png

1. 设置 KOTLIN_HOME


image.png


2. Path 下添加 bin


可以通过在命令提示行中输入 kotlinc –version 指令进行验证是否安装成功。


IntelliJ IDEA


https://www.jetbrains.com/idea/


社区版免费, 企业版收费。


Eclipse


下载地址 https://www.eclipse.org/downloads/ + kotlin 插件。


运行 Kotlin 程序


运行 hello world

package org.kotlinlang.play
fun main() {
    println("Hello, World!")
}


  1. Kotlin 代码通常在包中定义。包规范是可选的: 如果您没有在源文件中指定一个包,那么它的内容将转到默认包。


  1. Kotlin 应用程序的入口点是主要功能。自从 Kotlin 1.3 以来,您可以在没有任何参数的情况下声明 main。没有指定返回类型,这意味着函数不返回任何值。


  1. println 将一行写入标准输出。它是隐式导入的。还要注意分号是可选的。


编写和运行 Kotlin 程序有多种方式,总的来说可以分为:


  1. 交互式方式运行


  1. 编译为字节码文件方式运行


这里介绍 REPL 方式。


REPL 是英文 Read-Eval-Print Loop 缩写,直译为“读取-求值-输出”,它指代一种简单的交互式运行编程环境。REPL 对于学习一门新的编程语言具有很大的帮助,因为它能立刻对初学者做出回应。许多编程语言可以使用 REPL 研究算法以及进行调试。


启动 REPL 可以通过 Kotlin 编译器提供的 kotlinc 命令或 IntelliJ IDEA 工具中选择 Tools → Kotlin → Kotlin REPL 菜单。打开命令提示行输入 kotlinc 命令。


Kotlin REPL 提供一些前面带有冒号(:)的管理指令,例如 “:quit” 指令是退出 REPL,“:help” 指令是帮助。


kotlin 新特性


What's new in Kotlin 1.8.0


发布日期: 2022年12月28日


以下是它最大的亮点:


  • JVM 的新实验函数: 递归复制或删除目录内容


  • 改进了 Kotlin 反射性能


  • New -Xdebug 编译器选项,以获得更好的调试体验


  • Kotlin-stdlib-jdk7 和 kotlin-stdlib-jdk8 合并到 kotlin-stdlib 中


  • 改进的 Objective-C/Swift 互操作性


  • 与 Gradle 7.3 兼容性


如何获得帮助


对于一个初学者必须要熟悉如下几个 Kotlin 相关网址:







构建遇到问题


jvm 版本不一致


'compileJava' task (current target is 19) and 'compileKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version.


解决

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
    application
    kotlin("jvm") version "1.8.0"
}
java.sourceCompatibility = JavaVersion.VERSION_1_8
java.targetCompatibility = JavaVersion.VERSION_1_8
tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "1.8"
}


参考




目录
相关文章
|
2月前
|
安全 Java Android开发
探索安卓开发的未来:Kotlin语言的崛起与挑战
在这篇文章中,我们将深入探讨Kotlin语言在安卓开发领域的应用及其对传统Java开发的颠覆性影响。通过分析Kotlin的特性、社区支持以及在实际项目中的应用案例,我们揭示了这一现代编程语言如何为开发者提供更简洁、更安全的编程体验,并讨论了它在面对性能优化和向后兼容性时所面临的挑战。文章旨在为读者呈现一个全面的视角,评估Kotlin作为未来安卓开发主流语言的可能性。
61 1
|
2月前
|
Java 网络安全 UED
运用 Kotlin 语言,优化局域网管控软件
在数字化时代,Kotlin语言以其简洁高效的特性,成为优化局域网管控软件的新选择。Kotlin不仅与Java高度兼容,还引入扩展函数等新特性,使代码更精炼易读。通过简洁的语法和强大的函数式编程支持,Kotlin能有效提升开发效率及软件性能。例如,简单的网络连接检测与设备扫描功能即可轻松实现。此外,Kotlin的协程支持让异步编程更为高效,进一步提高了软件响应速度和用户体验。随着Kotlin的发展,其在局域网管控领域的应用将愈发广泛。
17 0
|
3月前
|
安全 Java Android开发
探索Android应用开发中的Kotlin语言
【7月更文挑战第19天】在移动应用开发的浩瀚宇宙中,Kotlin这颗新星以其简洁、安全与现代化的特性,正迅速在Android开发者之间获得青睐。从基本的语法结构到高级的编程技巧,本文将引导读者穿梭于Kotlin的世界,揭示其如何优化Android应用的开发流程并提升代码的可读性与维护性。我们将一起探究Kotlin的核心概念,包括它的数据类型、类和接口、可见性修饰符以及高阶函数等特性,并了解这些特性是如何在实际项目中得以应用的。无论你是刚入门的新手还是寻求进阶的开发者,这篇文章都将为你提供有价值的见解和实践指导。
|
3月前
|
安全 Java Android开发
探索安卓应用开发中的Kotlin语言优势
【7月更文挑战第8天】 在安卓开发的广阔天地中,Kotlin以其优雅的语法、现代化的特性和高效的性能成为了开发者的新宠。本文将深入探讨Kotlin在安卓应用开发中所展现的独特魅力,从语言特性到实际应用案例,揭示其如何简化代码编写、提升开发效率,并增强应用性能。通过对比分析,我们将一同见证Kotlin如何在众多编程语言中脱颖而出,成为安卓开发领域的一股清新之风。
236 11
|
3月前
|
Java Android开发 开发者
探索安卓应用开发的未来:Kotlin语言的崛起与挑战
【7月更文挑战第8天】随着移动设备在人们日常生活中扮演着越来越重要的角色,安卓应用开发的技术趋势和编程语言选择对开发者来说变得至关重要。本文将深入探讨Kotlin语言如何成为安卓开发的首选,分析其带来的优势及面临的挑战,并预测其未来的发展方向。
|
3月前
|
安全 Java 数据库
Spring Boot中的Kotlin语言支持
Spring Boot中的Kotlin语言支持
|
4月前
|
Android开发 Kotlin
kotlin开发安卓应用 如何修改app安装后的名称
在 Android 应用中,要修改安装后的显示名称,需更新 AndroidManifest.xml 文件中 application 标签的 android:label 属性。可直接在该属性内设置新名称,或在 res/values/strings.xml 文件中修改 app_name 并在 manifest 中引用。推荐使用 strings.xml 方式,以便支持多语言和集中管理。
|
5月前
|
安全 Swift Android开发
构建移动应用:Swift vs Kotlin —— 两大主流语言的对决
【5月更文挑战第11天】Swift与Kotlin在移动应用开发中各有优势。Swift是iOS开发的首选,以其简洁语法、高性能和类型安全著称;而Kotlin是Android的官方推荐语言,以其与Java的无缝互操作、空安全特性和简洁代码受到青睐。两者在语法简洁性、性能和社区支持上表现优秀,但平台兼容性不同。开发者应根据项目需求和目标平台选择合适的语言。
|
5月前
|
移动开发 Java Android开发
Android应用开发:Kotlin语言的优势与实践
【5月更文挑战第7天】 在移动开发的世界中,Android平台的Kotlin语言以其高效、简洁的语法和强大的功能吸引了众多开发者。本文将深入探讨Kotlin语言的核心优势,并通过实际案例展示如何在Android应用开发中有效地运用这一现代编程语言。我们将从语言特性出发,逐步分析其在提升开发效率、改善代码质量以及增强应用性能方面的具体表现,为读者提供一个全面而细致的Kotlin应用开发指南。
|
5月前
|
Java Android开发 C++
Kotlin vs Java:选择最佳语言进行安卓开发
【4月更文挑战第13天】Java曾是安卓开发的主流语言,但Kotlin的崛起改变了这一局面。Google在2017年支持Kotlin,引发两者优劣讨论。Java以其成熟稳定、强大生态和跨平台能力占优,但代码冗长、开发效率低和语言特性过时是短板。Kotlin则以简洁语法、空安全设计和高度兼容Java脱颖而出,但社区和生态系统仍在发展中,可能存在学习曲线和性能问题。选择语言应考虑项目需求、团队熟悉度、维护性、性能和生态系统。无论选择哪种,理解其差异并适应新技术至关重要。
258 4
下一篇
无影云桌面