Давайте сегодня по-быстрому разберемся с типами в Java. Все типы в Java делятся на две группы — это примитивные и ссылочные типы.
Здесь будем разбираться с примитивными типами.
Ну пожалуй самый примитивный тип — это логический тип данных. Он же boolean — самый простой тип данных. Переменная такого типа может хранить лишь два значения: true (истина) или false (ложь). С переменными такого типа можно проводить следующие опреации: «!» — отрицание (not), «&&» — логическое И (and), «||» — логическое ИЛИ (or), «^» — исключающе ИЛИ (xor). Таблицы истинности для этих операций можно посмотреть здесь.
Дальше целочисленные типы данных. К ним в Java относятся следующие типы: byte, short, int и long. Каждый из этих типов принимает разный диапазон значений, объединяет их только то, что все значения всегда целочисленные. Так для типа byte интеравал от ?128 до 127, для типа short от ?32768 до 32767, для типа int от ?2147483648 до 2147483647 ну и для типа long интервал от ?9.2·1018 до 9.2·1018. C ними все просто вычитаем, складываем, делим, умножаем…
Ну и конечно есть типы данных с плавающей запятой, дробные типы. Это float и тип с двойной точностью double. float принимает значения в диапазоне приблизительно от ?3.4·1038 до 3.4·1038, а double в диапазоне от ?1.8·10308 до 1.8·10308. Помимо этого, для этих типов существуют особые значения +? — плюс бесконечность, -? — минус бесконечность и NaN — не число (например при делении на 0).
Итак, если мы хотим объявить переменную какого-то типа, мы должны указать сначала ее тип, а потом ее имя:
int i; float f;
Так же сразу можно указать начальное значение:
int i = 0; float f = 3.5;
В Java используется неявное преобразование типов. Что это такое? Ну например вы хотите сложить две переменные одна типа int а другая типа float. Тогда ваша переменная типа int будет преобразована к типу float и только после этого произойдет сложение. Соответственно и результат получится типа float. При этом меньший тип всегда преобразуется к бльшему, а целое к дробному. Ну например вот это будет работать:
int a = 3; float b = 4.5, c; с = a + b;
а вот это нет:
int a = 3, c; float b = 4.5; с = a + b;
Здесь переменная в которую записывается результат имеет тип int, а сам результат получится типа float. Конечно можно привести один тип к другому вручную. Делается это вот так:
int a = 3, c; float b = 4.5; c = (int) (a + b);
здесь с помошью записи (int) мы приводим сумму a и b к типу int. Однако понятно, что в целочисленной переменной с не может храниться значение 7.5. При приведении дробных типов к целым дробная часть просто откидывается. Это может послужить причиной некотороых ошибок, поэтому об этом не стоит забывать.
А напоследок символьный тип char. В переменную такого типа вы можете записать символ. например так:
char c = 'q';
символы записываются в тексте программы в одинарных кавычках.
Ну и безусловно понятно, что там, где можно обойтись целым типом небольшого размера (byte, short) не стоит пользоваться типом double :-).
К ссылочным типам относятся массивы, классы и интерфейсы.
Если у Вас есть еще какие-то вопросы — пожалуйста, спрашивайте в комментариях. Если увидели какие-то недочеты, тоже пишите :-).
Уведомление: Знакомимся с Java 2 (или крестики-нолики в консоли) | Программирование и разработка, android, java – с самых первых шагов
Спасибо за статью… В принципе объявление переменных такое же как и в Си.
Если какой-то аналог типа «строка»? Если нет, то как работать с текстом?
В java имеется класс String работать с которым гораздо приятней и проще чем со строками например в c или паскале. У экземпляров этого класса есть целая куча полезных методов 🙂
Скажите пожалуйста почему в данной программе
public class CircleAera {
public static void main (String args []){
float pi=3.14, r=10, a=pi*r*r;
System.out.println(«Площадь круга составляет «+ a);
}
}
Net beans предлагает заменить тип данных float на double.
Походу литерал с плавающей точкой по умолчанию считается даблом. Юзай pi=3.14f
Так и есть 🙂
Пасиба большое за ответ :)!!!!
Спасибо,очень понятный и хорошо разобранный ответ!!!
я чайник, поэтому и вопросы чайниковские)
у меня в эклипсе не заработала конструкция
int a = 3;
float b = 4.5, c;
с = a + b;
—
а заработала такая:
int a = 3;
float b = (float)4.5, c;
с = a + b;
так и должно быть? или может от компилятора зависит??
Все правильно, по умолчанию числа с точкой в коде java имеют тип double. Вы могли бы написать float b=4.5f явно указав тип литерала.
Не понятно почему там, где можно обойтись целым типом небольшого размера (byte, short) не стоит пользоваться типом double. Объясните, пожалуйста.
В целях экономии памяти и увеличения скорости вычислений 🙂
Благодарю. А есть какие-то общие советы типа «чтобы прога летала и не жрала лишние ресурсы, кодить нужно так…»?
Так рада,что наткнулась на этот сайт:) Все коротко и понятно, спасибо большое!
И я рад, что вам понравилось 🙂
Я хотела б статья о работе методы, если можно , пожалуйста.Заранее Спосибо.