• 装箱与拆箱


      装箱:就是将值类型转换为引用类型。
      拆箱:将引用类型转换为值类型。

      看两种类型是否发生了装箱或者拆箱,要看,这两种类型是否存在继承关系。

                //int n = 10;
                //object o = n;//装箱
                //int nn = (int)o;//拆箱
    
                int n = 10;
                IComparable i = n;//装箱
                //这个地方没有发生任意类型的装箱或者拆箱
                //string str = "123";
                //int n = Convert.ToInt32(str);

        装箱和拆箱会影响系统性能,如果次数太多的话,进行引用类型和值类型之间的转换会消耗不少时间。所以在程序中,我们应当尽量避免装箱和拆箱的操作。

                ArrayList list = new ArrayList();
                //List<int> list = new List<int>();
                //这个循环发生了100万次装箱操作
                Stopwatch sw = new Stopwatch();
    
                //向ArrayList中添加数据  00:00:02.4370587
                //向List中添加数据          00:00:00.2857600
                sw.Start();
                for (int i = 0; i < 10000000; i++)
                {
                    list.Add(i);
                }
                sw.Stop();
                Console.WriteLine(sw.Elapsed);
                Console.ReadKey();

        由上面的代码我们可以看到,向ArrayList中添加数据的时候,每次都要进行装箱操作。这样增加了程序运行的时间。

      

  • 相关阅读:
    php 工厂模式实例
    nginx多虚拟主机配置
    PHP提高编程效率的方法
    PHP 多态
    锁机制之PHP文件锁
    深入认识javascript中的eval函数(转载)
    PHP&MYSQL 常用的一些性能检测
    寒假作业1:问答题
    软件测试基础知识总结
    七种测试驱动模式
  • 原文地址:https://www.cnblogs.com/lcxBlog/p/4884573.html
Copyright © 2020-2023  润新知