- •Java - конструктор класса
- •Сигнатура (функции) -- что это в программировании
- •Java - Типы данных
- •Элементарные типы
- •Целочисленные литералы
- •Объявление переменных в Java
- •Java Область видимости переменных
- •Литералы с плавающей точкой
- •Булевы литералы (истина/ложь)
- •Символьные литералы
- •Строковые литералы
- •Преобразование и приведение типов в Java
- •Автоматическое повышение типа в выражениях
Java - Типы данных
Прежде всего следует сказать, что Java - это строго типизированный язык. Во многом - благодаря этому появляется возможность лучше контролировать процесс выполнения программы - возрастает уровень безопасности. Отсутствуют средства автоматического (неявного) приведения типов. Компилятор проверяет все выражения и параметры на соответствие типов.
Элементарные типы
В Java определены 8 элементарных типов данных:
byte (8 бит - [-127, +128]) - наименьший по размеру целочисленный тип, полезен для работы с данными поступающими из сети или файла. Данный тип также хорош для манипуляции необработанными двоичными данными, которые не совместимы напрямую с другими типами данных.
short (16 бит \\ -32768 до +32767)
int (32 бита) - используется наиболее часто. В выражениях типы short и byte "повышаются" до int после чего происходят вычисления - так что иногда лучше сразу использовать int - чтобы избежать затрат на подобное неявное преобразование.
long (64 бит) - целочисленный тип, который используют тогда, когда диапазона int недостаточно
char (16 бит \\ от 0 до 65536) - "целочисленный" тип и используется для хранения символов в 2 байта каждый (Unicode - десятки символов разных азбук и цифр) - отрицательных значений данного типа не определено. Приведём небольшой примерчик - дабы показать как данные интерпретируются например в потоке стандартного вывода:
?
-
1
2
3
4
5
char mysymb = 88;
System.out.println(mysymb ); // выведет букву "X"
// Также можно инкрементировать переменные данного типа:
mysymb++; // увеличиваем значение на единицу
System.out.println(mysymb); // выведет букву "Y"
float (32 бита) - числа с десятичной частью - в ряде процессов обрабатываются быстрее, чем числа с повышенной точною - но этой самой точности как раз таки иногда не хватает
double (64 бита) - числа с десятичной частью (повышенная - "двойная" точность) - например sin, cos и sqrt возвращают именно значения этого типа.
boolean - "логический" тип данных. Присваиваются значения типа true или false - то есть всего два возможных
Элементарные типы также называются простыми. Все простые типы можно разделить на 4-ре группы:
Целые числа: byte, short, int, long - представляют собой числа со знаком.
Числа с плавающей точкой - эта группа включает себе float и double - эти типы хранят числа с точностью до определённого знака после запятой
Символы - в эту группу входит типа char
Булевы значения -boolean - хранит значения типа "истина/ложь"
Элементарные типы представляют собой одиночные значения и объектами не являются - это важно для производительности. Их диапазон значений явно задан и они имеют математически строгое поведение.
Диапазоны простых типов в java не зависят от платформы - что тоже, в каком-то смысле, удобно.
Целочисленные литералы
Вообще, "литерал" (буква) - то есть некоторый символ - служит для обозначения в программе разных объектов - в том числе с помощью символов или их комбинаций обозначаются целые числа:
?
1 |
int x = 10; |
"10" - в данном случае будет являться целочисленным литералом, который обозначает число "десять".
Рассмотрим подробнее - какие возможности есть для указания целочисленных литералов в коде программы на Java:
Для того чтобы указать восьмеричную систему литерал начинают с нуля:
?
-
1
int x = 07; //число 7 в восьмеричной системе )
кстати, вот такая вот запись вызовет ошибку:
?
-
1
2
// так нельзя т.к. 9 не исполь. в 8-мирич. системе.
int x = 09;
Шестнадцатеричные данные записывают начиная с обязательной последовательности "0x" , например:
?
-
1
long x = 0xFF234AF5345FF;
В JDK7 появилась возможность в явном виде вводить двоичные данные ,начиная со спец. комбинации "0b":
?
-
1
int x = 0b1000; // =8 в десятичной =))
Также в JDK 7 уже можно делать числа большие числа визуально более понятными, для коллег-программистов, которые будут работать с вашим, кодом - для чего разрешено использовать нижнее подчеркивание:
?
-
1
int x = 345_567_765;
или даже двойные подчёркивания:
?
-
1
int x = 500__000__001;
также подчёркивания полезны когда мы вводим числа в двоичной форме - ведь там легко сбиться в разрядах:
?
-
1
int x = 0b1000_1100_1010;
