JAVA - Типы данных (элементарные, простые типы)
Primary tabs
Forums:
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 - десятки символов разных азбук и цифр) - отрицательных значений данного типа не определено. Приведём небольшой примерчик - дабы показать как данные интерпретируются например в потоке стандартного вывода:
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 не зависят от платформы - что тоже, в каком-то смысле, удобно.
Целочисленные литералы
Вообще, "литерал" (буква) - то есть некоторый символ - служит для обозначения в программе разных объектов - в том числе с помощью символов или их комбинаций обозначаются целые числа:
int x = 10;
"10" - в данном случае будет являться целочисленным литералом, который обозначает число "десять".
Рассмотрим подробнее - какие возможности есть для указания целочисленных литералов в коде программы на Java:
- Для того чтобы указать восьмеричную систему литерал начинают с нуля:
int x = 07; //число 7 в восьмеричной системе )
кстати, вот такая вот запись вызовет ошибку:
// так нельзя т.к. 9 не исполь. в 8-мирич. системе. int x = 09;
- Шестнадцатеричные данные записывают начиная с обязательной последовательности "0x" , например:
long x = 0xFF234AF5345FF;
- В JDK7 появилась возможность в явном виде вводить двоичные данные ,начиная со спец. комбинации "0b":
int x = 0b1000; // =8 в десятичной =))
- Также в JDK 7 уже можно делать числа большие числа визуально более понятными, для коллег-программистов, которые будут работать с вашим, кодом - для чего разрешено использовать нижнее подчеркивание:
int x = 345_567_765;
или даже двойные подчёркивания:
int x = 500__000__001;
также подчёркивания полезны когда мы вводим числа в двоичной форме - ведь там легко сбиться в разрядах:
int x = 0b1000_1100_1010;
Литералы с плавающей точкой
По умолчанию литералы с "плавающей точкой" имеют тип double - чтобы в памяти для них был использован формат float число должно начинаться с английской буквы f (или F).
Допустимо использование нижних подчёркиваний:
double m = 123_456_456.123_34
Булевы литералы (истина/ложь)
Как написано выше - значения всего два - true false
boolean b = true; boolean a = false;
Но следует помнить, что эти значения в Яве не эквивалентны единице и нулю!
Символьные литералы
Символы вводятся по одному - в одинарных кавычках:
char ch = 'a'; char ch = '\141'; // эквивалентно предыдущему char ch = '\n'; // символ переноса строки
как показано в последнем примере - если символ явно в ковычках ввести не получается, то можно ввести комбинацию из обратного слэша (обратной косой черты) из его номера в таблице ASCII:
char ch = '\141'; // = 'a';
Чтобы ввести букву пользуясь её шестандцатеричным кодом - используют, опять же - обратный слэш и английскую букву "уууу":
char = '\u0061'; // = 'a'
Строковые литералы
Строковые литералы - здесь у нас имеет место быть строка в двойных кавычках:
String str = "qwerewsdafgdsg";
если же требует напечатать двойные кавычки - то их экранируют обратным слэшем:
(кстати - обратите внимание - что в приведённом примере мы используем тип String - строковый, который не является элементарным - и пишется именно с большой буквы )
String str = " \" Эта строка будет напечатана в кавычках ! =) \" ";
Управляющие символы и "остальные плюшки" работают точно также как и в строковых литералах (только тут вы можем вводить символы и управляющие символы вперемежку)
Что дальше
Мы уже пару раз использовали переменные - так и не сказав о их объявлении - так давайте скажем, и затем продолжим изучение Явы =)
- Log in to post comments
- 10705 reads