個人學習小記

來源:互聯網
上載者:User

學習筆記,項目還沒劃分下來。所以理用上班時間寫點 學習小記。

(文中全是自己對技術的努力,很多都很膚淺而且還可能是錯誤的敘述。因為這些東西我以前都沒怎麼接觸)

 

1. cache:

    將伺服器端的資料資訊儲存在本地記憶體中,這樣可以減輕伺服器壓力,達到提高程式速度的作用。

    case被定義在ystem.Web.Caching中,定義一個cache如:

          public static System.Web.Caching.Cache cache = HttpRuntime.Cache;   //這web項目中這樣定義

    或者

         public static System.Web.Caching.Cache cache = HttpContext.Current.Cache  //在非web項目中這樣定義

 

   至於兩個的區別,查了些資料還是很模糊。定以後的cache支援:Remove、Set(重構)、Insert、Add等方法來操作cache。其中Add是添加,如果要覆蓋緩衝則用Insert。不太清楚緩衝的生命週期,丹因為緩衝是放在記憶體中的,因此猜測:從建立開始,到被覆蓋或者記憶體釋放的時候結束(關機等)

 

   疑惑:大叫都把指導緩衝用起來很方便,如果每個程式員都依賴把緩衝來減輕伺服器壓力,這個用戶端電腦會不會受不了。

 

2. Serializable 序列化。這個是一直都是讓我頭大的知識點。沒接受過正規的教育,沒到大公司上過班。所以一看到Serializable這個字眼我就頭大。今天咬起牙看看相關的資料。

   Serializable主要是完成這樣一件事:將對象(object?)的狀態或者說副本(拷貝)保持到媒體的過程。其實我翻譯一下:就是把對象用特別的處理方式保持到硬碟裡面(如果是web項目,應該是保持在伺服器硬碟吧?猜的)。以此序列化和反序號可以簡單理解為:用特殊方式儲存物件和再現對象兩個過程。

 

   網上抄的代碼例子:自己加了個方法封起來

 

第一個:原始方法->

[Serializable]  //這句一定不能忘記了
 public   class TestObj
 {
  public int n1 = 0;
  public int n2 = 0;
  public String str = "aaa";

  public TestObj()
  {
   n1 = 33;
   n2 = 22;
   str = "paul";
  }
 }

第二個方法:把對象用BinaryFormatter方式寫入硬碟

  private static void CreateInfo()
  {
   TestObj obj = new TestObj();
   //obj.n1 = 1;
   //obj.n2 = 24;
   //obj.str = "一些字串";
   IFormatter formatter = new BinaryFormatter();
   Stream stream = new FileStream("MyFile.bin", FileMode.Create,
   FileAccess.Write, FileShare.None);
   formatter.Serialize(stream, obj);
   stream.Close();
  }

 

第三步:將對象副本從硬碟還原

 

private static  void GetInfor()
  {
   IFormatter formatter = new BinaryFormatter();
   Stream stream = new FileStream("MyFile.bin", FileMode.Open,
   FileAccess.Read, FileShare.Read);
   TestObj obj = (TestObj)formatter.Deserialize(stream);
   stream.Close();

//測試原始對象的資訊還存在不? 即判斷是否還原成功

   Console.WriteLine("n1: {0}", obj.n1);
   Console.WriteLine("n2: {0}", obj.n2);
   Console.WriteLine("str: {0}", obj.str);

  }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.