Java中transient關(guān)鍵詞的使用-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“Java中transient關(guān)鍵詞的使用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元勉縣做網(wǎng)站,已為上家服務(wù),為勉縣各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

transient的作用及使用方法

我們都知道一個對象只要實現(xiàn)了Serilizable接口,這個對象就可以被序列化,java的這種序列化模式為開發(fā)者提供了很多便利,我們可以不必關(guān)系具體序列化的過程,只要這個類實現(xiàn)了Serilizable接口,這個類的所有屬性和方法都會自動序列化。

然而在實際開發(fā)過程中,我們常常會遇到這樣的問題,這個類的有些屬性需要序列化,而其他屬性不需要被序列化,打個比方,如果一個用戶有一些敏感信息(如密碼,銀行卡號等),為了安全起見,不希望在網(wǎng)絡(luò)操作(主要涉及到序列化操作,本地序列化緩存也適用)中被傳輸,這些信息對應(yīng)的變量就可以加上transient關(guān)鍵字。換句話說,這個字段的生命周期僅存于調(diào)用者的內(nèi)存中而不會寫到磁盤里持久化。

總之,java的transient關(guān)鍵字為我們提供了便利,你只需要實現(xiàn)Serilizable接口,將不需要序列化的屬性前添加關(guān)鍵字transient,序列化對象的時候,這個屬性就不會序列化到指定的目的地中。

transient使用小結(jié)

1)一旦變量被transient修飾,變量將不再是對象持久化的一部分,該變量內(nèi)容在序列化后無法獲得訪問。

2)transient關(guān)鍵字只能修飾變量,而不能修飾方法和類。注意,本地變量是不能被transient關(guān)鍵字修飾的。變量如果是用戶自定義類變量,則該類需要實現(xiàn)Serializable接口。

3)被transient關(guān)鍵字修飾的變量不再能被序列化,一個靜態(tài)變量不管是否被transient修飾,均不能被序列化。

第三點可能有些人很迷惑,因為發(fā)現(xiàn)在User類中的username字段前加上static關(guān)鍵字后,程序運行結(jié)果依然不變,即static類型的username也讀出來為"Alexia"了,這不與第三點說的矛盾嗎?實際上是這樣的:第三點確實沒錯(一個靜態(tài)變量不管是否被transient修飾,均不能被序列化),反序列化后類中static型變量username的值為當(dāng)前JVM中對應(yīng)static變量的值,這個值是JVM中的不是反序列化得出的

“Java中transient關(guān)鍵詞的使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

文章標(biāo)題:Java中transient關(guān)鍵詞的使用-創(chuàng)新互聯(lián)
本文路徑:http://muchs.cn/article28/cdcocp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)外貿(mào)網(wǎng)站建設(shè)、建站公司動態(tài)網(wǎng)站、全網(wǎng)營銷推廣、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)