📜  Android 中Java和 Kotlin 的区别与示例

📅  最后修改于: 2021-09-10 02:54:44             🧑  作者: Mango

科特林

KOTLIN 是一种跨平台、静态类型、具有类型推断功能的通用编程语言。 KOTLIN 旨在与Java完全互操作,但类型推断使其语法更加简洁。KOTLIN 由 JetBrains 和 Google 通过 Kotlin 基金会赞助。

Java

Java是一种面向对象的编程语言,由 JAMES GOSLING 和 SUN MICRO SYSTEMS 的同事于 1991 年开发。该语言最初称为OAK 。它被开发为一种成熟的编程语言,可以在其中完成相同类型的任务并解决可以在其他编程语言(如 BASIC、C++ 等)中完成的类似问题。

在 Android 中使用 Kotlin over Java语言

将 Kotlin 引入 Android 进步的最大原因是减少代码行数,使开发准备更方便。可以使用Java完成的所有事情都可以使用 Kotlin 进行 Android 开发。

例如:

  • 不需要 findViewByIds:它用于查找具有给定 ID 的第一个后代视图。
    Java

    TextView text = (TextView) findViewById(R.id.textView);
    text.setText(“Hello World”);

    科特林
    textView.setText("Hello World")

  • 摆脱空指针异常
    NullPointerExceptions 是让Java设计者失望的一大原因。在 Kotlin 中,默认情况下所有排序都是不可为空的(无法保存空值)。如果代码尝试在 Kotlin 中使用或返回 null,则会显示编译时错误。
    var a: String = "abc"
    // compilation error
    a = null
  • 数据类:我们经常创建类来保存一些数据。在这样的类中,一些标准函数通常可以从数据中推导出来。在 Kotlin 中,这种类型的类称为数据类并标记为数据。
    data class User(val name: String, val age: Int)

根据它们的特性,这两种语言有很多不同之处

Features Kotlin Java
1. Extension Functions It is already available in Kotlin In java, we need to create class
2. Null Safety It is available in Kotlin It is not available in Java
3. Static Members Kotlin doesn’t have a static member for a class It is available in Java
4. String Templates Yes, there are two types of string literals in Kotlin It is available in Java too but it doesn’t support expression like Kotlin
5. Wildcard Types It is not available in Kotlin Available in Java
6. Smartcasts Available in Kotlin Not Available in Java
7. No Checked Exceptions Kotlin removed exceptions entirely It is problematic in Java
8. Operator Overloading Kotlin allows users to provide a way to invoke functions Operators are tied to particular Java Types
9. Constructors It has primary constructor and secondary constructor Constructors can be used to take parameters to initialize attributes
10. Type System It gives nullability support, type inference, and universal guards There are other kinds of reference types related to the basic concept of class

尽管两种语言之间存在所有差异,但Java和 Kotlin 是 100%可互操作的。您可以从Java调用 Kotlin 代码,也可以从 Kotlin 调用Java代码。因此,可以在同一个项目中并排使用 Kotlin 和Java类,并且所有内容仍然可以编译。

想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!