首页 > 其他分享 >Kotlin 入门

Kotlin 入门

时间:2024-12-30 20:53:22浏览次数:1  
标签:Google Java 入门 Kotlin 开发 Android 语言

Kotlin 语言简介

在 Android 系统诞生的前 9 年时间里, Google 都只提供了 Java 这一种语言来开发 Android 应用程序, 在 Android 1.5 系统中 Google 引入了 NDK 功能, 支持使用 C 和 C++ 语言来进行一些本地化开发.
Google 在 2017 年的 I/O 大会上宣布, Kotlin 正式成为 Android 的一级开发语言, 和 Java 平起平坐, Android Studio 也对 Kotlin 进行了全面的支持. 两年之后, Google 又在 2019 年的 I/O 大会上宣布, Kotlin 已经成为 Android 的第一开发语言, 虽然 Java 仍然可以继续使用, 但 Google 更加推荐开发者使用 Kotlin 来编写 Android 应用程序, 并且未来提供的官方 API 也将会优先考虑 Kotlin 版本.
Kotlin 是由 JetBrains 公司开发与设计的, 早在 2011 年, JetBrains 就公布了 Kotlin 的第一个版本, 并在 2012 年将其开源.
2016 年, Kotlin 发布了 1.0 正式版, 这代表着 Kotlin 已经足够成熟和稳定了, 并且 JetBrains 也在自家的旗舰 IDE 开发工具 IntelliJ IDEA 中加入了对 Kotlin 的支持, 自此 Android 开发语言终于有了另外一种选择.
2017年 Google 宣布 Kotlin 正式成为 Android 一级开发语言, Android Studio 也加入了对 Kotlin 的支持.
Android 操作系统明明是由 Google 开发的, 为什么 JetBrains 作为一个第三方公司, 却能够自己设计出一门编程语言来开发 Android 应用程序呢?
编程语言大致可以分为两类:
编译型语言和解释型语言. 编译型语言的特点是编译器会将我们编写的源代码一次性地编译成计算机可识别的二进制文件, 然后计算机直接执行, 像 C 和 C++ 都属于编译型语言. 解释型语言则完全不一样, 它有一个解释器, 在程序运行时, 解释器会一行行地读取我们编写的源代码, 然后实时地将这些源代码解释成计算机可识别的二进制数据后再执行, 因此解释型语言通常效率会差一些, 像 Python 和 JavaScript 都属于解释型语言.
虽然 Java 代码确实是要先编译再运行的, 但是 Java 代码编译之后生成的并不是计算机可识别的二进制文件, 而是一种特殊的 class 文件, 这种 class 文件只有 Java 虚拟机 (Android 中叫 ART, 一种移动优化版的虚拟机) 才能识别, 而这个 Java 虚拟机担当的其实就是解释器的角色, 它会在程序运行时将编译后的 class 文件解释成计算机可识别的二进制数据后再执行, 因此, 准确来讲, Java 属于解释型语言.
Java 虚拟机不关心 class 文件是从 Java 编译来的, 还是从 Kotlin 编译来的, 只要是符合规格的 class 文件, 它都能识别. 也正是这个原因, JetBrains 才能以一个第三方公司的身份设计出一门用来开发 Android 应用程序的编程语言.
Kotlin 的工作原理: 我现在开发了一门新的编程语言, 然后自己做了个编译器, 这个编译器将这门新的编程语言的代码编译成同样规格的 class 文件, Java 虚拟机同样能识别.
Kotlin 仅在 1.0 版本发布一年后就成为 Android 官方支持的开发语言.
Kotlin 的语法更加简洁, 对于同样的功能, 使用 Kotlin 开发的代码量可能会比使用 Java 开发的减少 50% 甚至更多. 另外, Kotlin 的语法更加高级, 相比于 Java 比较老旧的语法, Kotlin 增加了很多现代高级语言的语法特性, 使得开发效率大大提升. 还有, Kotlin 在语言安全性方面下了很多工夫, 几乎杜绝了空指针这个全球崩溃率最高的异常.
Kotlin 在拥有众多出色的特性之外, 还有一个最为重要的特性, 那就是它和 Java 是 100% 兼容的. Kotlin 可以直接调用使用 Java 编写的代码, 也可以无缝使用 Java 第三方的开源库. 这使得 Kotlin 在加入了诸多新特性的同时, 还继承了 Java 的全部财富.

