Особенности:
| Тип | Размер | Диапазон значений | Пример |
|---|---|---|---|
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:
intBigDecimal (не примитив)byte/shortОсобенности:
nullОбертки над примитивами (Wrapper classes)
Byte, Short, Integer, LongFloat, DoubleCharacterBooleanПример:
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) - корневой тип всех классов
nullint для ресурсовParcelable для межпроцессного взаимодействияP.S. На собеседованиях часто спрашивают про автоупаковку/распаковку (autoboxing/unboxing) и их влияние на производительность - будьте готовы!