一、KotlinJava基本类型参照表

Kotlin Java
字节 Byte byte/Byte
整型 Int & Long int/integer & long/Long
浮点型 Float & Double float/Float & double/Double
字符 Char char/Char
字符串 String String

二、声明变量

  • 只读变量(不可重新赋值)
    通过val修饰符声明,我们可以认为它是java中带了final修饰符的变量

    声明变量格式:修饰符 变量名: 类型 = 初始赋值
    示例:
    val b: String = "Hello Kotlin"

  • 可读写变量(可重新赋值)
    通过var修饰符声明。

  • Kotlin支持自动类型推导
    kotlin支持自动类型的推导,可以到达简化代码的作用。
    如:val b: String = "Hello Kotlin"可以直接写成val b = "Hello Kotlin"

  • KotlinJava声明变量对比
    Kotlin声明变量:

    var a: Int = 2
    val b: String = "Hello Kotlin"
    

    Java声明变量:

    int a = 2;
    final String b = "Hello Java";
    

三、易混淆的Long类型标记
Java里,开发者在代码中通过以下方式进行Long类型的声明:

   long a = 12345678910l;// 小写易混淆
   long b = 12345678910L;// 大写方便识别

Kotlin中,声明Long类型变量时,不支持小写L进行类型声明,否则编译器会报错

   val c = 12345678910L

四、Kotlin的数值类型转换
Java中,我们可以通过隐式转换的方式进行数值类型的转换,示例如下:

    int e = 10;
    long f = e;// implicit conversion

Kotlin中,这种行为是不被允许的,这也是争议比较大的一点(支持者认为隐式转换安全性存在问题,反对者认为去除隐式转换给开发者带来一些开发过程中的麻烦),示例代码如下:

    val e: Int = 10
    val f: Long = e.toLong()

五、无符号类型(v1.3)
Kotlin在兼容C时,创造了与之对应的无符号类型,具体如下:

有符号类型 无符号类型
字节 Byte UByte
短整型 Short UShort
整型 Int UInt
长整型 Long ULong
字符串 String String

无符号类型声明变量示例:

    val ua: UInt = 10u
    val ub: ULong = 12345678910u
    val uc: UByte = 1u

六、Kotlin中的变量值比较
kotlin中的值比较通过==操作符来进行,这个有异于JavaJava中是通过equals方法进行值比较,==比较的是变量引用)。

示例:

    val k = "Hello Kotlin"
    val m = String("Hello Kotlin".toCharArray())

    println(k === m) // compare references-比较引用
    println(k==m) // compare values-比较值

Java中则是以下形式:

    String k = "Hello Kotlin";
    String m = new String("Hello Kotlin");

    System.out.println(k==m);// compare references-比较引用
    System.out.println(k.equals(m));// compare values-比较值

七、Kotlin中的字符串

  • 字符串比较
    • a == b :比较内容,等价于Javaequals
    • a === b :比较对象是否是同一个对象
  • 字符串模板
    • “Hello,$name”=>"Hello,小明"