一、常量和变量
在java定义中定义变量;
int a=2;
a=35;
double price=19.28;
price =20.88;在Kotlin中等价的定义变量:
var a=2;
a=35;
var price=19.28;
price =20.88;Kotlin的只读变量:
//在Java的函数中定义局部常量:
final int b=3;
//等价于在Kotlin函数里定义局部常量:
val b=3;
//但是,如果在类中将val b定义为成员属性时,它就不再是一个常量了,也不能叫常量
//而是叫只读变量,因为它可以定义一个get()方法,每次读出来会返回不同的值:
class Student{
   val score:int  //只读变量
     get(){
       return (Math.random()*100).toInt();
     }
}所以,val定义的量统一称作只读变量。

编译期常量
//Java编译期常量定义:编译时完成初始化赋值,初始化完成后不可修改
static final int b=3;
/**
 * Kotlin中编译期常量:编译时完成初始化赋值,初始化完成后不可修改
 * 只能定义在全局范围;
 * 只能修饰基本数据类型;
 * 必须立即用字面量初始化;
 **/
const val b=3  总结:
给 Java程序员的提示: 编译期常量(const val)相当于Java中public final static所修饰的常量。而运行期常量(val)相当于Java中final所修饰的常量。
常量引用
在声明引用类型使用val ,对象的引用不会被修改,但是引用内容可以修改,这样会更加安全,也符合函数式编程的技术要求
