Kotlin如何反对&伴侣对象&懒惰的工作与记忆

时间:2017-06-19 10:44:44

标签: java memory scope kotlin

我无法找到关于对象,伴侣对象和懒惰如何与内存一起工作的任何地方。 谁能在这里解释一下他们如何处理记忆?

由于

1 个答案:

答案 0 :(得分:3)

这是一个相当含糊的问题,可以通过查看字节码来回答。

Object declaration

对象声明是一个单例。它有一个名为var results = Regex.Matches(s, @"(?<!\d)\d(?:[ -]?\d){8}(?!\d)", RegexOptions.ECMAScript) .Cast<Match>() .Select(m => m.Value) .ToList(); 的静态字段,它在静态块(INSTANCE)中初始化。

Companion object

Companion是一种内部类,但它是一个单例,其行为类似于对象声明。

Lazy delegate

惰性委托(每个委托)是一个单独的对象。每次创建惰性字段时,都会实例化委托对象。