In this chapter, we looked at the concept of properties in Kotlin, compared them to fields in Java, and learned how to avoid bottlenecks when using companion objects. We inspected a lot of examples in Kotlin, generated bytecode, and Kotlin code decompiled to Java.
In the next chapter, we'll learn how to prevent unnecessary overhead using the delegated pattern.