查看原文
其他

什么是Kotlin?Java终结者?

javastack Java技术栈 2018-08-12



什么是Kotlin

Kotlin是一个基于JVM的新的编程语言,2010年由IntelliJ IDEA所在的JetBrains公司开发,自2012年以来一直开源。

Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。

Kotlin是面向对象和功能编程功能的JVM和Android的通用、开源、静态的实用的编程语言。它专注于交互性、安全性及清晰度和工具的支持。

设计理念

1、创建一种兼容Java的语言

2、让它比Java更安全,能够静态检测常见的陷阱。如:引用空指针

3、让它比Java更简洁,通过支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等实现。

4、让它比最成熟的竞争对手Scala语言更加简单。

Kotlin优势

1、简洁: 大大减少样板代码的数量。

2、安全: 避免空指针异常等整个类的错误。

3、互操作性: 充分利用 JVM、Android 和浏览器的现有库。

4、工具友好: 可用任何 Java IDE 或者使用命令行构建。

代码转换

Java代码:

  1. public class JavaCode {

  2.    public String toJSON(Collection<Integer> collection) {

  3.        StringBuilder sb = new StringBuilder();

  4.        sb.append("[");

  5.        Iterator<Integer> iterator = collection.iterator();

  6.        while (iterator.hasNext()) {

  7.            Integer element = iterator.next();

  8.            sb.append(element);

  9.            if (iterator.hasNext()) {

  10.                sb.append(", ");

  11.            }

  12.        }

  13.        sb.append("]");

  14.        return sb.toString();

  15.    }

  16. }

转换成Kotlin代码:

  1. fun toJSON(collection: Collection<Int>): String {

  2.    val sb = StringBuilder()

  3.    sb.append("[")

  4.    val iterator = collection.iterator()

  5.    while (iterator.hasNext())

  6.    {

  7.        val element = iterator.next()

  8.        sb.append(element)

  9.        if (iterator.hasNext())

  10.        {

  11.            sb.append(", ")

  12.        }

  13.    }

  14.    sb.append("]")

  15.    return sb.toString()

  16. }

看起来,Kotlin就像是一个简化的Java版本。Java和Kotlin两个语言可以互相转换。

未来发展

在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。

有意思的是最近阿里发布的阿里巴巴Java开发规约插件使用了Kotlin进行开发,原因是因为它简单上手快,并能100%与Java进行交互。但是依然需要注意的是目前在国内用的比较少,Kotlin也是比较赶潮流的语言,在开发语言中排名和影响力也比较落后,从Java转到Kotlin也非常容易,所有,有兴趣的同学可以研究试玩下。

推荐阅读



什么是Spring Boot?

Spring Boot开启的2种方式

Spring Boot Starters启动器

Spring Boot定制启动图案

Spring Boot核心配置

Spring Boot功能实战

Spring Boot自动配置原理、实战

Spring Boot Runner启动器

Spring Boot - Profile不同环境配置


看完有没有收获?

分享到朋友圈给更多的人吧。




  Java技术栈  
微信公众号:「Javastack

分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。


 ▼长按二维码关注我们↓↓↓



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存