天天看點

transient關鍵字_序列化了解寫在前

寫在前

今天看HashMap源碼,居然又發現一個平時不常用的關鍵字,word天!

transient 什麼玩意,百度翻譯:臨時的,那大概就是說它修飾的是一個臨時變量咯,有什麼用呢?為什麼要用到這個關鍵字呢?

我之前在想,是不是成了銀行的從業人員後就知道使用者的銀行卡密碼了?當然這隻是以前一直困惑的問題,其實到現在也還沒明白…支付寶裡存錢了,馬雲他們家知道我支付寶密碼不???這安全嗎??

學習的越多,越接近真相,之前搞nacos發現nacos的密碼會被什麼MD5值弄一下,再存儲到資料庫中,明明就是nacos5個字母的密碼,存儲到資料庫中就變成了一長串的亂七八糟的字元組合了。後來搞了http,啥中文亂碼處理之類的,發現網絡傳輸還可以加密,我又搞檔案服務元件,發現還有二進制、八進制、十六進制編碼、奇奇怪怪的編碼一混合,哈哈哈,自己都不知道密碼長啥樣了,又放心多了。

從接觸到這個關鍵字,我又聯想到網絡傳輸時輸入的密碼…有了這個關鍵字,又放心了一些.當然,剛剛那些話都是我在瞎掰…

序列化,我了解就是實作Serializable 接口的類就是可以序列化的,起初也不知道有什麼不一樣,但是到了網絡傳輸上,比如寫了個接口,通過Vo Dto傳遞一些值得時候,不實作序列化好像就不好使. 是以實體類一般要實作序列化。

好了,記筆記就記關鍵點吧:

transient 關鍵字

1)transient修飾的變量不能被序列化;

2)transient隻作用于實作 Serializable 接口;

3)transient隻能用來修飾普通成員變量字段;

4)不管有沒有 transient 修飾,靜态變量都不能被序列化;

更多内容可參考以下資料,都分析驗證的挺不錯的。

java中的transient關鍵字詳解

https://blog.csdn.net/qq_44543508/article/details/103232007

小夥子,你真的搞懂 transient 關鍵字了嗎?

https://blog.csdn.net/youanyyou/article/details/88218413

TRANSIENT

https://www.cnblogs.com/tiantanglw/p/9142895.html