java类型转换-句子转换类型
作者丨Anchal Malik
译者丨杨志昂
针对 Android APP 的两种编程语言 Kotlin 和 Java,本文介绍了什么是 Kotlin,用代码示例展示了 Kotlin 与 Java 的主要区别,并在多个功能方面对 Kotlin 与 Java 进行了比较。本文的观点是,如果主要目标是 android 开发,首选编程语言一定是 Kotlin。
1 Kotlin 会带来革命性的改变吗?
那些计划开发 android APP 的企业如今面临着许多挑战,尤其是,应该选择选用哪种技术来开发最好的 android APP。
即使有专业技术知识的人,也可能也会混淆 Kotlin 和 Java。而对于那些压根不知道这两个词的人,这里解释一下,Kotlin 和 Java 是 android APP 开发的两种编程语言。
自从 Google 引入 Kotlin 作为 android APP 开发的第二官方编程语言以来,Java 和 Kotlin 之间的战斗日益白热化了!
此外,像 Pinterest、Evernote、Uber、Trello、Postmates、Corda 等顶级科技公司已经将他们的 android APP 编程语言从 java 转换成了 Kotlin。这一现象进而引发了众多开发人员的好奇心。
您是否想知道,使用哪种编程语言做 android APP 开发将有助于你获得最好的 android APP 性能?不用担心!在本文的最后,你将得到想知道的答案:Kotlin 和 java,哪一种编程语言更好?
希望你读了本文后,也能得到其他的问题的答案,比如:
本文的内容涵盖:
2 什么是 Kotlin?
简而言之,Kotlin 可以用一种更好的方式构建一个 APP,该 APP 可以在 Java 上运行,但减少了很多麻烦。Kotlin 是一种编程语言,它可以辅助开发人员在更短的时间内开发出优秀的 APP。
【延伸阅读】:你应该知道的最出名的 7 个用 Kotlin 编写的 android APP。
Kotlin 是由捷克的 JetBrains 软件公司开发的一种静态类型的、面向对象的编程语言。它与 Java 语言具有互操作性,而且该语言十分简洁,并得到 Android studio 的支持。
我曾听说有人将 Kotlin 描述为“Java 之光”。这种说法最有可能的原因是,Kotlin 确实与 Java 有很多相似之处。
事实上,Kotlin 在您的设备中需要使用 java machine 来运行一个完成的 APPjava类型转换,这样就少了很多麻烦。这种编程语言要求在你的计算机、手机或其他智能设备上安装 Java。甚至java类型转换,在同一个 APP 中,可以同时使用 Java 和 Kotlin 两种语言。
3 Kotlin 与 Java 的主要区别
介绍得足够多了,现在让我们继续讨论 Kotlin 与 Java 的主要区别是什么。
用 Java 创建数据类的代码示例
public class UserEntity {
private String userId;
private String name;
private String email;
private String mobileNumber;
public void setUserId(String userId) {
this.userId = userId;
}
public void setName(String name) {
this.name = name;
}
public void setEmail(String email) {
this.email = email;
}
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
public String getUserId() {
return userId;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public String getMobileNumber() {
return mobileNumber;
}
用 Kotlin 创建相同数据类的代码示例
class UserEntity {
var userId: String? = null
var name: String? = null
var email: String? = null
var mobileNumber: String? = null
4 Kotlin 哪里优于 Java?
开发人员对 Kotlin 和 Java 的看法褒贬不一。
但是,在为什么选用 Kotlin 而不是 Java 作为编程语言这一点上,他们却有一些共识:
最后,用 Kotlin 编写的代码比 Java 更友好、更快捷、更容易。
5 Kotlin 与 Java 的比较
现在您已经了解了什么是 Kotlin,让我们从各个功能方面来比较 Kotlin 和 Java 的差异。
流行程度
当 Google 在 2016 年发布第一个稳定版本时,Kotlin 的市场份额在 2017 年 5 月增长到了 4.28%。到 2017 年 9 月,这一比例升至 7.54%。
而 2018 年的一项对 10 万 stack overflow 用户的调查显示,超过 7.54% 的受访者使用 Kotlin 进行 android 开发。可以访问 Kotlin 的状态报告看看它现在的发展状况。
而 Java 语言的普及程度仍然处于巅峰转台。最新的证据是 Java 的 TIOBE 指数,这足以证明截至 2019 年 6 月,Java 仍然是全球最流行的 android 编程语言。
Android Studio 支持
说到 Java, Android 并不支持所有的 Java 功能。虽然 android 完全支持 Java 7,但 android 只支持 Java 8 所有特性中的一部分。
然而,已证实的是,Kotlin 在 android studio 中得到了更有效的支持。因此,如果想要支持编程语言的全部功能,你可以放心地选用 Kotlin。如果您计划在未来构建多个 APP,Kotlin 是一个完美的选择。
处理“Null”的能力
当您使用 Java 时,您可以将“Null”分配给任何变量。当您使用带有 null 值的对象引用时,会遇到一个麻烦,因为会得到一个“NullPointerException”异常。
在 Kotlin,这是它最大的优势之一。在 Kotlin 中,没有“数据类型”可以将 null 作为默认值。如果开发人员希望在“可设定为无效的(nullable)”变量中保留 null 值,则必须显式地去定义它。这样就从根本上消除了“NullPointerException”。
处理长时间运行的网络 I/O 或 CPU 密集型任务
Java 允许多线程在后台运行,但是它的处理机制很复杂,在单独一个线程中实现长时间运行的 I/O 或 CPU 密集型操作的功能。
而在 Kotlin 中,开发人员可以运行多个线程。它支持线程的并发协同。这些机制在一定程度上使得取消一个线程执行的时候,并不会阻塞任何其他线程。
因此,在处理长时间运行的网络 I/O 或 CPU 密集型任务方面,Kotlin 比 Java 更具有领先优势。
开发人员成本
2018 年底,Kotlin 编程是最受欢迎、最赚钱的技能之一。Kotlin 开发人员的平均年薪约为 14 万美元。
随着 Android APP 需求的增长,对精通 Kotlin 编程的开发人员的需求也在增加。因此,你应该放长眼光未雨绸缪地让自己的技能做好准备。
相比之下,Java 开发人员的雇佣成本在招聘 Kotlin 的雇佣方那里是可以承受的。因为市场上实在是有太多 Java 开发人员,你完全可以根据自己的项目需求在招聘中讨价还价。
构建更复杂的产品
如果您的目标是创建更大规模更复杂的产品,那么 Java 仍然是更好的选择,而且由于 Java 比 Kotlin 更成熟,Java 本身的特性更支持构建大规模软件。
另一方面,如果主要目标只是 android 开发,那么你的首选编程语言一定是 Kotlin,因为 Kotlin 生产效率更高,Google 对其支持更好。
性能和编译速度
JetBrains 公司声称 Kotlin 的性能比 Java 好是因为它的速度。Kotlin 支持内联函数,使用 lambda 代码时,这些内联函数让 Kotlin 比 Java 编写的代码运行得更快。
此外,Java 编译干净版本的速度比 Java 要快 10-15%。然而,在编译方面,Kotlin 和 Java 结果相近,或者 Kotlin 稍好一点。
6 Java 在哪些方面仍然保持其领先地位?
Kotlin 可能是新鲜事物,并且迅速地受到开发人员青睐,但是除了编程语言成熟度之外,Java 和 Kotlin 相比仍然有一些优势。而且,许多开发人员仍然更喜欢使用 Java 来进行 Android 开发。
Kotlin 中不支持下列功能:
7 结语
选择最好的编程语言可能是一项棘手的工作。Java 和 Kotlin 都各有其优点。因此,要帮你做出正确的选择,还需要考虑这两个平台的长期发展战略。
您不能忽视这样一个事实,即 Google 自身正在逐渐远离 Java 语言。但另一方面,Java 作为许多开发人员的首选编程语言已经很长时间了。
由于结构上的相似性,这两种编程语言可以在一个项目中共存。
原文链接:
点个在看少个 bug