Типы переменных в Java и какие когда стоит использовать

Давайте сегодня по-быстрому разберемся с типами в 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 :-).

К ссылочным типам относятся массивы, классы и интерфейсы.

Если у Вас есть еще какие-то вопросы — пожалуйста, спрашивайте в комментариях. Если увидели какие-то недочеты, тоже пишите :-).

Вам понравилось? Было полезно? Поделитесь!

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Запись опубликована в рубрике Java основы языка, Новичку с метками , , , , , , . Добавьте в закладки постоянную ссылку.

17 комментариев на «Типы переменных в Java и какие когда стоит использовать»

  1. Уведомление: Знакомимся с Java 2 (или крестики-нолики в консоли) | Программирование и разработка, android, java – с самых первых шагов

  2. Александр говорит:

    Спасибо за статью… В принципе объявление переменных такое же как и в Си.

  3. ViPeR говорит:

    Если какой-то аналог типа «строка»? Если нет, то как работать с текстом?

    • davidmd говорит:

      В java имеется класс String работать с которым гораздо приятней и проще чем со строками например в c или паскале. У экземпляров этого класса есть целая куча полезных методов 🙂

  4. Сергей говорит:

    Скажите пожалуйста почему в данной программе
    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.

  5. Сергей говорит:

    Пасиба большое за ответ :)!!!!

  6. Павел говорит:

    Спасибо,очень понятный и хорошо разобранный ответ!!!

  7. Антон говорит:

    я чайник, поэтому и вопросы чайниковские)
    у меня в эклипсе не заработала конструкция
    int a = 3;
    float b = 4.5, c;
    с = a + b;

    а заработала такая:
    int a = 3;
    float b = (float)4.5, c;
    с = a + b;
    так и должно быть? или может от компилятора зависит??

    • davidmd говорит:

      Все правильно, по умолчанию числа с точкой в коде java имеют тип double. Вы могли бы написать float b=4.5f явно указав тип литерала.

  8. Денис говорит:

    Не понятно почему там, где можно обойтись целым типом небольшого размера (byte, short) не стоит пользоваться типом double. Объясните, пожалуйста.

    • davidmd говорит:

      В целях экономии памяти и увеличения скорости вычислений 🙂

      • Денис говорит:

        Благодарю. А есть какие-то общие советы типа «чтобы прога летала и не жрала лишние ресурсы, кодить нужно так…»?

  9. Лера говорит:

    Так рада,что наткнулась на этот сайт:) Все коротко и понятно, спасибо большое!

  10. Sara говорит:

    Я хотела б статья о работе методы, если можно , пожалуйста.Заранее Спосибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *