Переменные и типы данных

**Переменные** — это некие контейнеры, в которых программист хранит данные программы (Например, имя человека, его возраст, пол, цену товара, выбранный пункт меню и т.д.). Все переменные сохраняются в оперативной памяти устройства и удаляются, как только программа завершает работу. Java — статически типизированный язык, поэтому здесь каждая переменная имеет свой *тип*. Ниже перечислены все базовые типы Java (беззнаковых типов у нас нет).

**ПРИМЕЧАНИЕ.** Не надо запоминать всю информацию из таблицы! Ососбенно диапазоны допустимых значений. В 95% случаев для чисел вам пригодится только тип `int`.

## Работа с переменными

### Синтаксис

Процесс создания новой переменной называется *объявление* переменной. Чтобы о.бъявить переменную, используйте следующий синтаксис:

```
тип\_переменной имя\_переменной;

```
Также вы можете объявить переменную и *сразу же* присвоить (т.е. записать) ей значение:

```
тип\_переменной имя\_переменной = значение\_для\_присвоения;

```
**ОБРАТИТЕ ВНИМАНИЕ.** Мы не просто так поставили в конце точку с запятой — в Java вам нужно ставить её после каждой инструкции, иначе программа не скомпилируется!

### Ключевое слово var (Java 10+)

Можно также вместо типа использовать `var`. Тип будет выведен автоматически на этапе компиляции.

### Правила именования

Переменные можно называть не как угодно. Вот список всeх ограничений:

* Нельзя давать переменным имена, равные ключевым словам языка. Список всех ключевых слов можно найти здесь.
* Имена не должны начинаться с цифры.

### Другие системы счисления

Если нужно записать шестнадцатеричное число, поставьте перед ним `0x`. При записи двоичного числа поставьте перед ним `0b`. А если записываете восьмеричное число, поставьте перед ним ноль.

### В одну строчку

Вы также можете объявить несколько переменных одного типа в одну строку:

```
int num1, num2, result;

```

А потом всем этим переменным присвоить одно значение:

```
num1 = num2 = result = 5;

```

### Примеры

Давайте определим (объявим) переменную price:

```
int price;

```
А теперь присвоим ей значение 256:

```
price = 256;

```
**ОБРАТИТЕ ВНИМАНИЕ.** Если мы *уже объявили* переменную, и далее хотим присваивать ей значения, тип указывать не нужно! Он указывается только при объявлении или при объявлении с присвоением.
А теперь определим переменную discount и сразу присвоим ей 30:

```
short price = 30;

```
Здесь я решил использовать тип short, т.к. он хранит максимум 127, а скидка уж точно не может быть больше 100. Хотя, вы в 99% случаев можете обойтись int и long, ибо оперативной памяти у современных устройств предостаточно.

```
long veryLongNum = 2147483649L;

```
**ОБРАТИТЕ ВНИМАНИЕ.** По умолчанию все числа считаются типом `int`. Но, если нужное число в `int` не помещается, нужно после числа поставить букву `L` или `l`.

```
float fraction = 2.5f;
double doubleFraction = 2.5;

```
**ОБРАТИТЕ ВНИМАНИЕ.** Сразу на две вещи. Во-первых, в качестве разделителя целой и дробной части используется *точка*, а не запятая. Во-вторых, если Вы присваиваете значение типу `float`, в конце нужно поставить f. Это потому что Java по умолчанию рассматривает десятичные дроби как `double`.

```
char awesomeChar = 'a';

```
Присваиваете типу `char`? Не забудьте про *одинарные* кавычки!

```
var isOk = true;

```
С использованием `var`. (Java 10+)

## Советы и ошибки новичков

```
result = 0; //Так нельзя! Вы должны СНАЧАЛА объявить
int result; //переменную, и только потом с ней работать

int operand = 32; //Вы уже объявили переменную.
int operand = 20; //В этой строке, при присвоении, тип не указывайте!

```

Переменные можно называть как с маленькой, так и с большой буквы. НО, мы настоятельно рекомендуем Вам следовать соглашению об именовании, и называть переменные с маленькой буквы, чтобы потом не путать их с именами классов и не сбивать с толку других программистов.

Также рекомендуем:

* Делать имена осмысленными и не сокращать их чрезмерно.
* По возможности не допускать длинных имён.
* Не использовать артикли в именах (не theButton, а button).

## Пошаговый учебник

Пред. статья | Установка Java и IntelliJ. Первая программа.

След. статья | Константные переменные