Java для автоматизаторов
  • Introduction
  • Java. Введение
    • Java как язык и платформа
    • Установка и настройка
  • Язык Java. Основы
    • Hello World
    • Переменные
    • Типы данных
    • Строки
    • Циклы "while" / "do ... while"
    • Циклы "for"
    • Условный оператор "if / if ... else"
    • Условный оператор "switch"
    • Массивы
    • Задания к главе
  • ООП в Java
    • Классы и объекты
    • Методы
    • Свойства
    • Параметры методов
    • Ключевое слово this
    • Конструктор
    • Модификаторы static и final
    • StringBuffer
    • Метод toString()
    • Метод equals()
    • Наследование
    • Пакеты
    • Интерфейсы
    • Модификаторы Public, Private и Protected
    • Полиморфизм
    • Инкапсуляция
    • Использование обобщений
    • Generics and Wildcards
    • Анонимные классы
    • Исключения
    • Множественные исключения
    • Абстрактные классы
    • Вложенные классы
    • Тип Enum
    • Задания к главе
  • Коллекции
    • ArrayList
    • Linked Lists
    • HashMap
    • Sets (Множества)
    • Sorted Maps
    • Задание порядка в множестве ( natural ordering )
    • Очередь (Queue)
    • Использование итераторов
    • Создание объектов, реализующих интерфейс Iterable
    • Задания к главе
  • Стиль написания кода
    • Структура файла
    • Файлы-исходники
    • Открывающие комментарии
    • Сведения о пакете и импорте
    • Объявление классов и интерфейсов
    • Длина строки
    • Переносы строк
    • Переносы в объявлении методов
    • Переносы в операторе if
    • Переносы в тернарных операциях
    • Виды комментариев
    • Блочные комментарии
    • Однострочные комментарии
    • Комментарии в конце строки
    • Объявления (Декларации)
    • Операторы
    • Пропуски
    • Конвенция именования
    • Задания к главе
  • Работа с файлами
    • Работа с текстовыми файлами
    • Работа с XML файлами
    • Работа с JSON файлами
    • Property-файлы
    • Задания к главе
  • Log4j - система логирования сообщений в Java
    • Начало работы
    • Конфигурационные файлы
    • Стандартные аппендеры
    • Задания к главе
  • Юнит тестирование
    • JUnit vs TestNG. Основные аннотации
    • JUnit vs TestNG. Примеры тестов
      • Exception тесты
      • Ignore тесты
      • Тест с таймаутом
      • Тест сьюты
      • Параметризованные тесты
      • Зависимые тесты
      • Многопоточность
    • Asserts
    • Использование "заглушек" (Mocks)
  • Build инструменты
    • Build инструменты
    • Примеры конфигураций
  • Системы контроля версий. Git
    • Системы контроля версий. Git
    • Git. Установка
    • Git. Основы
    • Git. Основные команды
      • Настройка
      • Работа с репозиторием
      • Работа с удаленным сервером
      • Работа с ветками
Powered by GitBook
On this page
  1. Язык Java. Основы

Типы данных

В Java существуют следующие базовые типы данных:

Тип данных

Объем занимаемой памяти

Диапазон значений

Значение по умолчанию

byte

1 байт

Целые числа -128 : 127

0

short

2 байта

Целые числа -32768 : 32767

0

int

4 байта

Целые числа -2147483648 : 2147483647

0

long

8 байт

Целые числа -2^63 : 2^63

0L

float

4 байта

Вещественные 1.4e-45 : 3.4e+38

0.0f

double

8 байт

Вещественные 4.9e-324 : 1.8e+308

0.0d

char

2 байта

Натуральные 0:65535

'\u0000'

boolean

1 байт (минимум)

false или true

false

Приведение типов

Автоматическое (неявное) приведение типов

int a = 5;
int b = 10;
double c = a + b;

Внимание!

byte x = 2;
byte y = x + 2;

Выдаст ошибку, т.к. неявное приведение типов к менее точному не работает.

Ручное (явное) приведение типов

double a = 3.5;
int b = (int) a;

С учетом этого приведем рассмотренный ранее пример к рабочему виду

byte x = 2;
byte y = (byte) (x + 2);

Вопрос 1.

Для чего нужна типизация данных? Какой цели служит разграничение различных типов данных?

Вопрос 2.

Какой тип данных лучше использовать, для хранения числового значения, которое по логике программы не сможет быть больше 100? Почему?

Вопрос 3.

Как вы думаете, почему неявное приведение типов работает только в одном направлении — от менее точных к более точным типам?

Рассмотрите следующий пример:

double a = 17.6;
double b = 14.8;

int c = (int)(a + b);
int d = (int)a + (int)b;

Какие значения будут присвоены переменным c и d? Почему?

PreviousПеременныеNextСтроки

Last updated 3 years ago