中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中final域的內存語義是什么

發布時間:2021-05-12 10:10:18 來源:億速云 閱讀:130 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關java中final域的內存語義是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1、說明

對于final域的內存語義,編譯器和處理器要遵守兩個重排序規則(內部實現也是使用內存屏障):

寫final域的重排序規則:在構造函數內對一個final域的寫入,與隨后把這個被構造對象的引用賦值給一個引用變量,這兩個操作之間不能重排序。

讀final域的重排序規則:初次讀一個包含final域的對象的引用,與隨后初次讀這個final域,這兩個操作之間不能重排序。

2、實例

public class FinalExample {
       int i;//普通域
       final int j;//final域
       static FinalExample obj;
       
       public FinalExample () {
              i = 1;//寫普通域。對普通域的寫操作【可能會】被重排序到構造函數之外
              j = 2;//寫final域。對final域的寫操作【不會】被重排序到構造函數之外
       }
       
       // 寫線程A執行
       public static void writer () {?   
              obj = new FinalExample ();
       }
       
       // 讀線程B執行
       public static void reader () {?   
              FinalExample object = obj;//讀對象引用
              int a = object.i;//讀普通域。可能會看到結果為0(由于i=1可能被重排序到構造函數外,此時y還沒有被初始化)
              int b = object.j;//讀final域。保證能夠看到結果為2
       }
}

常用的java框架有哪些

1.SpringMVC,Spring Web MVC是一種基于Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架。2.Shiro,Apache Shiro是Java的一個安全框架。3.Mybatis,MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。4.Dubbo,Dubbo是一個分布式服務框架。5.Maven,Maven是個項目管理和構建自動化工具。6.RabbitMQ,RabbitMQ是用Erlang實現的一個高并發高可靠AMQP消息隊列服務器。7.Ehcache,EhCache 是一個純Java的進程內緩存框架。

關于“java中final域的內存語義是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延吉市| 保山市| 普格县| 台中县| 凤山县| 朔州市| 阳新县| 壶关县| 秭归县| 张掖市| 廊坊市| 光泽县| 临颍县| 西峡县| 汶上县| 遂川县| 浦江县| 杭州市| 阿巴嘎旗| 盐城市| 北宁市| 榆社县| 山丹县| 遂平县| 沽源县| 渝北区| 温州市| 久治县| 乌兰察布市| 宝应县| 清镇市| 阿巴嘎旗| 双桥区| 红桥区| 丰城市| 绵阳市| 华坪县| 通辽市| 浙江省| 北碚区| 邻水|