Kotlin 旅途篇(一)
简述kotlin
kotlin是由JeBrains开发,一个基于JVM新的编程语言
Kotlin可以编译成java字节码,也可以编译成JavaScript,方便在设备上运行。
谷歌I/O 2017宣布将支持Kotlin作为Android第一开发语言(语言很大提升空间)
Android Studio3.0预览版已自带Kotlin 插件,无需做任何的配置即可开始体验。但如果是之前版本,
则需要我们自行配置(通过 File->Settings->Plugins->Install JeBrains plugin...搜索并安装kotlin插件)。
Kotlin优点
1).提高团队的生产力
语言紧凑、清晰、高效、语言简单直观。
2).可维护性
由JetBerains构建并支持,Kotlin为许多IDE提供了良好环境。
3).更少的错误
空指针安全检测、属性访问等,而且kotlin允许在生产中减少错误,生成更稳定的代码。编译器在编译时检测所有可能的错误,
而不是运行时。这使得kotlin成为比java更安全的替代品。
kotlin缺点
1).编译速度慢
主要还是因为kotlin会自动生成更多的代码,比如为属性生成get/set,对比Java会存在更多的方法数量。
https://youtrack.jetbrains.com/issue/KT-6246,这篇博客有做分析
2).annotation processing的问题
3).没有命名空间
kotlin允许定义top_level的函数和属性
package foo
private fun foo(){} //只在example.kt文件内可访问
internal val baz = 6 //在同一个模块(module)内可以访问
fun testFun(){} //默认修饰符public,被其修饰的在任何位置都能访问
4).没有静态修饰语
public static final int VISIBLE = 0x00000000; //Java
companion object{ //kotlin
@JvmField
val VISIBLE:Int = 0x00000000
}
5).Java自动转换成kotlin带来的问题
Java自动转换成kotlin是个非常好的特效,但是也带来问题。Javadoc原来的结构会被破坏掉,静态field
和方法会转换成companion object中的普通声明,如果有Java代码调用这个类,就会出现点问题,除非
你后面手动给这个转换后的companion object添上@JvmField和@JvmStatic。
6).会增加方法数量
过多的方法数量会导致编译变慢。kotlin通过闭包,内联函数等可以显著减少代码总行数,但它可能
也会增加编译后的方法数量。对于Android项目来说这个肯定是一个不小的缺点。很多原因会导致方法
数量增加,但是最大的来源是kotlin实现属性
kotlin不像Java可以直接访问field,而是通过创建proterty的方式来访问。这是一个很好的特效,你可以自
定义实现proterty的set/get,对比Java的set/get方法有很大进步。
但是这个也是有代价的,对于val属性,kotlin自动生成backing field和getter函数来供Java调用。
public var属性会自动生成setter/getter函数。幸运的是private var属性已经有默认的setter/getter
不需要额外生成。所以后果带来很多方法导致编译变慢。
废话不多说,开始我kotlin之旅......
1.创建一个kotlin项目
第一步:Android studio 以往创建新项目没有任何区别,选择Start a new Android Studio Project 或者File | New Project.
第二步:Java代码自动转换成kotlin代码
打开选中activity文件,按快捷键 :Ctrl+Alt+Shift+k
第三步:配置kotlin环境(bundle.gradle)
打开之前activity文件,随意改动。发现在文件顶部会弹出提示框。
再按照提示 ,选择kotlin的最新版本即可。
app build.gradle文件主要发生如下变动,配置kotlin关联文件。
project build.gradle文件变动。
转载于:https://www.cnblogs.com/mjjy/p/7382552.html
Kotlin 旅途篇(一)相关推荐
- Kotlin——初级篇(六):空类型、空安全、非空断言、类型转换等特性总结
在我们熟知的Java中,定义一个变量可以默认不赋值,因为Java的系统会给我们默认赋一个默认值,并且Java可定义一个赋值为null的变量,这样在使用这个变量的时候都会去显示判断该变量是否为null. ...
- Kotlin——初级篇(二):变量、常量、注释
在Kotlin中的变量.常量以及注释多多少少和Java语言是有着不同之处的.不管是变量.常量的定义方式,还是注释的使用.下面详细的介绍Kotlin中的变量.常量.注释的使用.以及和Java的对比. 如 ...
- Kotlin——中级篇(二): 属性与字段详解
在前面的章节中,详细的为大家讲解到了Kotlin中对类的类的定义.使用.初始化.初始化.类继承等内容,但是在一个类中,几乎上是不可能不出现属性与字段(field)的,这一篇文章就为大家奉上Kotlin ...
- Kotlin 开始篇之 Kotlin 的优点
Kotlin 开始篇之 Kotlin 的优点 文章目录 Kotlin 开始篇之 Kotlin 的优点 前言 正文 Kotlin 的优点 1. 欢迎来到 kotlin 的糖果乐园 2. 人性化语法糖之一 ...
- Kotlin——初级篇(一):最详细的环境搭建
众所周知,Kotlin出来已经良久了.Kotlin有着众多优势,不管是用于Android开发中,还是Java开发,都能缩减很大的代码量,大大提高了工作效率.而小生本人也是才从忙碌的个工作中抽身出来,有 ...
- Kotlin学习篇(2)—— Kotlin的函数
目录 1. 定义一个函数 2. 表达式函数体 3. 更简洁的使用函数 3.1 命名参数 3.2 默认参数值 4. 顶层函数 5. 扩展函数 6. 可变参数 7. 展开运算符 8. 集合相关的函数 9. ...
- JetBrains开发者日见闻(一)之Kotlin/Native 尝鲜篇
简述: 今天我们来讲点Kotlin中比较时髦的东西,有的人可能会说:"不像你之前的风格啊,之前的文章不是一直在死扣语法以及语法糖背后秘密.当你还在死扣泛型语法的时候,别人的文章早就说了Kot ...
- 教你如何攻克Kotlin中泛型型变的难点(应用篇)
简述: 这是泛型型变最后一篇文章了,也是泛型介绍的最后一篇文章.顺便再扯点别的,上周去北京参加了JetBrains 2018开发者日,主要是参加Kotlin专场.个人感觉收获还是挺多的,bennyHu ...
- 用Kotlin撸一个图片压缩插件-插件基础篇(二)
简述: 前两天写了篇用Kotlin撸一个图片压缩插件-导学篇,现在迎来了插件基础篇,没错这篇文章就是教你如何一步一步从零开始写一个插件,包括插件项目构建,运行,调试到最后的上线发布整个流程.如果你是插 ...
最新文章
- WPF窗口长时间无人操作鼠标自动隐藏
- fabio负载均衡入门
- 手把手教你发行自己的以太坊ERC20 Token 并进行转账
- 23-爬虫之scrapy框架增量式实时监测数据爬取10
- 【渝粤题库】国家开放大学2021春2748动物常见病防治题目
- The Best Way to Unit Test in Android
- python爬虫的数据如何解决乱码_写爬虫时如何解决网页乱码问题
- 后Kubernetes时代的微服务
- IntelliJ IDEA 配置Tomcat 运行Web项目
- 命令netstat和DHCP
- 如何建立强有力的人脉关系
- hive sql 行列转换
- b区计算机211学校排名,考研B区院校排名
- 含不等式的优化设计matlab,基于Matlab的齿轮传动优化设计
- juns java,Java中的基本數據類型
- 普通话测试-短文60篇文章,附带拼音(51-60篇)
- Spring Boot 2.1.6.RELEASE embed tomcat启动过程
- %3c php 能用什么代替,Phpwind9
- MSP432学习笔记:ADC14
- 资金互助社业务学习园地(一) 灵活运用通知储蓄存款