变量
Java:修饰符 变量类型 变量名 值
private String name = "张三"
可变变量 var关键字
不可变变量 val 关键字【不变性】
var name: String = "张三"
val name: String = "张三" //推荐使用不变性变量
在kotlin中变量、方法等不加修饰符权限统一默认为public
而Java默认是default
【类型推导】
val name = "张三" //kotlin会根据变量值推导出类型,所以类型可以省略,这些省略的代码都会由kotlin编译器将其补上
【空安全】?
/* kotlin中的变量还分为可空变量和不可空变量 */
val name = null //编译报错,因为name是不可空变量,自然不能赋值为null
val name? = null //加上? 说明是可空变量
相互赋值
可空变量不可以直接赋值给不可空变量,因为可空变量有可能是null值;反之可以赋值
kotlin语法取消了分号结尾,简化了编码
基本类型
Java并不是一切皆为对象,因为存在基本数据类型
优点:提高效率,节省空间;出于性能考虑
缺点:无法很好地融入面向对象的系统中
kotlin做到了一切皆为对象,不存在不是对象的原始类型
val int = 1 //Int
val long = 1L //Long
val float = 1.0f //Float
val double = 1.0 //Double
val xx = 0x13 // 0x代表十六进制
val oo = 0b4 //0b代表八进制
val char = 'a' //Char
val byte = 1 //Byte
val boolean = true / false //Boolean
val short = 1 //Short
字符串
val name = "kotlin" //使用和Java一致,kotlin中的字符串也是不可变的
println("name is $name") //字符串模板 支持拼接符 类似JSP写法
println("姓名${name}年龄${age}") //复杂字符串拼接使用大括号,后面接汉字的情况需要使用大括号
原始字符串
使用三引号括起来,保持字符串格式不变
val first = """1.爱国、敬业、诚信、友善
2.自由、平等、公正、法制
3.富强、民主、文明、和谐"""
// kotlin中的原始字符串,定义时是什么样,打印出来就是什么样,省去了Java中的换行符\n等等
数组
Java中的数组由于不属于Java集合,所以不能使用集合中常用的方法,需要使用者记两套方法,kotlin中的数组虽然也不是集合,但是和集合使用相同的方法
// Java中集合和数组的方法不一样
private ArrayL;ist list = new ArrayList<>();
System.out.println(list.size()); //集合获取长度
list.get(0);//集合获取元素
private String[] arrs = {};
System.out.println(arrs.length());//数组获取长度
arrs[0] = 1;//数组获取元素
//k