最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java多線程關(guān)鍵字final和static詳解

 更新時(shí)間:2020年01月08日 09:26:40   作者:sowhat1943  
這篇文章主要介紹了java多線程關(guān)鍵字final和static詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了java多線程關(guān)鍵字final和static詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

final關(guān)鍵字

1.final關(guān)鍵字在單線程中的特點(diǎn):   

1)final修飾的靜態(tài)成員:必須在進(jìn)行顯示初始化或靜態(tài)代碼塊賦值,并且僅能賦值一次。

2)final修飾的類成員變量,可以在三個(gè)地方進(jìn)行賦值:顯示初始化、構(gòu)造代碼塊和構(gòu)造方法,并且僅能賦值一次。

3)final修飾的局部變量,必須在使用之前進(jìn)行顯示初始化(并不一定要在定義是賦值),僅能賦值一次。

總之,final修飾的靜態(tài)成員必須在類加載完之前進(jìn)行賦值,final修飾的成員變量,必須在對(duì)象創(chuàng)建完之前進(jìn)行賦值。

補(bǔ)充:final修飾的基本數(shù)據(jù)類型不能被重新賦值,final修飾的引用數(shù)據(jù)類型,引用類型的地址不能改變,引用類型的內(nèi)部屬性可以改變。

2. final在多線程的作用  

  由于重排序的作用,一個(gè)線程讀取到一個(gè)對(duì)象的引用時(shí),該對(duì)象可能尚未初始化完畢,即這些線程可能讀取到該對(duì)象字段的默認(rèn)值而不是初始值。

final關(guān)鍵字具有特殊的作用:當(dāng)一個(gè)對(duì)象發(fā)布到其他線程的時(shí)候,該對(duì)象的所有final字段都是初始化完成的,即其他線程讀取到的都是相應(yīng)字段的初始值而不是默認(rèn)值。而非final字段就沒有這種保障。

對(duì)于final修飾的引用類型的字段,該字段還能保障該字段所引用的對(duì)象 初始化完畢。

這種機(jī)制是通過禁止重排序?qū)崿F(xiàn)的:

對(duì)于final變量的寫:禁止final域的寫重排序到構(gòu)造方法之外,即得到一個(gè)對(duì)象的引用時(shí),其內(nèi)部的final域必定已被初始化完畢。

對(duì)于final域的讀:禁止初次讀該對(duì)象的引用與讀該對(duì)象包含的final域進(jìn)行重排序。

這兩種重排序都是底層是通過內(nèi)存屏障實(shí)現(xiàn)的,編譯器會(huì)在final域?qū)懼螅瑯?gòu)造函數(shù)執(zhí)行完之前插入一個(gè)storestore屏障,在讀final域之前插入一個(gè)loadload屏障。

static關(guān)鍵字

static關(guān)鍵字能夠保證一個(gè)線程即使在未使用其他線程同步機(jī)制的情況下也總是可以讀到一個(gè)類靜態(tài)變量的初始值,但這種可見性的保障僅限于 初次讀取該變量

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入剖析Java中String類的concat方法

    深入剖析Java中String類的concat方法

    這篇文章主要介紹了Java中String類的concat方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Mybatis實(shí)現(xiàn)一對(duì)多映射處理

    Mybatis實(shí)現(xiàn)一對(duì)多映射處理

    MyBatis是一種流行的Java持久化框架,這篇文章主要為大家介紹了Mybatis如何實(shí)現(xiàn)一對(duì)多映射處理,文中的示例代碼講解詳細(xì),需要的可以參考下
    2023-08-08
  • Java中數(shù)組在內(nèi)存中存放原理的講解

    Java中數(shù)組在內(nèi)存中存放原理的講解

    今天小編就為大家分享一篇關(guān)于Java中數(shù)組在內(nèi)存中存放原理的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Java創(chuàng)建型模式之建造者模式詳解

    Java創(chuàng)建型模式之建造者模式詳解

    建造者模式,是一種對(duì)象構(gòu)建模式 它可以將復(fù)雜對(duì)象的建造過程抽象出來,使這個(gè)抽象過程的不同實(shí)現(xiàn)方法可以構(gòu)造出不同表現(xiàn)的對(duì)象。本文將通過示例講解建造者模式,需要的可以參考一下
    2023-02-02
  • 基于Java?SpringBoot的前后端分離信息管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)

    基于Java?SpringBoot的前后端分離信息管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)

    當(dāng)今社會(huì),人才的流動(dòng)速度大大增加,因此也對(duì)黨建工作的管理層面工作帶來了空前且復(fù)雜的挑戰(zhàn),從而使得如何高效的開展管理黨建工作成為了亟待解決的問題。本文將介紹通過Java?SpringBoot實(shí)現(xiàn)前后端分離信息管理系統(tǒng),感興趣的同學(xué)可以了解一下
    2021-11-11
  • Java實(shí)現(xiàn)通過IP獲取IP歸屬地的方法(離線+在線)

    Java實(shí)現(xiàn)通過IP獲取IP歸屬地的方法(離線+在線)

    我們都知道安全攻擊都是在某臺(tái)客戶機(jī)上執(zhí)行某些惡意操作致使服務(wù)端響應(yīng)異常崩潰亦或響應(yīng)數(shù)據(jù)被篡改,首先我想到的是對(duì)訪問的web端做一個(gè)IP的校驗(yàn),那么我們首先得知道客戶端的IP是多少,接下來此文重點(diǎn)介紹如何獲得,需要的朋友可以參考下
    2023-10-10
  • java分布式緩存方案

    java分布式緩存方案

    本文簡(jiǎn)單介紹了緩存的種類,緩存常見的問題,對(duì)大家的學(xué)習(xí)和工作有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2021-08-08
  • maven私服搭建的實(shí)現(xiàn)步驟

    maven私服搭建的實(shí)現(xiàn)步驟

    本文主要介紹了maven私服搭建的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 詳解SpringBoot 應(yīng)用如何提高服務(wù)吞吐量

    詳解SpringBoot 應(yīng)用如何提高服務(wù)吞吐量

    這篇文章主要介紹了Spring Boot 應(yīng)用如何提高服務(wù)吞吐量,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • collection集合體系與并發(fā)修改異常的解決方法

    collection集合體系與并發(fā)修改異常的解決方法

    今天小編就為大家分享一篇關(guān)于collection集合體系與并發(fā)修改異常的解決方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評(píng)論

乐至县| 建德市| 来安县| 苏州市| 白城市| 玛曲县| 莆田市| 全椒县| 大丰市| 盱眙县| 铅山县| 吴江市| 广西| 北海市| 准格尔旗| 龙游县| 佛学| 应城市| 新邵县| 呈贡县| 吴堡县| 黑水县| 临海市| 德清县| 兴化市| 贵南县| 南部县| 宿松县| 渭源县| 石渠县| 安国市| 额济纳旗| 肇源县| 远安县| 甘德县| 乌审旗| 沙湾县| 抚州市| 盐亭县| 昌吉市| 织金县|