WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Kotlin · Advanced · question 55 of 100

How can you optimize the memory usage of data classes in Kotlin? Provide an example.?

📕 Buy this interview preparation book: 100 Kotlin questions & answers — PDF + EPUB for $5

In Kotlin, data classes are used to represent the data models that have a set of properties. These classes are used to store data, and as such, memory optimization is an important consideration when working with them. Here are some ways to optimize memory usage of data classes in Kotlin:

1. Use primitive data types: One way to optimize memory usage is to use primitive data types instead of objects whenever possible. For instance, if a property can be represented as an integer, use ‘Int‘ instead of ‘Integer‘. This will reduce the size of the object and subsequently, the memory required to store it.

2. Use sparse arrays: If the data stored in a data class has many null values, consider using a ‘SparseArray‘. A ‘SparseArray‘ uses less memory than a standard array and is optimized for cases where there are many null values.

3. Use ‘Enum‘ instead of ‘String‘: If a data class has properties that represent a finite set of values, it is more memory-efficient to use ‘Enum‘ instead of ‘String‘. An ‘Enum‘ takes up less memory than a ‘String‘ because it is represented as an integer.

4. Use ‘object‘ instead of ‘class‘: If a data class has properties that are shared across all instances of the class, consider using an ‘object‘ instead of a ‘class‘. An ‘object‘ is a singleton instance that is created only once and shared throughout the application. This can help reduce memory usage.

Example:

data class Person(val name: String, val age: Int, val address: String?)

In this example, we can optimize memory usage by using a nullable type for the ‘age‘ property instead of the non-nullable ‘Int‘ type. This is because ‘Int‘ takes up more memory than ‘Int?‘ when it is assigned a null value.

data class Person(val name: String, val age: Int?, val address: String?)

We can also use an ‘Enum‘ for the ‘address‘ property if the possible values are limited.

enum class AddressType { HOME, OFFICE, OTHER }

data class Person(val name: String, val age: Int?, val address: AddressType?)

By making these changes, we can optimize the memory usage of the ‘Person‘ data class.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Kotlin interview — then scores it.
📞 Practice Kotlin — free 15 min
📕 Buy this interview preparation book: 100 Kotlin questions & answers — PDF + EPUB for $5

All 100 Kotlin questions · All topics