static关键字
一旦用了static关键字,那么这样的内容就不再属于对象自己,而是属于类,所有属于本类的对象都共享一份数据。
final关键字(代表最终,不可改变)
- final修饰类,该类不能被继承
- final修饰方法,该方法不能被重写,并且abstract不能和final同时修饰一个方法。
- final修饰局部变量,就不能被修改,如果是应用类型,地址不能改变,但对象里的属性可以改变。
- final修饰成员变量,必须手动赋值,不再给默认值。
transient关键字
在序列化中,如果你不想某些属性被序列化,则这些属性使用transient修饰。比如密码等敏感信息。
voaltile关键字
解决多线程中可见性问题时使用voaltile关键字。
产生多线程可见性问题的原因:JIT编译导致指令重排
voaltile的作用:1.禁止缓存 2.对voaltile变量相关的指令不再重排