初识未来趋势:Java与Kotlin;EclipsE与IntelliJ
基本上像Java一样,C和C ++ - Kotlin也是“静态类型编程语言”。静态类型的编程语言是在使用变量之前不需要定义的那些语言。这意味着静态类型与变量的使用明确声明或初始化有关。
如前所述,Java是静态类型语言的一个例子,类似C和C ++也是静态类型语言。
基本上,静态类型并不意味着我们必须在使用它们之前首先声明所有的变量。变量可以在程序中的任何地方初始化,而我们(开发人员)必须这么做,当有需要时,可以在程序的任何位置使用这些变量。考虑以下示例 -
除了面向对象编程的类和方法之外,Kotlin还支持使用函数进行程序化编程。
像Java,C和C ++一样,Kotlin程序的入口点是一个名为“main”的函数。基本上,它传递一个包含任何命令行参数的数组。考虑以下示例 -
Java的文件扩展名为.java,.class,.jar,另一方面,Kotlin的文件扩展名为.kt和.kts。
Kotlin语言的好处
Kotlin编译为JVM字节码或JavaScript - 像Java一样,Bytecode也是Kotlin程序的编译格式。 字节码表示编程代码,一旦编译,就通过虚拟机而不是计算机的处理器运行。 通过使用这种方法,一旦编译并运行虚拟机,源代码就可以在任何平台上运行。 一旦kotlin程序被转换为字节码,它可以通过网络传输并由JVM(Java虚拟机)执行。
Kotlin程序可以使用所有现有的Java框架和库 - 是的,Kotlin程序可以使用所有现有的Java框架和库,甚至依赖于注释处理的高级框架也是如此。关于kotlin语言的主要重点是它可以轻松地与Maven的,摇篮和其他构建系统集成。
Kotlin可以轻松学习,平易近人。通过简单的阅读语言参考可以轻松学习。语言干净直观(易于使用和理解)。Kotlin看起来很像Scala,但更简单。
Kotlin是开放源码,没有收费。
将Java自动转换为Kotlin - JetBrains将IntelliJ集成了一个新功能,将Java转换为Kotlin,节省了大量的时间。而且它也节省了我们重新编写世代代码。
Kotlin的空安全性很好 - 现在摆脱NullPointerExceptions。这种类型的系统帮助我们避免空指针异常。在Kotlin系统中,系统只拒绝编译尝试分配或返回null的代码考虑以下示例 -
代码审查不是问题 - 科特林更注重可读性的语法,所以代码审查不是一个问题,它们仍然可以由那些不熟悉语言的团队成员完成。
Kotlin语言的特点
十亿美元的错误是正确的。 如上所述,Kotlin避免了空指针异常。 如果我们尝试分配或返回null到变量或函数,那么它将不会编译。
但是在某些特殊情况下,如果我们在程序中需要可空性,那么我们必须非常好地问Kotlin。 每个Nullable型都需要特别的护理和治疗。 我们不能像非可空类型那样对待它们,这是一件非常好的事情。
我们必须在变量类型之后添加“?”。 考虑以下示例 - Kotlin在编译时也会在运行时抛出NullPointerException时失败。 考虑以下示例 -
Versatile多才多艺
精简语法和简明 Lean Syntax and Concise - 一个线程函数需要一行,简单的结构体/ JavaBeans也可以在一行中声明。 实际的属性在Java互操作的后台生成getter和setter。 并且将数据注释添加到类中会触发自动生成样板,如equals,hashCode,toString等等。
考虑以下示例 -
你也可以喜欢在Docker和Kubernetes上部署Kotlin应用程序
Kotlin和Java之间的区别
空安全 Null Safety- 如上节所述,Kotlin避免了NullPointerException。无论何时抛出NullPointerException,Kotlin都会在编译时失败。
数据类 Data Classes- 在Kotlin中有数据类,它们导致自动生成样板,如equals,hashCode,toString,getter / setter等等。考虑以下示例 -
但在科特林,上述同样的课程可以简洁地定义一行 -
它还将允许我们在copy()的帮助下轻松创建数据类的副本 -
扩展函数 Extension Functions- Kotlin允许我们扩展现有类的功能,而不继承它们。意味着Kotlin提供了扩展具有新功能的类的能力,而无需继承类。这是通过扩展功能完成的。要声明一个扩展功能,我们需要用一个接收器类型,即被扩展的类型来加上它的名字。以下为MutableList <List>添加交换函数 -
扩展功能中的“this”关键字对应于接收者对象,即在点之前传递的对象。现在我们可以在任何MutableList <Int>上调用这样一个函数 -
智能Casts - 当谈到Casts时,Kotlin编译器真的很聪明。在许多情况下,不需要在kotlin中使用显式转换操作符,但是在Kotlin中,对于不可变值有“is-checking”,在需要时自动插入,
类型推断 Type Inference - 在Kotlin中,有一件伟大的事情,你不必明确指定每个变量的类型(以清晰详细的方式)。但是,如果要明确定义数据类型,还可以这样做。考虑以下示例 -
功能编程 Functional Programming- 重要的是Kotlin是一种功能性的编程语言。基本上,Kotlin由许多有用的方法组成,其中包括高阶函数,lambda表达式,运算符重载,惰性评估,运算符重载等等。
功能性编程使得Kotlin在收藏上更加便利 -
输出 - 15,11
高阶函数是将函数作为参数并返回函数的函数。考虑以下代码:
在上面的代码中,“func”是参数的名称,“() - > Unit”是函数类型。在这种情况下,我们说func将不会收到任何参数,也不返回任何值。
Lambda表达式或匿名函数是“函数文字”,即未声明的函数,而是作为表达式立即传递。
Lambda表达的示例 -
在上面的例子中,我们简单地声明一个变量'sum',它需要两个整数,并将它们加在一起,并返回total作为一个整数。
然后我们使用'sum(2,2)'来调用它。很酷啊
匿名函数是一个允许我们指定返回类型的函数,在这个函数中,函数名被省略。考虑以下示例:
无论是这样 -
或这种方式
编译速度 (Java vs Kotlin)
与Java相比,我们实际上非常感兴趣知道Kotlin的编译速度。
清洁构建(第一次构建我们的代码库)
当我们第一次编译我们的Kotlin代码时,它需要比Java更多的时间。 Java编译比Kotlin快了大约15-20%。
增量构建
但是我们知道,大多数时候我们需要增量构建,就像我们在现有代码中进行一些修改,然后构建它们并进行连续部署
所以在这个角度来看,Kotlin与Java相比需要相同的时间来编译,甚至比Java要快一些。
結論
我们知道,在我们的项目中,只有一次完成干净的构建,我认为增量构建编译时间对我们来说比Clean Build更重要。 所以Kotlin几乎和Java一样,是的,我们可以和Kotlin一起去,而不用担心编译时间。
Kotlin 语言的未来
Kotlin与Java互操作,并将代码和优秀类型系统的增量更改更改为Java,并提供了具有向后兼容性的Java的简单迁移路径。
具有更多的声明,更少的代码,混合语言的数据库,比Java更具表现力,使Kotlin成为企业应用和移动的未来发展方向。
初识未来趋势:Java与Kotlin;EclipsE与IntelliJ相关推荐
- Java SE 9:使用Eclipse和IntelliJ IDEA IDE开发和测试HelloWorld模块(第4部分)
I have already discuss about "Java Module System" Basics in my previous posts. I'm going t ...
- 曾经的 Java IDE 王者 Eclipse 真的没落了?21 款插件让它强大起来!
俗话说,好马配好鞍,才能展现千里马的实力.一名好的开发者,必定要有一套好的开发工具才能打造出最好的产品给用户.要论世界上最好用的 IDE 是哪一种?有人会选择老牌的 Visual Studio 或是 ...
- Java:Java vs Kotlin–Android应用程序开发的最佳语言?
在移动应用技术领域,Java和Kotlin是最流行的搜索词之一.如果你也在寻找Java与Kotlin框架的比较,那么这篇文章就是为你准备的! 让我们来全面了解一下这两种技术之间的区别. 编程语言的定义 ...
- 从Java到Kotlin(三)
本篇文章主要对比Java跟Kotlin中的类和接口的写法. 目录 一.类的声明 二.构造函数 三.函数的参数 四.创建类的实例 五.数据类 六.枚举类 七.属性 八.内部类 九.可见性修饰符 十.继承 ...
- 抛弃 Java 改用 Kotlin 的六个月后,我后悔了!
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 毫无疑问,Kotlin 目前很受欢迎,业界甚至有人认为其将取代 Java ...
- Java SE 9:使用IntelliJ IDE开发和测试模块之间的隐式可读性(第5部分)
I have already discussed many theoretical concepts about "Java 9 Module System" and also d ...
- 是时候抛弃 Eclipse 转向 IntelliJ IDEA了
是时候抛弃 Eclipse 转向 IntelliJ IDEA了 2013/06/05 · 工具与资源, 开发 · 18.0K 阅读 · 19 评论 · 来源: 伯乐在线 · Android S ...
- 曾经的 Java IDE 王者 Eclipse,它是如何没落的?
根据今年 6 月份的一份调查,Eclipse 的使用比例下降至 41%,已低于 Intellij IDEA 的 46%. 曾经的 Java IDE 王者,为何会走到这一步? 1. Eclipse 4 ...
- 是时候抛弃Eclipse转向IntelliJ了
在今年的Google I/O大会上,Google推出新的Android集成IDE"Android Studio".而之前,Google与Eclipse合作开发出一个ADT傻瓜包,后 ...
最新文章
- 数据库经典书籍--数据库系统概念
- 微软的焦虑?想多了!从.NET6 Preview2到大厂招聘,起飞
- 前端学习(46):页面导入样式时,使用link和@import有什么区别?
- 安装zabbix及LNMP的平台的搭建
- flink的watermark参考配置
- 阶乘取模算法java_np问题(大数阶乘取模)
- linux追加SQL结果到文件,RAC环境下误操作将数据文件添加到本地存储
- Linux初级运维(一)——Linux操作系统及常用命令
- elasticsearch集群搭建实例
- 近期团队博客的摘要 5
- spring揭秘_「死磕 Spring」—– IOC 之深入理解 Spring IoC
- 2021-2022-1 线性代数知识点总结
- ios在判断设备是ipad_iOS 判断设备型号、屏幕尺寸、系统版本、设备朝向
- 1-7 Burpsuite 爬虫介绍
- 互联网创业的准备——依赖服务:云主机、域名、代码库
- MP4文件格式详解——元数据moov(一)mvhd box
- python任务编排_工作流中的任务编排与治理
- 移动UI 设计---色彩有哪些象征意义
- 独木舟上的旅行-OJ
- GNU C++ 智能指针5-- 解析_Sp_counted_deleter类