一、Kotlin、Java基本类型参照表
| 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"。
- 
Kotlin与Java声明变量对比
 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中的值比较通过==操作符来进行,这个有异于Java(Java中是通过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 :比较内容,等价于Java的equals。
- a === b :比较对象是否是同一个对象。
 
- a == b :比较内容,等价于
- 字符串模板
- “Hello,$name”=>"Hello,小明"
 
