2025.10.18 复习

  1. 今天主要是看C#相关的知识点。

1.1 ArrayList和List的区别,说实话之前是不知道还有ArrayList的。ArrayList是在C#泛型还没有出现之前主要使用的集合类型,其实现与IList接口,因为其会将所有的元素都看成是Object,所以会涉及到拆箱和装箱,在实例化的时候需要声明出实际的类型。ArrayList会导致数据类型的缺失,而List就不会出现这个问题,List底层实现于泛型数组。性能要比ArrayList要高。现在绝大多数情况下都会去使用List,List也是实现于IList接口。

1.2 垃圾回收机制出现的原因主要是为了避免内存的溢出。主要可以通过减少new的次数,使用公用对象,在对于字符串进行修改操作时,使用stringBuilder。虽然说现在string的+=操作处理的时候可以看出和stringBuilder差不多,但是这种优化只能适用于一些情况,很多情况下还是没有优化到的。

1.3 interface和抽象类的不同

interface是完全抽象,抽象类是部分抽象,里面不仅可以包含一些没有具体实现的方法,同样也可以包含一些有具体实现的方法,所以是部分抽象。

interface可以继承多个,而抽象类只能继承一个,抽象类可以间接被实例化,interface算是被间接引用。

1.4 sealed关键字的使用,在对类使用时,该类将不能被继承,在对方法使用时,该方法将不能被重写。

1.4 反射主要用于动态获取以及加载程序集。获取到程序集的信息反射后就可以使用里面的类、对象,方法、对象数据等。

反射主要用到的类库是System.Reflection

里面使用到的核心类有:Assembly, Type, FieldInfo, PropertyInfo, MethodInfo, ConstructorInfo.

Assembly用于描述程序集,Type用于描述类的类型, FieldInfo描述了类的字段, PropertyInfo描述类的属性,MethodInfo描述类的方法。ConstructorInfo描述类的构造函数。

1.5 .Net和Mono的关系

Mono让.Net可以跨平台运行,而不是仅局限于Windows。Mono为.Net提供了集成开发环境,里面集成实现了.Net的编译器,以及一些基础类库和CRL。

1.6 当在静态构造函数前面添加public时。会出现报错。主要是因为静态构造函数是由CRL来控制的。给其添加访问权限没有什么意义。静态构造函数也不能有参数,因为调用时机和方式都由CRL决定,无法传递参数。

1.7 C#的string类和stringBuilder类的区别。

string是不可变的,所以对string进行修改的时候通常会创建一个新的string副本。当需要频繁修改的时候,会造成很大的内存浪费,通常在需要频繁修改string的时候会选择去使用stringBuilder。因为string的不可变性,所以string是线程安全的。stringBuilder是线程不安全的。不过通常使用string都是考虑到其公用的API以及通用性好,用途广泛。string的读取性能高,stringBuilder的修改性能高。

  1. 写了一份笔试题,整体上来说没什么难度,里面一共三题,基本上用上一些简单的数据结构处理一下存储,以及简单的贪心就可以解决了。
相关推荐
极客柒27 分钟前
Unity 大地图高性能砍树顶点动画Shader
unity·游戏引擎
avi91114 小时前
UnityProfiler游戏优化-举一个简单的Editor调试
游戏·unity·游戏引擎·aigc·vibe coding·editor扩展
学嵌入式的小杨同学4 小时前
C 语言实战:动态规划求解最长公共子串(连续),附完整实现与优化
数据结构·c++·算法·unity·游戏引擎·代理模式
学嵌入式的小杨同学7 小时前
顺序表(SqList)完整解析与实现(数据结构专栏版)
c++·算法·unity·游戏引擎·代理模式
程序猿多布7 小时前
HybridCLR热更打包后AOT泛型函数实例化缺失处理
unity·hybridclr·aot generic
平行云8 小时前
实时云渲染支持数字孪生智能工厂:迈向“零原型”制造
人工智能·unity·ue5·云计算·webrtc·制造·实时云渲染
dzj20218 小时前
Unity中使用LLMUnity遇到的问题(一)
unity·llm·llmunity
DowneyJoy9 小时前
【Unity通用工具类】列表扩展方法ListExtensions
unity·c#·交互
极客柒9 小时前
Unity 大地图 高性能路径引导Shader
unity·游戏引擎
BuHuaX1 天前
Unity项目怎么接入抖音小游戏?
unity·c#·游戏引擎·wasm·游戏策划