![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javase
v=luozhaogong
放弃是最终的归宿
展开
-
多线程之 final
final 变量在并发当中,原理是通过禁止cpu的指令集重排序来提供线程的可见性,来保证对象的安全发布,防止对象引用被其他线程在对象被完全构造完成前拿到并使用。 与锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能...原创 2019-01-22 16:35:57 · 631 阅读 · 0 评论 -
String为什么是Final的?
1、Final的用途 final可修饰类、方法、变量 被final修饰的类不可被继承、被修饰的方法不能被重写 被final修饰的变量不可变,必须初始化等 String是被final修饰的类,其属性value[] 是被final修饰的。所以String是不可被继承的,value[]被存储的数据不可更改性 (引用地址不可更改,数组本身可变),但是value[]是private修饰的,而且S...原创 2019-03-25 20:02:12 · 2813 阅读 · 0 评论