transient
- transient关键字只能用来修饰变量,本地变量不能被transient关键字修饰
- 被transient修饰的变量不能再被序列化,静态变量无论是否被transient修饰,都不会被序列化
instanceof
Java的保留关键字,用来判断instanceof左边的实例是否是右边类的实例,返回boolean值。
- 例:
- String s = new String("aa");
- System.out.print(s instanceof Object);
- s 是Object的实例 返回 true
synchronized
synchronized是Java并发编程里面不可缺少的,他一次只允许一个线程进入标记的代码段,从而避免多条线程同时修改一条数据。
- 修饰实例方法
- 修饰静态方法
- 修饰代码块
volatile
和synchronized相似,针对并发问题,执行效率优于synchronized,但不满足原子性,可见性和有序性的原子性。
final
final最终的意思
- 修饰一个类的时候,这个类不能被继承
- 修饰一个方法的时候,该方法不能被重写(父类的方法如果是private修饰的,隐式的加了final修饰)
- 修饰成员变量,前提这个变量必须要有初始值,如果是基本类型,那值不会被改变;如果是引用类型,那地址不会变,引用的对象里的内容可以变。
static
- static 修饰内部类,方法,属性,代码块,被static修饰的都是在类加载的时候加载
- 修饰属性:该属性是公共资源,通过类.属性名获取值
- 修饰方法:节省了实例对象的时间和空间,可以直接类.方法名调用方法,方法中不能使用super和this关键字,不能调用非static方法
- 修饰代码块:被static修饰的代码块只会被执行一次
- 修饰内部类就比较牛逼了: 静态内部类,静态内部类不需要指向外部类的引用,而非静态的要;静态内部类不能访问外部非静态的成员变量和方法,非静态内部类可以访问外部类的所有成员;一个非静态类必须要外部类的创建才能创建,而静态内部类不用,可以直接创建。
const
java保留字,不出现