国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java中transient關(guān)鍵字用法分析

java中transient關(guān)鍵字用法分析

2019-12-09 14:45Benjamin_whx JAVA教程

這篇文章主要介紹了java中transient關(guān)鍵字用法,以實(shí)例形式分析了java中transient關(guān)鍵字的功能及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例分析了java中transient關(guān)鍵字用法。分享給大家供大家參考。具體分析如下:

java有個(gè)特點(diǎn)就是序列化,簡(jiǎn)單地來(lái)說(shuō)就是可以將這個(gè)類(lèi)存儲(chǔ)在物理空間(當(dāng)然還是以文件的形式存在),那么當(dāng)你從本地還原這個(gè)文件時(shí),你可以將它轉(zhuǎn)換為它本身。這可以極大地方便網(wǎng)絡(luò)上的一些操作,但同時(shí),因?yàn)樯婕暗桨踩珕?wèn)題,所以并不希望把類(lèi)里面所有的東西都能存儲(chǔ)(因?yàn)槟菢樱瑒e人可以通過(guò)序列化知道類(lèi)里面的內(nèi)容),那么我們就可以用上transient這個(gè)關(guān)鍵字,它的意思是臨時(shí)的,即不會(huì)隨類(lèi)一起序列化到本地,所以當(dāng)還原后,這個(gè)關(guān)鍵字定義的變量也就不再存在。

通常,我們寫(xiě)的程序都要求特定信息能持久存在或保存到磁盤(pán)上,以供一個(gè)程序使用或用在同一個(gè)程序的另一次運(yùn)行上.這種持久性可以通過(guò)幾種方式來(lái)實(shí)現(xiàn),包括寫(xiě)到數(shù)據(jù)庫(kù)中或是利用JAVA為對(duì)象序列化提供的支持.不管我們選用什么方法,類(lèi)實(shí)例的持久性都是通過(guò)保存類(lèi)的域的狀態(tài)來(lái)完成的,保存這些狀態(tài),以便以后可以對(duì)它們進(jìn)行訪(fǎng)問(wèn)或使用它們來(lái)創(chuàng)建相同的實(shí)例.然而,有可能并不是所有的域都需要被保存起來(lái).當(dāng)一個(gè)實(shí)例被持久化時(shí),其內(nèi)部的一些域卻不需要持久化,則可以用trainsient修飾符告訴編譯器指定的域不需要被持久保存.

首先,讓我們看一些Java serialization的代碼:

  1. public class LoggingInfo implements java.io.Serializable  
  2. {  
  3.   private Date loggingDate = new Date();  
  4.   private String uid;  
  5.   private transient String pwd;  
  6.     
  7.   LoggingInfo(String user, String password)  
  8.   {  
  9.     uid = user;  
  10.     pwd = password;  
  11.   }  
  12.   public String toString()  
  13.   {  
  14.     String password=null;  
  15.     if(pwd == null)  
  16.     {  
  17.     password = "NOT SET";  
  18.     }  
  19.     else 
  20.     {  
  21.       password = pwd;  
  22.     }  
  23.     return "logon info: /n  " + "user: " + uid +  
  24.       "/n  logging date : " + loggingDate.toString() +  
  25.       "/n  password: " + password;  
  26.   }  

現(xiàn)在我們創(chuàng)建一個(gè)這個(gè)類(lèi)的實(shí)例,并且串行化(serialize)它 ,然后將這個(gè)串行化對(duì)象寫(xiě)如磁盤(pán)。

  1. LoggingInfo logInfo = new LoggingInfo("MIKE""MECHANICS");  
  2. System.out.println(logInfo.toString());  
  3. try 
  4. {  
  5.   ObjectOutputStream o = new ObjectOutputStream(  
  6.         new FileOutputStream("logInfo.out"));  
  7.   o.writeObject(logInfo);  
  8.   o.close();  
  9. }  
  10. catch(Exception e) {//deal with exception} 
  11. To read the object back, we can write  
  12.   
  13. try 
  14. {  
  15.   ObjectInputStream in =new ObjectInputStream(  
  16.         new FileInputStream("logInfo.out"));  
  17.   LoggingInfo logInfo = (LoggingInfo)in.readObject();  
  18.   System.out.println(logInfo.toString());  
  19. }  
  20. catch(Exception e) {//deal with exception} 

如果我們運(yùn)行這段代碼,我們會(huì)注意到從磁盤(pán)中讀回(read——back (de-serializing))的對(duì)象打印password為"NOT SET"。這是當(dāng)我們定義pwd域?yàn)閠ransient時(shí),所期望的正確結(jié)果。

現(xiàn)在,讓我們來(lái)看一下粗心對(duì)待transient域可能引起的潛在問(wèn)題。假設(shè)我們修改了類(lèi)定義,提供給transient域一個(gè)默認(rèn)值,代碼如下:

  1. public class GuestLoggingInfo implements java.io.Serializable  
  2. {  
  3.   private Date loggingDate = new Date();  
  4.   private String uid;  
  5.   private transient String pwd;  
  6.     
  7.   GuestLoggingInfo()  
  8.   {  
  9.     uid = "guest";  
  10.     pwd = "guest";  
  11.   }  
  12.   public String toString()  
  13.   {  
  14.     //same as above  
  15.    }  

現(xiàn)在,如果我們穿行化GuestLoggingInfo的一個(gè)實(shí)例,將它寫(xiě)入磁盤(pán),并且再將它從磁盤(pán)中讀出,我們?nèi)匀豢吹阶x回的對(duì)象打印password 為 "NOT SET"。

當(dāng)從磁盤(pán)中讀出某個(gè)類(lèi)的實(shí)例時(shí),實(shí)際上并不會(huì)執(zhí)行這個(gè)類(lèi)的構(gòu)造函數(shù),

而是載入了一個(gè)該類(lèi)對(duì)象的持久化狀態(tài),并將這個(gè)狀態(tài)賦值給該類(lèi)的另一個(gè)對(duì)象。

希望本文所述對(duì)大家的Java程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
531
主站蜘蛛池模板: 日韩91 | 黄色国产片 | 久久久国产一级 | 综合久久久久 | 欧美 日韩 国产 成人 在线 | 一道本一区二区三区 | 久久久久久99精品 | 国产高清亚洲 | 国产毛片欧美毛片久久久 | 中文字幕第十二页 | 日本一区二区在线观看视频 | 国产精品久久久久久久久久免费看 | 日本一区二区三区四区 | www.国产区 | 国产精品无码久久久久 | 成人免费一区二区三区视频软件 | 国产成人三区 | 亚洲精品成人av久久 | 亚洲欧美视频一区 | 黄色网页在线观看 | 免费成人黄色网址 | 在线视频一区二区 | 国产a视频 | 国产免费一区二区三区 | 成人a在线视频免费观看 | 日韩成人在线观看 | 久久99精品一区二区三区三区 | 九九热免费观看 | 欧美日韩一级二级三级 | 激情五月激情综合网 | 久久久久久久久久久久福利 | 日韩免费精品 | 青青草草| 久久成人高清 | 99热69 | 中文字幕精品一区 | 久久人人网 | 久久美女| 国产人妖一区二区 | 日本中文字幕在线观看 | 色狠狠一区 |