我无法找到关于对象,伴侣对象和懒惰如何与内存一起工作的任何地方。 谁能在这里解释一下他们如何处理记忆?
由于
答案 0 :(得分:3)
这是一个相当含糊的问题,可以通过查看字节码来回答。
对象声明是一个单例。它有一个名为var results = Regex.Matches(s, @"(?<!\d)\d(?:[ -]?\d){8}(?!\d)", RegexOptions.ECMAScript)
.Cast<Match>()
.Select(m => m.Value)
.ToList();
的静态字段,它在静态块(INSTANCE
)中初始化。
Companion是一种内部类,但它是一个单例,其行为类似于对象声明。
惰性委托(每个委托)是一个单独的对象。每次创建惰性字段时,都会实例化委托对象。