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. 写了一份笔试题,整体上来说没什么难度,里面一共三题,基本上用上一些简单的数据结构处理一下存储,以及简单的贪心就可以解决了。
相关推荐
Aman19843 小时前
Claude Code做Unity项目移植(一):从零散工具到团队式
unity·游戏开发·vibe coding·claude code·项目迁移
地狱为王4 小时前
Unity使用VoxLock实现语音隔离
unity·游戏引擎·音频处理·voxlock
Jmyd01238 小时前
博物馆数字展厅系统架构设计:实景采集到云渲染全链路
unity·系统架构·博物馆·数字展厅·博物馆数字化
weixin_4242946711 小时前
对于未加入 Script Execution Order 的脚本
unity
暴走约伯11 小时前
【VFX工具链源码拆解 03】告别机械劳动(下):材质字典映射批处理与智能纹理槽识别
unity·游戏引擎·材质
Wanda121412 小时前
机器人与机电一体化3D数字孪生机器-Day9
人工智能·3d·unity·机器人·数字孪生
暴走约伯12 小时前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎
平行云2 天前
建筑BIM/3D可视化轻量级实时评审与分享方案
unity·ue5·3dsmax·实时云渲染·云桌面·云游戏·建筑bim
2501_915106322 天前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
FFFFujige2 天前
【Unity】一个的Dots用Ruhanka踩坑记录
unity·游戏引擎