zoukankan      html  css  js  c++  java
  • 个人学习小记

    学习笔记,项目还没划分下来。所以理用上班时间写点 学习小记。

    (文中全是自己对技术的努力,很多都很肤浅而且还可能是错误的叙述。因为这些东西我以前都没怎么接触)

    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);

      }

  • 相关阅读:
    UIApplicationMain函数做了什么
    Navigation Bar的简单设置
    Xcode调试 之 内存泄露 .
    ASIHTTPRequest类库简介和使用说明
    IOS开源项目汇总
    列表框的左右移动,单个,多个,全部
    window.showModalDialog以及window.open用法简介
    URL编码方法比较 Encode,Javascript,escape,encodeURI,encodeURIComponent,UTF8
    实现repeater控件多列显示 简单方法(用CSS float属性)
    如何部署强命名程序集(Strong Name Assembly)和GAC
  • 原文地址:https://www.cnblogs.com/paulxie/p/1907152.html
Copyright © 2011-2022 走看看