首页 > 编程语言 > 详细

Java中的关键字【final static volatile 】

时间:2019-06-09 17:06:23      阅读:99      评论:0      收藏:0      [点我收藏+]

final

修饰类:禁止继承该类。为啥String使用final修饰?String的不可变性,无法修改。避免继承修改该语义。

修饰变量:表示不能改变引用。即C已经引用了A,C不能再引用B。

 

static:

修饰变量:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。static成员变量的初始化顺序按照定义的顺序进行初始化。

     static变量的生命周期是和类的生命周期相同的(类卸载的时候,该static变量也会被销毁)。

  类的生命周期:一般情况下,默认的系统类加载器在程序运行期间,是不会主动卸载类的,也就是说类的生命周期和进程运行的生命周期相同,特殊情况下,使用自定义的类加载器,可以主动的卸载某个类,对应该类的生命周期也会终止;

   在类使用完之后,如果满足下面的情况,类就会被卸载:

  • 该类所有的实例都已经被回收,也就是java堆中不存在该类的任何实例。
  • 加载该类的ClassLoader已经被回收。(类加载器?)
  • 该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类的方法。

修饰方法:为类class共有,不属于任何一个实例对象。

static代码块:在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次(很多初始化任务可能只需要执行1次)。

 

volatile :(和Java内存模型有关)

 

Java中的关键字【final static volatile 】

原文:https://www.cnblogs.com/lovelywxd/p/9171948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!