简述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 旅途篇(一)相关推荐

  1. Kotlin——初级篇(六):空类型、空安全、非空断言、类型转换等特性总结

    在我们熟知的Java中,定义一个变量可以默认不赋值,因为Java的系统会给我们默认赋一个默认值,并且Java可定义一个赋值为null的变量,这样在使用这个变量的时候都会去显示判断该变量是否为null. ...

  2. Kotlin——初级篇(二):变量、常量、注释

    在Kotlin中的变量.常量以及注释多多少少和Java语言是有着不同之处的.不管是变量.常量的定义方式,还是注释的使用.下面详细的介绍Kotlin中的变量.常量.注释的使用.以及和Java的对比. 如 ...

  3. Kotlin——中级篇(二): 属性与字段详解

    在前面的章节中,详细的为大家讲解到了Kotlin中对类的类的定义.使用.初始化.初始化.类继承等内容,但是在一个类中,几乎上是不可能不出现属性与字段(field)的,这一篇文章就为大家奉上Kotlin ...

  4. Kotlin 开始篇之 Kotlin 的优点

    Kotlin 开始篇之 Kotlin 的优点 文章目录 Kotlin 开始篇之 Kotlin 的优点 前言 正文 Kotlin 的优点 1. 欢迎来到 kotlin 的糖果乐园 2. 人性化语法糖之一 ...

  5. Kotlin——初级篇(一):最详细的环境搭建

    众所周知,Kotlin出来已经良久了.Kotlin有着众多优势,不管是用于Android开发中,还是Java开发,都能缩减很大的代码量,大大提高了工作效率.而小生本人也是才从忙碌的个工作中抽身出来,有 ...

  6. Kotlin学习篇(2)—— Kotlin的函数

    目录 1. 定义一个函数 2. 表达式函数体 3. 更简洁的使用函数 3.1 命名参数 3.2 默认参数值 4. 顶层函数 5. 扩展函数 6. 可变参数 7. 展开运算符 8. 集合相关的函数 9. ...

  7. JetBrains开发者日见闻(一)之Kotlin/Native 尝鲜篇

    简述: 今天我们来讲点Kotlin中比较时髦的东西,有的人可能会说:"不像你之前的风格啊,之前的文章不是一直在死扣语法以及语法糖背后秘密.当你还在死扣泛型语法的时候,别人的文章早就说了Kot ...

  8. 教你如何攻克Kotlin中泛型型变的难点(应用篇)

    简述: 这是泛型型变最后一篇文章了,也是泛型介绍的最后一篇文章.顺便再扯点别的,上周去北京参加了JetBrains 2018开发者日,主要是参加Kotlin专场.个人感觉收获还是挺多的,bennyHu ...

  9. 用Kotlin撸一个图片压缩插件-插件基础篇(二)

    简述: 前两天写了篇用Kotlin撸一个图片压缩插件-导学篇,现在迎来了插件基础篇,没错这篇文章就是教你如何一步一步从零开始写一个插件,包括插件项目构建,运行,调试到最后的上线发布整个流程.如果你是插 ...

最新文章

  1. WPF窗口长时间无人操作鼠标自动隐藏
  2. fabio负载均衡入门
  3. 手把手教你发行自己的以太坊ERC20 Token 并进行转账
  4. 23-爬虫之scrapy框架增量式实时监测数据爬取10
  5. 【渝粤题库】国家开放大学2021春2748动物常见病防治题目
  6. The Best Way to Unit Test in Android
  7. python爬虫的数据如何解决乱码_写爬虫时如何解决网页乱码问题
  8. 后Kubernetes时代的微服务
  9. IntelliJ IDEA 配置Tomcat 运行Web项目
  10. 命令netstat和DHCP
  11. 如何建立强有力的人脉关系
  12. hive sql 行列转换
  13. b区计算机211学校排名,考研B区院校排名
  14. 含不等式的优化设计matlab,基于Matlab的齿轮传动优化设计
  15. juns java,Java中的基本數據類型
  16. 普通话测试-短文60篇文章,附带拼音(51-60篇)
  17. Spring Boot 2.1.6.RELEASE embed tomcat启动过程
  18. %3c php 能用什么代替,Phpwind9
  19. MSP432学习笔记:ADC14
  20. 资金互助社业务学习园地(一) 灵活运用通知储蓄存款

热门文章

  1. 蓝桥杯六届 八题 移动距离JAVA题解
  2. 安装64位win7(适合没有4G以上U盘或DVD光驱)
  3. 华为在发布会带来了harmonyos,Mate 40发布会彩蛋!华为智选智能摄像头Pro发布
  4. 马士兵JVM课程笔记
  5. python:字符串
  6. UE4_地图程序化随机生成
  7. mysql运维工具-----percona-toolkit
  8. 为什么国家要推行营改增?
  9. 小波变换db4进行四层分解及其信号重构—matlab分析及C语言实现
  10. 4个最新临时邮箱,全方位保护你的隐私