Kotlin与Java语言使用对比(一)【基础概览】

前言

         本文的基础概览简单介绍了kotlin与java的总体区分,后期将持续完善。

基础概览

类型

kotlin

java

相同点

包的定义与导入 目录与包的结构无需匹配:
源代码可以在文件系统的任意位置
目录与包的结构需匹配 package my.demo

import kotlin.text.*
程序入口点 fun main() {
    println("Hello world!")
}
public static void main(String[] args){
    System.out.println("test");
}
 
函数定义 fun sum(a: Int, b: Int): Int {
    return a + b
}
public int sum(int a,int b){
    return a+b;
}
 
变量的定义 定义只读局部变量使用关键字 val 定义。
只能为其赋值一次。
val a: Int = 1  // 立即赋值
val b = 2   // 自动推断出 `Int` 类型
val c: Int  // 如果没有初始值类型不能省略
c = 3       // 明确赋值
采用final实现  
可重新赋值的变量使用 var 关键字。
var x = 5 // 自动推断出 `Int` 类型
x += 1
常规实现  
注释 —— —— // 这是一个行注释

/* 这是一个多行的
   块注释。 */
条件表达式 缺少二元及三元判断,新增when判断
fun describe(obj: Any): String =
    when (obj) {
        1          -> "One"
        "Hello"    -> "Greeting"
        is Long    -> "Long"
        !is String -> "Not a string"
        else       -> "Unknown"
    }
—— if/else
循环                     ——         —— while 循环
1.新增range概念,类似于python中for循环:
(1)没有index
val items = listOf("apple", "banana", "kiwifruit")
for (item in items) {
    println(item)
}
(2)含index
val items = listOf("apple", "banana", "kiwifruit")
for (
index in items.indices) {
    println("item at $index is ${items[index]}")
}
2.增强forEach
(1)常规forEach
 
items.forEach {  }
(2)增强forEach
 
items.forEachIndexed { index, s ->  }
(1)for(int i=0;i< items.length;i++){
}
(2)for(String item:items){
}
 
创建类及基本类 val rectangle = Rectangle(5.0, 2.0)
val triangle = Triangle(3.0, 4.0, 5.0)
关键字new:
Object object = new Object()
 
总类 条目 kotlin    Java         相同点
基本类型 数字 基本面向对象去除掉Java中的int、byte、short等基本型
1.Byte (8位 范围-128~127)
2.Short (16位 范围-32768~ 32767)
3.Int (32位 范围 -2,147,483,648 (-2^31)~ 2,147,483,647 (2^31 - 1)
4.Long (64位 范围-9,223,372,036,854,775,808 (-2^63) ~9,223,372,036,854,775,807 (2^63 - 1)
5.Float (32位 有效24)
6.Double (64位 有效53)
7.转换(支持显示装换与隐式装换)
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char

8.数字支持下划线分隔易读
val creditCardNumber = 1234_5678_9012_3456L
9.支持可空引用(如 Int?)或泛型
1-6:比kotlin多了基本型(如short:首字母小写)
7.采用parseInt或者Integer.valueOf(*)
1.取值范围
2.四则运算
3.位运算
4.浮点比较
字符 1.字符用 Char 类型表示。它们不能直接当作数字    
布尔 1.布尔用 Boolean 类型表示,它有两个值:true 与 false

若需要可空引用布尔会被装箱。

内置的布尔运算有:

|| – 短路逻辑或
&& – 短路逻辑与
! - 逻辑非
与kotlin不同的形式boolean基本型  
数组 1.数组在 Kotlin 中使用 Array 类来表示,它定义了 get 与
 set 函数(按照运算符重载约定这会转变为 [])以及 size
属性,以及一些其他有用的成员函数
2.库函数arrayOf() 来创建一个数组并传递元素值给它,
这样 arrayOf(1, 2, 3)
3.引入类型投影,Kotlin 中数组是不型变的(invariant)。
这意味着 Kotlin 不让我们把 Array<String> 赋值给
 Array<Any>,以防止可能的运行时失败
(但是你可以使用 Array<out Any>
4.原数组ByteArray、 ShortArray、IntArray
int[] array = {1,2,3}  
无符号整型 与C,C++语言中unit类似    
字符串 1.字符串用 String 类型表示。字符串是不可变的。
字符串的元素——字符可以使用索引运算符访问: s[i]
2.引入字符模板,在想使用‘+’时优先使用它。
3.原始字符串 使用三个引号(""")分界符括起来,
内部没有转义并且可以包含换行以及任何其他字符,就类似于多行注释。
—— 对字符串的操作
基本保持不变

猜你喜欢

转载自blog.csdn.net/baidu_33512336/article/details/107535417