Android---Kotlin 学习001

Kotlin 的诞生

2011年,JetBrains 宣布开发 Kotlin 编程语言,这门新语言可以用来编写在 Java 虚拟机上运行的代码,是 Java 和 Scale 语言之外的又一选择。2017年,Google 在赢得与  Oracle 的诉讼一年后,Google 宣布 Kotlin 正式获得官方支持,可用于 Android 应用开发。Kotlin 的应用范围迅速扩展,它从一门前途光明的编程语言摇身一变,成了这个世界上最重要的移动操作系统的钦定开发语言。Kotlin 语法简洁,具备现代高级语言特性,并且能和 Java 遗留代码无缝互操作。因为具备这些优势,今天又来越多的公司使用它开发。

Kotlin 与 JVM

Kotlin 是运行在 Java 虚拟机之上。此外,运行在 Java 虚拟机之上我们熟知的一些语言有 Java Kotlin、Scala、Groovy。只要这些语言经过编译器编译后的字节码遵循 JVM 规范,都可以运行在  JMV 之上。

 Kotlin 比 Java 更强大,主要就在于编译器不一样了。Kotlin 可以支持更多的更高级的语法,所以 Kotlin 又叫编译型的语言。它更多的特性依赖于它的编译器。

为什么要学 Kotlin

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

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

Kotlin 的跨平台特性

\bullet Kotlin 不仅支持编写代码在虚拟机上运行,而且还是一门跨平台的通用型语言,我们可以用 Kotlin 开发各种类型的原生应用,如 Android、macOS、Windows、Javascript 应用。

\bullet Kotlin 能脱离虚拟机层,直接编译成可以在 Windows、Linux 和 macOS  平台上运行的原生二进制代码

学习 Kotlin,要与 Java 语言对比,达到提高学习效率。知识点尽量全面覆盖,不留认知缺陷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/216198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

仿短视频风格的自适应苹果CMS模板源码

这是一款仿短视频风格的自适应苹果CMS模板源码,设计简洁,适合用于搭建个人视频网站或者短视频分享平台。模板支持响应式布局,演示地 址 runruncode.com/yingshimanhau/19650.html 适配各种屏幕尺寸,功能丰富,用户体验良…

H.265视频压缩编码标准

H.265(High Efficiency Video Coding,也称为HEVC)是一种新一代视频压缩编码标准,被视为H.264的继任者。它引入了许多创新的技术和算法,以提供更高质量的视频压缩效果。在本文中,我将详细介绍H.265的背景、特…

【Go自学版】03-即时通信系统2

4. 在线用户查询 main.go | server.go | user.go // server.go type Server struct {IP stringPort int// 在线用户列表OnlineMap map[string]*UsermapLock sync.RWMutex// 消息广播Message chan string }// 创建server接口 func NewServer(ip string, port int) *Server…

EMNLP2023 | 短篇论文接受列表,含全部论文下载

来源: AINLPer公众号(每日干货分享!!) 编辑: ShuYini 校稿: ShuYini 时间: 2023-12-12 引言 EMNLP2023 于12月10日在新加坡落下帷幕,此次会议顺利举行。今年EMNLP2023 的投稿论文数量将近5000篇,长论文接收…

人工智能|深度学习——知识蒸馏

一、引言 1.1 深度学习的优点 特征学习代替特征工程:深度学习通过从数据中自己学习出有效的特征表示,代替以往机器学习中繁琐的人工特征工程过程,举例来说,对于图片的猫狗识别问题,机器学习需要人工的设计、提取出猫的…

安装python

1.下载python 选择版本 选择可执行文件安装包 2.安装 输入python检查是否安装成功

(十六)Flask之蓝图

蓝图 Flask蓝图(Blueprint)是Flask框架中用于组织和管理路由、视图函数以及静态文件的一种机制。它提供了一种将应用程序拆分为更小、可重用组件的方式,使得项目结构更清晰,代码更易于维护。 使用Flask蓝图,可以将相…

​pickle --- Python 对象序列化​

源代码: Lib/pickle.py 模块 pickle 实现了对一个 Python 对象结构的二进制序列化和反序列化。 "pickling" 是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程,而 "unpickling" 是相反的操作,会将&#xff08…

