当然我可以查看任何开源代码并亲自检查,但 SO 存在的原因之一就是为了避免这种麻烦,哈哈。这不是怀疑你的知识的问题,只是关心如何帮助开发人员进行研究。看来你是一个对这个主题很了解的人,而且还有更多有力的参考资料可以帮助我更多地了解这个主题。举个例子,你说“一般来说字符串是被保留的”,那么在什么情况下它们不是呢?等等……
@XCS 我不认为这是正确的:“对于在外部循环中创建的连接字符串,仍然进行了字符串驻留”。您没有维护对在外部循环的早期迭代中创建的字符串的引用(每次迭代您都会覆盖 a 和 b 的每个元素),但“只有可访问的对象才会包含在快照中。”如果您维护对早期连接字符串的引用,那么您确实会获得每个字符串的 200 个副本。