Kotlin与Java的异同点有哪些
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,这篇文章主要介绍"Kotlin与Java的异同点有哪些",在日常操作中,相信很多人在Kotlin与Java的异同点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"K
千家信息网最后更新 2024年10月21日Kotlin与Java的异同点有哪些
这篇文章主要介绍"Kotlin与Java的异同点有哪些",在日常操作中,相信很多人在Kotlin与Java的异同点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Kotlin与Java的异同点有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
打印日志
Java
System.out.print("hello world");
System.out.println("hello world");
Kotlin
print("hello world")
println("hello world")
定义变量与常量常
Java
String name = "hello world";
final String name = "hello world";
Kotlin
var name = "hello world"
val name = "hello world"
null声明
Java
String otherName;
otherName = null;
Kotlin
var otherName : String?
otherName = null
空判断
Java
if (text != null) {
int length = text.length();
}
Kotlin
text?.let {
val length = text.length
}
// or simply
val length = text?.length
字符串拼接
Java
String firstName = "Android";
String lastName = "Architect";
String message = "My name is: " + firstName + " " + lastName;
Kotlin
val firstName = "Android"
val lastName = "Architect"
val message = "My name is: $firstName $lastName"
换行
Java
String text = "First Line\n" +
"Second Line\n" +
"Third Line";
Kotlin
val text = """
|First Line
|Second Line
|Third Line
""".trimMargin()
三元表达式
Java
String text = x > 5 ? "x > 5" : "x <= 5";
Kotlin
val text = if (x > 5)
"x > 5"
else "x <= 5"
操作符
java
final int andResult = a & b;
final int orResult = a | b;
final int xorResult = a ^ b;
final int rightShift = a >> 2;
final int leftShift = a << 2;
final int unsignedRightShift = a >>> 2;
Kotlin
val andResult = a and b
val orResult = a or b
val xorResult = a xor b
val rightShift = a shr 2
val leftShift = a shl 2
val unsignedRightShift = a ushr 2
类型判断和转换 (声明式)
Java
Car car = (Car) object;
Kotlin
var car = object as Car
类型判断和转换 (隐式)
Java
if (object instanceof Car) {
Car car = (Car) object;
}
Kotlin
if (object is Car) {
var car = object // 自动识别
}
多重条件
Java
if (score >= 0 && score <= 300) { }
Kotlin
if (score in 0..300) { }
更灵活的case语句
Java
int score = // some score;
String grade;
switch (score) {
case 10:
case 9:
grade = "Excellent";
break;
case 8:
case 7:
case 6:
grade = "Good";
break;
case 5:
case 4:
grade = "OK";
break;
case 3:
case 2:
case 1:
grade = "Fail";
break;
default:
grade = "Fail";
}
Kotlin
var score = // some score
var grade = when (score) {
9, 10 -> "Excellent"
in 6..8 -> "Good"
4, 5 -> "OK"
in 1..3 -> "Fail"
else -> "Fail"
}
for循环
Java
for (int i = 1; i <= 10 ; i++) { }
for (int i = 1; i < 10 ; i++) { }
for (int i = 10; i >= 0 ; i--) { }
for (int i = 1; i <= 10 ; i+=2) { }
for (int i = 10; i >= 0 ; i-=2) { }
for (String item : collection) { }
for (Map.Entry entry: map.entrySet()) { }
Kotlin
for (i in 1..10) { }
for (i in 1 until 10) { }
for (i in 10 downTo 0) { }
for (i in 1..10 step 2) { }
for (i in 10 downTo 0 step 2) { }
for (item in collection) { }
for ((key, value) in map) { }
更方便的集合操作
Java
final List listOfNumber = Arrays.asList(1, 2, 3, 4);
final Map keyValue = new HashMap();
map.put(1, "Android");
map.put(2, "Ali");
map.put(3, "Mindorks");
// Java 9
final List listOfNumber = List.of(1, 2, 3, 4);
final Map keyValue = Map.of(1, "Android",
2, "Ali",
3, "Mindorks");
Kotlin
val listOfNumber = listOf(1, 2, 3, 4)
val keyValue = mapOf(1 to "Android",
2 to "Ali",
3 to "Mindorks")
遍历
Java
// Java 7 and below
for (Car car : cars) {
System.out.println(car.speed);
}
// Java 8+
cars.forEach(car -> System.out.println(car.speed));
// Java 7 and below
for (Car car : cars) {
if (car.speed > 100) {
System.out.println(car.speed);
}
}
// Java 8+
cars.stream().filter(car -> car.speed > 100).forEach(car -> System.out.println(car.speed));
Kotlin
cars.forEach {
println(it.speed)
}
cars.filter { it.speed > 100 }
.forEach { println(it.speed)}
方法定义
Java
void doSomething() {
// logic here
}
void doSomething(int... numbers) {
// logic here
}
Kotlin
fun doSomething() {
// logic here
}
fun doSomething(vararg numbers: Int) {
// logic here
}
带返回值的方法
Java
int getScore() {
// logic here
return score;
}
Kotlin
fun getScore(): Int {
// logic here
return score
}
// as a single-expression function
fun getScore(): Int = score
无结束符号
Java
int getScore(int value) {
// logic here
return 2 * value;
}
Kotlin
fun getScore(value: Int): Int {
// logic here
return 2 * value
}
// as a single-expression function
fun getScore(value: Int): Int = 2 * value
constructor 构造器
Java
public class Utils {
private Utils() {
// This utility class is not publicly instantiable
}
public static int getScore(int value) {
return 2 * value;
}
}
Kotlin
class Utils private constructor() {
companion object {
fun getScore(value: Int): Int {
return 2 * value
}
}
}
// another way
object Utils {
fun getScore(value: Int): Int {
return 2 * value
}
}
Get Set 构造器
Java
public class Developer {
private String name;
private int age;
public Developer(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Kotlin
data class Developer(val name: String, val age: Int)
到此,关于"Kotlin与Java的异同点有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
异同
学习
方法
更多
类型
构造器
帮助
实用
接下来
变量
字符
字符串
常量
操作符
文章
日志
条件
理论
知识
符号
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
查看服务器存储空间命令
解析网络安全ppt
佛山无限软件开发销售厂
数据库字符集和字符序列
怎么防止数据库表同时写
运维服务器是做什么用的
推乐网络技术有限公司招聘
数据库系统集成开发
《网络安全法》自 起旅行
mc混乱服务器推荐
数据库探测
技能计算机网络技术考试
检验访问数据库
兰州网络技术公司招聘
吉林网络安全工程招聘
网络安全舆情信息会议
什么是软件开发平台上云
我国为什么要重视网络安全
智慧九星创客模式系统软件开发
昆仑通泰数据库应用
文件共享服务器能看缩略图
电商系统软件开发哪家好
网络安全问题情况通报
gui 面板显示数据库
数据库题型
二三四五网络安全技术
二哈解说我的世界服务器
数据库的独立模型独立于
数据库中存储过程插入数据
数据库数据剥离是什么意思