标签:Google,Java,入门,Kotlin,开发,Android,语言
From: https://www.cnblogs.com/Chengkai730/p/18642399

相关文章

  • 深度学习小白初学者入门干货!
    前言:主要内容阐述了深度学习中常见的实验问题与实验技巧,包括消融实验、对比实验的做法及相关指标,数据集的分配问题,深度学习改进实验的顺序,预训练权重对改进和精度的影响,YAML模型结构图的绘制,训练的可重现性,pytorch模块内结构图的绘制,创新性,模块加入结构的方法,判断模型收敛与......
  • 【Linux】入门到精通——开启你的Linux之旅
    一、欢迎加入欢迎来到“Linux学习专栏”!我是Rocy,一个正在和你一起探索Linux世界的同行者。说实话,刚开始接触Linux时,我也感到过迷茫和不知所措。但随着不断的学习和实践,我逐渐发现了它的魅力和无限可能。在这个专栏里,我们将从最基础的概念开始,一步步深入到高级应用。无论你是......
  • 21. C++快速入门--协程 Coroutine 入门
    参考:https://www.cnblogs.com/blizzard8204/p/17563217.htmlhttps://www.bennyhuo.com/2022/03/09/cpp-coroutines-01-intro/本文不完整,更新中1基本概念什么是协程?C++20的协程是一个特殊函数,具有挂起和恢复的能力.(可以不一次性执行)协程可用于异步编程,提供......
  • 16. C++快速入门--模板和Concept
    待修改1定义模板1.1模板形参模板参数模板可以有两种参数,一种是类型参数,一种是非类型参数这两种参数可以同时存在,非类型参数的类型可以是模板类型形参template< typenameT,//1 Ta//2>第一个参数是类型参数T第二个是非类型参数a,它的类型和形参......
  • Ajax入门以及Axios的详细使用(含Promise)
    1.概述1.1是什么Ajax=AsynchronousJavaScriptandXML(异步的JavaScript和XML)Ajax不是新的编程语言,而是一种用于创建快速动态网页的技术Ajax最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,使网页实现异步更新传统的网页(......
  • [笔记]Airflow入门
    前言Airflow入门教程正文简介任务管理、调度、监控工作流平台。基于DAG(有向无环图)的任务管理系统。基本架构组件scheduler:以有向无环图(dag)的形式创建任务工作流,根据用户的配置将任务定时/定期进行调度worker:任务的执行单元,worker会从任务队列当中拉取任务并运行......
  • docker自学入门教程
    目录1docker的安装1.1卸载旧版本docker1.2下载相关依赖1.3配置docker的安装源地址1.4安装docker1.5设置开机启动1.6简单命令检验是否安装成功1.7配置镜像加速器(官网属于国外网站,下载镜像会比较慢,推荐阿里云)1.8docker官网的镜像仓库地址2docker基......
  • 零基础python入门要多久?python怎么学?python就业前景如何?看这篇就够了
    包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取】Python入门需要要多久?作为一门简单高效、对新手友好的一门编程语言,入门只需要花费2-4周就够了。从入门到精通,花费3-4个月也就够了。但是也不能一概而论,因为总是会有人在学习的过程中做无用功,所以会花费更长的时......
  • java之mybatis框架第一天-mybatis入门
    1.前言什么是mybatisMyBatis是一款优秀的持久层框架,用于简化JDBC的开发。MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。2.mybatis快速入门目标:使用Mybatis查询所有用户数据(1)准备工......
  • 大模型入门书籍 | 《大模型基础》开源分享!
    一、书籍介绍由浙江大学DAILY实验室毛玉仁研究员、高云君教授领衔撰写的《大模型基础》教材第一版。这本教材为对大语言模型感兴趣的读者系统地讲解相关基础知识、介绍前沿技术。本书包括传统语言模型、大语言模型架构、提示工程、高效参数、模型编辑、搜索增强增加生成......