transient:修饰变量,指示变量为不需要进行序列化(持久化)的属性
序列化是使对象的状态持久化的过程。这意味着对象的状态被转换为字节流,用于持久化(例如,将文件存储在文件中)或传输(例如,通过网络发送字节)。以同样的方式,我们可以使用反序列化从字节中恢复对象的状态。序列化主要用于网络编程是Java编程中的重要概念之一。需要通过网络传输的对象必须转换为字节。为此,这些类或接口需要实现该Serializable接口。
在某些情况下,可能希望避免持久化某些变量,因为您不需要持久保存这些变量,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。静态(static)变量不会被序列化,因此不需要用transient修饰
instanceof:用来测试它左边的对象是否是它右边的类的实例,返回boolean类型
null用操作符instanceof测试任何类型时都是返回false
final:可以声明成员变量、方法、类以及本地变量,将引用声明为final,将不能改变这个引用了,编译器会检查代码,在你试图将变量再次初始化时,编译器会报编译错误。
final变量:不可变,只读,作为常量
final方法:声明方法表示方法不可被子类覆盖
final类:String,Integer等包装类,不能被继承
使用final关键字在jvm和Java应用中会缓存数据,提高性能;在多线程环境下安全的共享;jvm会对final变量,方法,类进行优化
static:用来修饰变量,方法,表示静态的意思,所有成员共享,可以直接通过className调用
用static修饰,在类被加载时就已经"准备好了",也就是可以被使用或者已经被执行,可以脱离对象而执行
volatile、synchronized
用于多线程操作,详见多线程部分