Простые типы данных — byte, short, int, long, в примерах — введение в Java #004

Простые типы данных

Простые типы данных
Чтобы вызвать на экран что то больше, чем "Привет, Мир!" надо работать с числами, символами и буквами. Чтобы работать с ними в Java - надо их научиться хранить и передавать. Для этого нам надо познакомиться с понятием типы данных, а точнее "простые типы данных".
Существуют следующие базовые типы данных:
byte, short, int, long, float, double, char, string, boolean.

Целочисленные типы данных
Мы начнём знакомство с базовыми типами данных с int.
С помощью целочисленного типа данных, а именно так и переводится "integer" мы храним в int целые числа. Для визуализации можно попробовать представить себе следующие примеры:

  • Общепринятая нумерация домов во всем мире использует целые числа: ул. Грибоедова 15, ул. Каштановая 10, пятое Авеню 457 и т.д..
  • Перекличка в классе тоже возможна с помощью типа данных int — первый, второй, третий, четвёртый....
  • Числа Фибоначчи 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55...
  • Возведение одного простого числа в степень другого простого числа - например 2 в степени 7 = 128.

В Java мы можем записать последний пример как:

  1. public class HalloInteger {
  2.     public static void main(String[] args) {
  3.         // Возводим а в степень б, и выводим результат на экран.
  4.         int a = 2;
  5.         int b = 3;
  6.         int c = (int)Math.pow(a, b)
  7.         System.out.println("Число a в степени b = " + c);
  8.         // Найдём периметр квадрата.
  9.         int d = 4;
  10.         System.out.println("Периметр квадрата со стороной d => P = " + 4 * d);
  11.     }
  12. }

В Java есть несколько типов данных для хранения целых чисел, это — byte, short, int, long. Принципиально они различаются только размером. Для хранения числа в "int" надо 4 байта, если же речь идёт о таблице Менделеева или о простых задачах, то мы можем обойтись и примитивным типом данных "byte". Именно столько занимает места этот тип данных, 1 байт (byte) или 8 бит. Давайте посмотрим таблицу:

Тип Размер (бит) Диапазон
byte 8 бит от -128 до 127
short 16 бит от -32768 до 32767
int 32 бит от -2147483648 до 2147483647
long 64 бит от -9223372036854775808 до 9223372036854775807

2 в восьмой степени = 256. Именно столько можно запомнить в примитивном типе данных переменных byte. От -128 до 127 мы можем работать с любым числом в десятичной системе, включительно ноль.
Например вот так:

  1. public class Byte257 {
  2.     public static void main(String[] args) {
  3.         byte a = 1;
  4.         byte b = 127;
  5.         // Ищем "границы" типа данных байт.
  6.         byte c = (byte) (a + b);  
  7.         System.out.println(c);
  8.     }
  9. }

Нам надо помнить только, что byte это 8 бит, short - 16 бит, int -32 бита, long - 64 бита.
Обычно возникают 2 вопроса. Какой тип данных использовать и зачем эти 4 типа "одинаковых" данных?

Разные типы данных сложились исторически. Из за особенностей x86-процессоров. Всё, что нам надо помнить это то, что экономя размер ячейки для хранения мы экономим место, процессорное время, RAM компьютера или прибора пользователя и на планете не умирают котики...
Если постоянно всё писать просто в long, то наша программа будет занимать неоправданно много места, она будет "есть" память и доставлять неудобства. И действительно зачем использовать программу в 8 гигабайт, если можно сделать её как минимум в восемь раз меньше?

Ещё раз для закрепления:

  1. public class IntegerTypes {
  2.     public static void main(String[] args) {
  3.         byte a = 111;
  4.         short b = 1111;
  5.         int c = 7777777;
  6.         long d = 2_358_765_649L;
  7.         // Постфикс l или L обозначает литералы типа long.
  8.         // L нужна только за границами int.
  9.         // В Java можно использовать подчёркивания для визуального разделения чисел.
  10.         // 2_358_765_649 = 2358765649, для программы разницы нет.
  11.         System.out.println(a);
  12.         System.out.println(b);
  13.         System.out.println(c);
  14.         System.out.println(d);
  15.     }
  16. }

Домашнее задание:
Найдите применение каждому типу данных из заголовка и напишите программу с использованием byte, short, int, long.
Например: Найти периметр квадрата, прямоугольника, куба, количество зёрен на шахматной доске и тд

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

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
Target Image