2021-07-08 final关键字

static c++/java   静态的 所有的类共用

final  java           常量的   定义就初始化 初始化后不可改变

const c++          常量的

参考https://www.cnblogs.com/dolphin0520/p/3736238.html



【final】 

1.基础

修饰 变量  

    修饰普通变量 : 常量,定义时赋值,不可改变

    修饰引用变量:引用关系不可改变

    修饰类成员变量:在定义时或者构造器中进行初始化赋值


修饰 类

    不能被继承,所有方法都是final


修饰类 成员方法

    不能被子类覆盖

    内嵌


2. final 扩展知识:

总结:

1.final修饰的变量都是 编译器常量吗 —— 不是

2.编译器和处理器 为了优化性能会对 指令进行重排 , final 也有指令重排

3.多线程 final安全吗 —— 安全,读写final变量的时候 编译器优化指令重排 会加锁



匿名内部类中使用的外部局部变量为什么只能是final变量

https://www.pdai.tech/md/java/thread/java-thread-x-key-final.html#final%E5%9F%9F%E9%87%8D%E6%8E%92%E5%BA%8F%E8%A7%84%E5%88%99

处理器和编译为了性能优化会对指令序列有编译器和处理器重排序


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容