科特林
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 的第一个后代视图。
JavaTextView 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类,并且所有内容仍然可以编译。