用Sketch for Mac轻松创作无限可能的矢量绘图

在如今的数码时代,矢量绘图软件成为了许多设计师和创意爱好者的必备工具。而在众多的矢量绘图软件中,Sketch for Mac无疑是最受欢迎的一款。它以其简洁易用的界面和强大的功能,让用户能够轻松创作出无限可能的矢量图形。 首先,Sk…

单域名https证书怎么申请

单域名https证书可以保护www和两个域名记录,如果保护的域名是子域名时,只能保护一个子域名。单域名https证书能够为网站提供加密的HTTPS连接,保护网站的数据安全。今天随SSL盾小编了解单域名https证书的申请。 1. 确定证书类型:根…

【Lidar】Laspy库介绍+基础函数(读取、可视化、保存、旋转、筛选、创建点云数据)

1 Laspy库介绍 laspy是一个Python库,主要用于读取、修改和创建LAS点云文件。该库兼容Python 2.6和3.5,并且可以处理LAS版本1.0-1.3的文件。 在laspy库中,可以使用命令行工具进行文件操作,如格式转换和验证,以及比较LAS…

Apache或Nginx在Linux上配置虚拟主机

在Linux上使用Apache或Nginx配置虚拟主机可以让您在同一台服务器上托管多个网站。这样不仅可以充分利用服务器资源,还能降低每个网站的运营成本。以下是使用Apache和Nginx配置虚拟主机的步骤。 使用Apache配置虚拟主机 安装Apache服务器软件。在终端中使用以下命令…

RK3568驱动指南|第八篇 设备树插件-第74章 虚拟文件系统ConfigFS介绍

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

mysql数据恢复

使用MySQL第三方工具binlog2sql binlog2sql,一款基于python开发的开源工具,是由大众点评团队的DBA使用python开发出来的,从MySQL binlog解析出你要的SQL。根据不同选项,你可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。其功…

大数据驱动下的人口普查:新时代下的新变革

人口普查数据大屏,是指一种通过大屏幕显示人口普查数据的设备,可以将人口普查数据以可视化的形式呈现出来,为决策者提供直观、准确的人口数据。这种大屏幕的出现,让人口普查数据的利用变得更加高效、便捷。 如果您需要制作一张直观…

一篇文章让你读懂Jenkins的用途

Jenkins是一款强大的自动化构建工具,广泛应用于软件开发和测试领域。它能够帮助团队在软件开发过程中实现自动化,从而提高生产效率和质量。下面我们将详细介绍Jenkins的用途。 1、持续集成与持续部署 Jenkins最大的特点是支持持续集成与持续部署。在软件开发过程中,持续集…

Linux目录创建的高级操作技巧和命令

在Linux系统中,创建目录是日常操作中的基础之一。除了常规的 mkdir 命令,还有一些高级的操作技巧和命令可以提高效率。本博客将介绍一些常用的目录创建方法,以及如何结合不同命令实现更复杂的目录结构。 1. 使用 mkdir 命令 基本创建&#x…

无人机高空巡查+智能视频监控技术,打造森林防火智慧方案

随着冬季的到来,森林防火的警钟再次敲响,由于森林面积广袤,地形复杂,且人员稀少,一旦发生火灾,人员无法及时发现,稍有疏忽就会酿成不可挽救的大祸。无人机高空巡查智能视频监控是一种非常有效的…

Linux:符号和符号表

文章目录 什么是符号?什么是符号表?全局符号和本地符号1. 全局符号:symtab符号表 2. 本地符号: 符号在汇编阶段符号在链接阶段1.由模块 m 定义并能被其他模块引用的全局符号。2.由其他模块定义并被模块 m 引用的全局符号。3.只被模…

Linux【2】:清理几天前的文件夹YYYYMMDD

Linux【2】:清理几天前的文件夹YYYYMMDD 1、清理指定日期【文件名】前文件夹脚本2、清理指定日期【文件日期】前的文件3、find命令说明 1、清理指定日期【文件名】前文件夹脚本 脚本如下#!/bin/bash #移除模糊目录下的日期文件夹 RemoveDir/root/tlogs/* dtdate %Y…