关键字总结

synchronized

synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。

volatile

https://www.cnblogs.com/dolphin0520/p/3920373.html

用来确保将变量的跟新操作通知到其他线程,当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。然而,在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比 synchronized关键字更轻量级的同步机制。

  •  每次从内存中取值,不从缓存中什么的拿值。这就保证了用 volatile修饰的共享变量,每次的更新对于其他线程都是可见的。
  • volatile保证了其他线程的立即可见性,有序性,没有保证原子性。
  • 由于有些时候对 volatile的操作,不会被保存,说明不会造成阻塞。不可用于多线程环境下的计数器。

使用volatile必须具备以下2个条件:

  1)对变量的写操作不依赖于当前值

  2)该变量没有包含在具有其他变量的不变式中

为了解决缓存不一致性问题,通常来说有以下2种解决方法:

  1)通过在总线加LOCK#锁的方式

  2)通过缓存一致性协议(MESI协议(Modified Exclusive Shared Or Invalid))

serialize

Java 对象序列化为二进制文件。

static

static关键字可以修饰变量,方法,静态代码块。归类所有,该类的所有对象公用

  •  由static修饰的变量称为静态变量
  •  静态变量属于类,而不属于某个对象
  •  静态变量它的副本只有一个(静态变量在类中只加载一次)
  • static不能修饰局部变量
  •  在静态方法中只能调用静态变量和静态方法
  •  在非静态方法中,可以调用静态方法或者变量。
  • 在静态方法中不能使用this和super关键字。
  • 静态语句块中的变量为局部变量,不影响静态语句块外静态变量的值
  • 类方法中不能引用对象变量;
  • 类方法中不能调用类的对象方法;
  • 类方法不能被覆盖

 静态代码块 作用:用来给静态成员变量初始化

final

  • final修饰类中的属性或者变量 无论属性是基本类型还是引用类型,final所起的作用都是变量里面存放的“值”不能变。这个值,对于基本类型来说,变量里面放的就是实实在在的值,如1,“abc”等。而引用类型变量里面放的是个地址,所以用final修饰引用类型变量指的是它里面的地址不能变,并不是说这个地址所指向的对象或数组的内容不可以变,这个一定要注意。例如:类中有一个属性是final Person p=new Person("name"); 那么你不能对p进行重新赋值,但是可以改变p里面属性的值,p.setName('newName')
  • 对final属性可以在三个地方赋值:声明时、初始化块中、构造方法中。总之一定要赋值。 引用的不可变性    
  • 方法不能被重写。
  • 类不可以被继承。
  • final类不能被继承,方法不能被重写,但不表示final类的成员变量也是不可改变的,要想做到不可变必须给成员变量添加final

String StringBuffer不能被继承

abstract 修饰符

  • 用来创建抽象类和抽象方法。
  • 抽象类不能实例化,因为有抽象方法未实现
  • 抽象类可以含有静态代码块以及静态方法
  • 可以被继承,子类可以是抽象的,也可以非抽象的
  • 可以通过,调用静态方法直接使用,不一定非要被继承
  • 可以被抽象类继承,也可以被非抽象类继承
  • 抽象方法不可以有方法体
  • 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
  • abstract不能与final并列修饰同一个类
  • 子类中的抽象方法不能与父类的抽象方法同名。
  • 抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、final、native访问修饰符修饰。
  • 可定义普通属性

transient

序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值