Особенности:
Тип | Размер | Диапазон значений | Пример |
---|---|---|---|
byte | 1 байт | -128 .. 127 | byte b = 10 |
short | 2 байт | -32,768 .. 32,767 | short s = 1000 |
int | 4 байт | -2^31 .. 2^31-1 (±2.1 млрд ) | int i = 100000 |
long | 8 байт | -2^63 .. 2^63-1 | long l = 10000000000L |
float | 4 байт | ±3.4e+38 (7 значащих цифр) | float f = 3.14f |
double | 8 байт | ±1.7e+308 (15 значащих цифр) | double d = 3.1415926535 |
char | 2 байт | 0 .. 65,535 (символы Unicode) | char c = 'A' |
boolean | 1 бит | true или false | boolean flag = true |
Важно в Android:
int
BigDecimal
(не примитив)byte
/short
Особенности:
null
Обертки над примитивами (Wrapper classes)
Byte
, Short
, Integer
, Long
Float
, Double
Character
Boolean
Пример:
Integer count = 10; // автоупаковка (autoboxing)
int i = count; // распаковка (unboxing)
Строки
String
- неизменяемая (immutable)StringBuilder
/StringBuffer
- изменяемыеПример:
val name: String = "Android"
val builder = StringBuilder().append("Hello").append(" World")
Массивы
int[]
, String[]
и т.д.Array<T>
, IntArray
и др.Пример:
val numbers: IntArray = intArrayOf(1, 2, 3)
val names: Array<String> = arrayOf("Alice", "Bob")
Kotlin делает различия более явными:
Все типы объектные (даже примитивы "под капотом")
Int
, Double
, Boolean
и т.д. - классыNullable vs Non-nullable типы:
String
- не может быть nullString?
- может быть nullПример:
val nonNullable: String = "text" // обязательно значение
val nullable: String? = null // разрешено null
Parcelable - для передачи между компонентами Android
Serializable - для сериализации объектов
Enum - перечисления (используются для констант)
enum class Color { RED, GREEN, BLUE }
Unit (аналог void
в Java) - означает отсутствие значения
Any (аналог Object
в Java) - корневой тип всех классов
null
int
для ресурсовParcelable
для межпроцессного взаимодействияP.S. На собеседованиях часто спрашивают про автоупаковку/распаковку (autoboxing/unboxing) и их влияние на производительность - будьте готовы!