1. 什么是资源?.NET框架中如何访问资源?
1)资源就是程序中可利用的数据,譬如:字符串,图片和任何二进制数据,包括任何类型的文件。
2)访问一个资源需要如下几个步骤
分配内存空间
初始化内存
使用资源
销毁资源
释放资源
2. 什么是托管资源,什么是非托管资源?
托管资源是由CLR全权负责的资源,CLR不负责的资源则为非托管资源。
托管资源由GC自动回收
非托管资源通过代码手动清除(StreamReader,FIleStream,数据库的连接,GDI+的相关对象,套接字,COM组件等)
3. 如何正确释放资源?
托管的内存资源,系统以及给为我们进行了管理。
对于非托管的资源,则需要我们手动清除。
如何去释放,.Net提供了三种方法,大致如下
1)析构函数
2)继承IDispisable接口,实现DIspose方法
3)提供Close方法

4. 什么是GC
GC是指垃圾回收。垃圾回收是指.NET清理托管堆上不会在被使用的对象所占用的内存,并且移动仍在被使用的活动对象,从而使他们所占的内存空间保持连续。垃圾回收仅需要2步即可完成执行过程。
程序员不需要手动干预GC垃圾回收的过程,但.NET中的CLR仍然提供了一个手动执行垃圾回收的GC.Collect()方法。但不建议成员员调用此方法。GC回收是一个相对耗费资源的过程,程序员应尽量减少不必要的垃圾回收次数。
5. 什么是代?
代是指GC将托管堆内的对象按照被调用的可能性的分类。GC按照被调用的可能性将托管堆内的对象分为3类,.NET将这样的分类定义为代。
依据.NET垃圾回收机制,0代,1代,2代的初始分配空间分别为256KB,2MB,10MB。代越小释放的几率就越高,但每一次GC释放对象时,仍然被使用的对象实例将被转移到下一代。

C#销毁资源,释放内存,GC垃圾回收相关推荐

  1. 后端学习 - JVM(上)内存与垃圾回收

    JVM 架构图 文章目录 一 JVM 简介 二 类加载子系统: 1 作用 2 类的三个加载过程 3 类加载器的分类 4 双亲委派机制 5 两个 class 对象为同一个类的必要条件 三 运行时数据区: ...

  2. 尚硅谷 宋红康 JVM教程_01_内存与垃圾回收篇——02

    本系列相关链接 尚硅谷 宋红康 JVM教程_01_内存与垃圾回收篇--01 (20210103-20210110) https://blog.csdn.net/wei198621/article/de ...

  3. Java进阶 JVM 内存与垃圾回收篇(一)

    JVM 1. 引言 1.1 什么是JVM? 定义 Java Vritual Machine - java 程序的运行环境(Java二进制字节码的运行环境) 好处 一次编译 ,到处运行 自动内存管理,垃 ...

  4. JVM最详细知识点笔记-内存与垃圾回收篇

    内存与垃圾回收 一.JVM与JAVA体系结构 1.1 概述 JAVA虚拟机: 含义: Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语 ...

  5. 尚硅谷-宋红康-JVM上中下篇完整笔记-JVM上篇_内存与垃圾回收篇

    前言 一.jvm及java体系结构 1. Java及JVM简介 TIOBE语言热度排行榜 https://www.tiobe.com/tiobe-index/ 世界上没有最好的编程语言,只有最适用于具 ...

  6. JVM——内存与垃圾回收

    JVM--java virtual machine java虚拟机就是二进制字节码运行的环境 特点: 一次编译,导出运行 自动内存管理 自动垃圾回收 文章目录 JVM--java virtual ma ...

  7. jvm内存与垃圾回收重点总结

    文章目录 一.jvm简介 1.jvm的位置 2.JVM的整体结构 3.java代码执行流程 二.类加载子系统 1.类的加载过程 2.类加载器分类 ⭐3.双亲委派机制 三.运行时数据区及线程 四.程序计 ...

  8. java垃圾回收机制_乐字节Java|GC垃圾回收机制、package和import语句

    本文接上一篇:乐字节Java|this关键字.static关键字.block块.本文是接着讲述JavaGC垃圾回收机制.package 和 import语句. 一.GC垃圾回收机制 GC全名:Garb ...

  9. 不要再问我“Java GC垃圾回收机制”了

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底 ...

最新文章

  1. Java Socket实战之五:使用加密协议传输对象
  2. 【数据库】数据库单表对比
  3. vue cli 脚手架上多页面开发 支持webpack2.x
  4. Java数据结构-基于数组的栈和泛型
  5. cocos2d-x android 环境搭配,cocos2d-x Android环境配置问题和解决方法
  6. 后台系统可扩展性学习笔记(五)负载均衡
  7. 【用户画像学习笔记】——社交网络平台的用户画像介绍
  8. 关于SPSS软件的使用
  9. 淘宝/天猫商品优惠券查询API接口,优惠券API接口
  10. Win11 Windows聚焦失效修复方法
  11. 欧洲能源商品期货股票套利
  12. 美团外卖API接入(二)
  13. Matplotlib和Seaborn(离散数据的图表选择与一些使用技巧)
  14. svn服务端删除版本库_【SVN】彻底 svn 服务器上的 删除某一个文件或文件夹
  15. 反激变换器 闭环 仿真 flyback MATLAB simulink 输入60v,输出30v
  16. 太空上新 | 张肇达 张凯惠:嫦娥奔月有了现实版
  17. 展示5G和AI的魅力,智博会这个展区为啥人气最旺?
  18. 奔驰GLA改色贴膜珍珠白效果图东莞奔驰改装
  19. MacOS下载并配置gradle
  20. ISO感光度 光圈 快门 景深

热门文章

  1. L1、L2正则化总结
  2. 深入剖析 grep 命令
  3. 前置机应用服务器,web服务器前置机(erp)部署步骤.pdf
  4. Http中post/get请求参数接收
  5. 3D图像重建中的颜色预测误差研究
  6. 【显著性检测】基于HC算法实现图像显著性检测附MATLAB代码
  7. 蓝牙4.0BLE中协议栈详解
  8. shell一键自动化批量安装服务
  9. Idea21 每次运行(main)都会(buid)编译的问题
  10. python EOFError: marshal data too short问题处理