Basic types

If you are familiar with Java, then you probably know that Java has primitive (value) types and reference types.

The differences between them are that primitive type variables store the actual value of the type in their memory location (usually on the Stack) and reference type variables store the reference (memory address) to another memory location (on the Heap) where the actual data is stored.

Primitive types in Java also have their Boxed (Boxing is an automatic conversion of a primitive type to a reference type) version, a reference type. For example, a primitive int (32-bit integer) has a reference type in type Integer.

Kotlin doesn’t have this distinction between primitive and reference type. This doesn’t mean a Kotlin compiler cannot emit primitive types in Java bytecode. In fact, it would be really inefficient if Kotlin had only reference types.

Kotlin only hides this distinction from a developer. The compiler emits Java bytecode according to usage. In most cases, it will emit primitive types in Java bytecode, except when the variable is declared as nullable (remember that primitive type variables hold their value, null can be assigned only to reference types), or when its type is a generic parameter (you’ll learn about generics and type erasure in following chapters).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.216.200.106