2.3 Основные типы данных
Java уходит своим корнем в С и C++. Подобно С и C++, Java также имеет примитивные типы данных. Их называют также встроенными типами данных. Эти типы данных используются, чтобы создать более сложные или определяемые пользователем типы данных.
Java имеет всего 8 примитивных типов данных. Они включают 4 типа целых чисел, 2 типа с плавающей точкой, символьного типа и переменной типа boolean.
Типы данных, поддерживаемые этим языком одинаковы для всех платформ. Например, int в Java представлен как 4 байта в памяти на всех машинах, независимо от того где выполняется программа Java. Это причина того, что программы Java не должны измениться, работая на различных платформах. Напротив, int в С представляется в памяти 2 или 4 байтами в зависимости от машины.
2.3.1 Целочисленный тип данных
Представлен следующий ряд целых чисел. Четыре типа, упомянутые ниже определяют различные размеры интегральных типов данных:
Например: 178 - число типа int и 8864L - число, которое принадлежит длинному типу данных.
Мы можем определить длинное целое число, помещая 'L' или Т после номера. Буква 'L' более предпочтительна, поскольку она не может быть перепутана с цифрой'1'.
2.3.2 Тип данных с плавающей точкой
Существует два типа с плавающей точкой float и double, которые представляют числа с одинарной и двойной точностью, соответственно.
Примеры:
45.678 - double
45.678D- double
67.897F - float
26.77е3 –double
Мы можем определить float, помещая 'f' или 'F' после номера. Для double 'D' или 'd'. Если ничто не определено, тогда число относится к double.
2.3.3 Текстовый тип данных
Например, 'с' относится к Char.
К типу данных char относится любой отдельный символ Unicode, заключённый в кавычки.
2.3.4 Строки
Строка - ряд символов. В Java есть 'Строковый' класс, чтобы упростить обработку последовательных символов. Экземпляр строкового класса создаётся следующим образом.
String strNamel = "Humpty dumpty"; // a string literal
String strName2 = new String('Egg');
Две или более строки могут быть объединены с помощью следующего оператора.
strName3 = strNamel + "is the name of an" + strName2;
'strName3' будет содержать "Humpty dumpty is the name of an Egg".
Длина строки может также быть рассчитана, используя функцию в Строковом классе. Здесь, мы будем использовать строку 'strName2' определенную ранее. Переменная 'numLength' будет содержать значение 3.
int numLength = strName2.length();
Строку можно также добавить к числовому типу. Например:
String strVar = "Mark" + 1;
Переменная 'strVar' будет теперь содержать значение "Маrk1".
Строковый пул
Программа Java может содержать много строковых литералов. 'Строковый Пул' представляет все литералы, созданные в программе. Всякий раз, когда создаются строковые литералы, обыскивается Строковый пул, чтобы видеть, существует ли такой же строковый литерал. Если он существует, то новый образец для этой строки в Строковом Пуле не создаётся. Здесь, существующий образец назначается на новую строку. Это позволяет экономить память.
Например:
String day = "Monday";
String weekday = "Monday";
Здесь дан образец переменной 'day', значение которой - «Monday», создан в Строковом Пуле. Когда строковый литерал 'weekday' создан, имеющий то же самое значение, что и 'day', существующий образец указывает на 'weekday'. Так и 'day' и 'weekday' указывают на ту же самую строку в Строковом Пуле. Следующий рисунок иллюстрирует концепцию 'Строкового пула'.
Рисунок 2.1: Концепция строкового пула String Class methods
В этом разделе мы обсудим некоторые методы строкового класса.
charAt()
Этот метод возвращает конкретный символ из строки. Например:
String name = new String("Java Language");
char ch = name.charAt(5);
Переменная 'ch' содержит значение 'L'. Нумерация начинается с 0.
indexOf()
Этот метод возвращает индекс специфического символа или строки в пределах одной строки. Следующий фрагмент кода показывает как можно различным способам использовать эту функцию.
String day = new String(«Sunday»);
int indexl = day.indexOf(«n»); //returns 2
int index2 = day.indexOf(«z»,2);
//returns -1 if "z" is not found at position 2
int index3 = day.indexOf(«Sun»);
//returns 0, index of the 1st letter
toUpperCase()
Этот метод переводит всю строку в верхний регистр.
String lower = new String("good morning");
System.out.println("Uppercase:" + lower.toUpperCase());
toLowerCase()
Этот метод переводит всю строку в нижний регистр.
String upper = new String("ASSET");
System.out.println("Lowercase:" + upper.toLowerCase());
2.3.5 Логический тип данных
Существует два значения Boolean, true и false.