当前位置: 首页 > news >正文

0 初识Kotlin

0 基本介绍

相信很多开发者对Kotlin还是比较陌生的。 Kotlin是一种新型的编程语言,由JetBrains公司开发与设计,在2012年开源, 但没引起什么注意。 直到2017年google宣布将Kotlin作为Android开发的首选语言,Kotlin才开始大放异彩。
第一印象的话, 你可以认为Kotlin是Java的简化升级版, 实际上Kotlin在很多地方与Java是相通的, 也能比较方便地互调。 这也是Kotlin能成功的原因, 毕竟Java已经有很好的生态, 完全重复造轮子是没必要的。

1 Kotlin特点

1.1 简洁

相信对很多程序员来说, 语言是否简洁, 是否容易上手是非常重要的一个因素, 甚至比性能更加重要。 毕竟一门语言如果很难用, 很难开发程序, 也是不会受大家欢迎的。 想想看, 大多数人都不会为追求点性能去写C语言甚至汇编吧。
Kotlin的原则是,能省的尽量省, 能不让开发者动手的就不要麻烦开发者。
在我使用过的语言中, 我觉得Kotlin的简洁性勉强可以与Python相比(大多数编程语言的简洁性都远远不如Python)。

1.2 互操作性

可以利用Java的库。 另外, Android Studio还提供了Java代码和Kotlin代码互转的工具。

1.3 安全

1 有特殊的机制避免空指针异常的错误(空指针异常的错误是程序出错中高概率的一类, 另无数开发者十分头疼);
2 Kotlin中对变量的可变与不可变是强制要求的, 让开发者在开发程序时时刻有这个意识, 避免了变量使用的随意性。 想想看, 在一个多人协作的开发中, 谁也不知道某个变量在什么时候就被别人给修改了, 出了问题定位起来那是一件十分痛苦的事情。

Kotlin的安全就主要体现在以上2个方面, 并且更重要的是, 它是以一种简洁的方式实现的。

2 编译型语言 VS 解释型语言

编译型语言简单说就是编译器先把你写的代码整个编译成二进制代码, 然后就可以直接在机器上执行。 优点是执行效率高,缺点就是静态的,每修改一次就得重新编译。 另外就是没写完的半成品程序通常是没法编译的。 编译语言的代表是C/C++。

解释型语言就是程序执行时才会一行一行地扫描和执行你的程序, 非常符合你写代码时的逻辑。优点是随时修改, 随时就能跑,缺点是效率有点低。 解释型语言的代表是python。

Java和Kotlin有点特殊, 并不能简单地归类为编译型语言或解释型语言, 算是半编译半解释型语言吧。 因为它不是一次性编译到二进制码, 二是编译到一种中间状态(.class文件), 执行时加载.class进行解释。
在这里插入图片描述

3 开发工具

Kotlin程序文件的命名后缀是.kt
工欲善其事,必先利其器。 都21世纪了, 如果你想拿个记事本就开始写程序,那只能说是头铁。 推荐3种开发方式。

3.1 在线开发平台

https://play.kotlinlang.org/
适合刚学习时练习简单代码功能。

3.2 IntelliJ IDEA

这是专门的IDE, 适合深度开发使用, 简单练练手的话, 专门安装个IDE有点麻烦。

3.3 Android Studio

很多人学习Kotlin是为了Android开发的, 因此基本都会有Android Studio. 这个工具也可以单独执行Kotlin代码。

http://www.lryc.cn/news/20093.html

相关文章:

  • 阿里云服务器部署SpringBoot+Vue项目(宝塔面板傻瓜式操作)
  • 27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组(双指针遍历)
  • 什么时候用std::move()?
  • 建立做机器学习项目的范式
  • 搭建k8s高可用集群—20230225
  • Java 修饰符和多态
  • 学了一年Java的我,想转嵌入式了
  • 【Git】Git冲突与解决方法
  • 深度剖析数据在内存的存储
  • 身高排序(绝对值大的排后面,小的排前面)
  • 高频前端面试题之HTML篇(三)
  • 使用DG备份恢复测试库的流程以及可能出现的问题
  • Springboot注释解析
  • C语言之通讯录(动态 存储文件版)
  • Linux 工具
  • Java知识复习(七)常见的设计模式(装饰、代理、观察、策略、建造)
  • Linux系统看门狗应用编程
  • Spring MVC 源码- LocaleResolver 组件
  • Servlet
  • 简单的周总结
  • Elasticsearch7.8.0版本进阶——IK中文分词器
  • 一个阿里P6的说不会接口自动化测试,他不会是自己评的吧...
  • 规则引擎与风控系统04:风控系统实例(下)
  • 我为什么选择Linux mint 21.1 “Vera“ ? Mint安装优化调教指南(分辨率DPI)
  • 雅思经验(十四)
  • 刚来的薪资20k,是我的2倍,我是真的卷不过,真的太变态了
  • 五、DeepWalk、Node2Vec论文精读与代码实战【CS224W】(Datawhale组队学习)
  • 学习 Python 之 Pygame 开发魂斗罗(四)
  • Linux 基础知识:指令与shell
  • 【数通网络交换基础梳理1】二层交换机、以太网帧、MAC地址数据帧转发原理详解