Java中各种关键字
transient
不需要序列化的属性前面添加关键字transient,序列化对象的时候,这个属性就不会被序列化
instance of
instanceof运算符的前一个操作符是一个引用变量,后一个操作数通常是一个类(可以是接口),用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是返回true,否则返回false。
final
- 修饰变量:final修饰基本数据类型的变量时,必须赋予初始值且不能改变,修饰引用变量时,该引用变量不能再指向其他对象。
- 修饰方法:方法前面加上final关键字,代表这个方法不可以被子类的方法重写。
- 修饰类:final类通常是完整的,不能被继承。
static
- static关键字修饰变量时,会使该变量在类加载时就会被初始化,不会因为对象的创建再次被加载,当变量被static 修饰时就代表该变量只会被初始化一次
volatile
- 保证可见性
- 不保证原子性
- 禁止指令重排
synchronized
1、同步方法
- 修饰实例方法:作用于当前实例加锁,进入同步代码前要获得当前实例的锁
- 修饰静态方法:作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁
使用synchronized修饰的方法,就叫做同步方法,保证线程A执行该方法的时候,其他线程只能等待。
2、同步代码块 - 修饰代码块:指定加锁对象,对给定对象加锁,进入同步代码前要获得给定对象的锁
const
- const修饰的数据类型是指常类型,常类型的变量或对象的指是不能被更新的。