当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

关于弱引用

发表于: 2014-05-27   作者:campolake   来源:转载   浏览次数:
摘要: 提纲: 1:什么是弱引用 弱引用就是引用他的时候,可以进行内存回收。比如缓冲可以用,但是无法准确的控制缓冲的策略,但是他的方便之处就在于我们不用控制缓冲的内容在内存不够的时候如何处理,由GC来处理。 2:弱引用的作用 3:C#如何高效的利用内存   4:C#的性能分析   闭包可以记住不在当前作用域内的“值”,这个值可能只引用。 using Syste

提纲:

1:什么是弱引用

弱引用就是引用他的时候,可以进行内存回收。比如缓冲可以用,但是无法准确的控制缓冲的策略,但是他的方便之处就在于我们不用控制缓冲的内容在内存不够的时候如何处理,由GC来处理。

2:弱引用的作用

3:C#如何高效的利用内存

 

4:C#的性能分析

 

闭包可以记住不在当前作用域内的“值”,这个值可能只引用。

    using System;  
    using System.Collections.Generic;  
      
    sealed class TestClosure {      
        static void Main(string[] args) {  
            var actions = new List<Action>();  
            for (int i = 0; i < 3; ++i) {  
                int j = i;  //这个I在哪里保存呢??堆?栈?方法区?
                            //j的每次改变不会影响到其他
                actions.Add(() => Console.WriteLine(j));  
            }  
            foreach (var a in actions) {  
                a();  
            }  
              
            // Output:  
            // 0  
            // 1  
            // 2  
              
            ////////////////////////////////////////////////////  
              
            actions = new List<Action>();  
            for (int i = 0; i < 3; ++i) {  //保存的是引用,会改变
                actions.Add(() => Console.WriteLine(i));  
            }  
            foreach (var a in actions) {  
                a();  
            }  
              
            // Output:  
            // 3  
            // 3  
            // 3  
        }  
    }  

 注:函数式编程语言的值是不可改变的,每次返回的都是新的值。原来的值没有变化。(效率和内存如何考虑?)

 

 

关于弱引用

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只
在看‘深入JAVA虚拟机’垃圾收集这一章的时候了解有关对象的引用级别,在网上找了些资料总结备忘。
一、Java中的强、软、弱、虚引用 在JDK中我们可以看到有一个java.lang.ref的包,这个包中就是Java中
弱引用和软引用比较像, 但弱引用的引用级别更低。 对于弱引用,当垃圾回收机制运行时, 不管系统内
1、对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法
在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只
1 .对象的强、软、弱和虚引用 在 JDK 1.2 以前的版本中,若一个对象不被任何变量引用,那么程序就
1、对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法
1.对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法
1.对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号