c#-4.0 - 在 C# 中连接后内存中的字符串对象
问题描述
我在 C# 中理解,当我连接 2 个字符串时,字符串是不可变的,创建了一个新对象。内存中先前的对象会发生什么?GC 是否会在创建新对象后立即删除旧对象?
解决方案
当您修改字符串的值时,即您正在创建一个引用该修改后的字符串的新对象,而旧的对象将变为未引用。因此,如果我们不断地修改现有字符串,那么未引用对象的数量将会增加,它会等待垃圾收集器释放未引用对象。当垃圾收集器运行时,它会回收未引用对象占用的所有未使用内存。
推荐阅读
- jmeter - 在 JMETER 中记录按钮响应
- ruby - ruby 中解析 2020-W9 日期的好方法是什么
- ios - UIAnalyticsGatherMutitouchAnalytics 中的崩溃
- python - pandas join 在第一次迭代后无法在 for 循环中工作
- xamarin.forms - 如何在 MediaPlugin 录制的视频的 PHAsset 中添加录制位置
- mongodb - 为什么不建议在生产中启动一个单独的 MongoDB 实例作为副本集?
- arrays - 验证下拉选择
- c++ - 用于替换其参数中的标识符的宏
- angular - 如何使用令牌将 angular7 连接到 liferay?
- c# - 异步返回多个值