欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Java transient關鍵字

系統 2268 0

Volatile修飾的成員變量在每次被線程訪問時,都強迫從主內存中重讀該成員變量的值。而且,當成員變量發生變化時,強迫線程將變化值回寫到主內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。???
??
Java語言規范中指出:為了獲得最佳速度,允許線程保存共享成員變量的私有拷貝,而且只當線程進入或者離開同步代碼塊時才與共享成員變量的原始值對比。???
??
這樣當多個線程同時與某個對象交互時,就必須要注意到要讓線程及時的得到共享成員變量的變化。???
??
而volatile關鍵字就是提示VM:對于這個成員變量不能保存它的私有拷貝,而應直接與共享成員變量交互。???
??
使用建議:在兩個或者更多的線程訪問的成員變量上使用volatile。當要訪問的變量已在synchronized代碼塊中,或者為常量時,不必使用。???
??
由于使用volatile屏蔽掉了VM中必要的代碼優化,所以在效率上比較低,因此一定在必要時才使用此關鍵字。???
??
java關鍵字Transient ???
??
轉自http:
// horst.sun.blog.163.com/blog/static/348849612007614494492/???
??
翻譯自http:
// www.devx.com/tips/Tip/13726。???
??
Java的serialization提供了一種持久化對象實例的機制。當持久化對象時,可能有一個特殊的對象數據成員,我們不想???
用serialization機制來保存它。為了在一個特定對象的一個域上關閉serialization,可以在這個域前加上關鍵字transient。???
transient是Java語言的關鍵字,用來表示一個域不是該對象串行化的一部分。當一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。??
注意static變量也是可以串行化的?
??
首先,讓我們看一些Java?serialization的代碼:???
public ? class ?LoggingInfo? implements ?java.io.Serializable???
{???
????
private ?Date?loggingDate? = ? new ?Date();???
????
private ?String?uid;???
????
private ? transient ?String?pwd;???
??????
????LoggingInfo(String?user,?String?password)???
????
{???
????????uid?
= ?user;???
????????pwd?
= ?password;???
????}
???
????
public ?String?toString()???
????
{???
????????String?password
= null ;???
????????
if (pwd? == ? null )???
????????
{???
????????password?
= ? " NOT?SET " ;???
????????}
???
????????
else ??
????????
{???
????????????password?
= ?pwd;???
????????}
???
????????
return ? " logon?info:?\n??? " ? + ? " user:? " ? + ?uid? + ???
????????????
" \n???logging?date?:? " ? + ?loggingDate.toString()? + ???
????????????
" \n???password:? " ? + ?password;???
????}
???
}
???
??
現在我們創建一個這個類的實例,并且串行化(serialize)它?,然后將這個串行化對象寫如磁盤。???
??
LoggingInfo?logInfo?
= ? new ?LoggingInfo( " MIKE " ,? " MECHANICS " );???
System.out.println(logInfo.toString());???
try ??
{???
???ObjectOutputStream?o?
= ? new ?ObjectOutputStream(???
????????????????
new ?FileOutputStream( " logInfo.out " ));???
???o.writeObject(logInfo);???
???o.close();???
}
???
catch (Exception?e)? { // deal?with?exception}???
??
To?read?the?object?back,?we?can?write???
??
try ??
{???
???ObjectInputStream?in?
= new ?ObjectInputStream(???
????????????????
new ?FileInputStream( " logInfo.out " ));???
???LoggingInfo?logInfo?
= ?(LoggingInfo)in.readObject();???
???System.out.println(logInfo.toString());???
}
???
catch (Exception?e)? { // deal?with?exception}???
??
如果我們運行這段代碼,我們會注意到從磁盤中讀回(read——back?(de
- serializing))的對象打印password為 " NOT?SET " 。這是當我們定義pwd域為transient時,所期望的正確結果。???
現在,讓我們來看一下粗心對待transient域可能引起的潛在問題。假設我們修改了類定義,提供給transient域一個默認值,???
代碼如下:???
??
public ? class ?GuestLoggingInfo? implements ?java.io.Serializable???
{???
????
private ?Date?loggingDate? = ? new ?Date();???
????
private ?String?uid;???
????
private ? transient ?String?pwd;???
??????
????GuestLoggingInfo()???
????
{???
????????uid?
= ? " guest " ;???
????????pwd?
= ? " guest " ;???
????}
???
????
public ?String?toString()???
????
{???
????????
// same?as?above???
?????}
???
}
???
現在,如果我們穿行化GuestLoggingInfo的一個實例,將它寫入磁盤,并且再將它從磁盤中讀出,我們仍然看到讀回的對象打印password?為?
" NOT?SET " 。當從磁盤中讀出某個類的實例時,實際上并不會執行這個類的構造函數,???
而是載入了一個該類對象的持久化狀態,并將這個狀態賦值給該類的另一個對象。?

Java transient關鍵字


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人在线| 日韩国产在线 | 国产 在线 | 日韩 | 欧美在线看 | 三上悠亚2022最新新作番号 | 九九51精品国产免费看 | a免费国产一级特黄aa大 | 免费看一级欧美毛片视频 | 亚洲狠狠婷婷综合久久久久图片 | 亚洲精品美女久久久久 | 欧美一级毛片在线 | 看黄网站在线看 | 狠狠色丁香婷婷综合久久来 | 第三级视频在线观看 | 国产午夜亚洲精品 | 久久精品国产免费 | 麻豆网站入口 | 成人做爰高潮片免费视频韩国 | 久久久久伊人 | 国产一区在线观看免费 | 亚洲高清在线 | 国产成人18黄禁网站免费观看 | 多男操一女视频 | 成人午夜亚洲影视在线观看 | 超碰97免费观看 | 91免费版在线观看 | 97婷婷狠狠成人免费视频 | 精品国产不卡一区二区三区 | 成人a视频片在线观看免费 中文字幕三区 | 欧美一级艳片视频免费观看 | 秋霞理论在线视频 | 亚洲免费在线视频 | 蜜桃视频在线免费播放 | 国产激情91久久精品导航 | 久久精品a | 2021精品国产综合久久 | 婷婷久久爱www | 欧美一级特黄aaaaaaa在线观看 | 韩国精品一区 | 成年免费大片黄在线观看岛国 | 色综合久久天天综合绕观看 |