Существуют два типа языков программирования. Первый это строго типизированный язык, где тип каждой переменной и выражений заранее известен при компилировании. Если переменная создана с одним типом, то в нее нельзя записать данные другого типа. Например, C, C++, Java. Есть языки с динамическими типами: такие языки могут записывать в переменный разные типы данных, например, Ruby, Python.

Java это строго типизированный язык программирования потому что в Java, каждый тип данных уже задан (integer, character, boolean и так далее) как часть языка программирования и все константы, переменные, которые вы будете объявлять в своих программах должны быть определенного типа.

В Java есть две категории типов:

  • Примитивные типы данных (int, character, boolean и т.д.)
  • Объектные типы (типы, созданные программистами)

Примитивные типы данных

Примитивные типы данных могут иметь только одно значение, они не имеют специальных возможностей. Всего в Java существуют 8 примитивных типов.

Java data types

boolean

Этот тип представляет только один бит информации либо true, либо false. Значения этого типа не конвертируются в значения другого типа прямо или косвенно. Однако, программист может быстро написать код для конвертации.

// A Java program to demonstrate boolean data type
class GeeksforGeeks
{
    public static void main(String args[]) 
    {
        boolean b = true;       
        if (b == true)
            System.out.println("Hi Geek");
    }    
}

byte

Этот тип состоит из 8 бит в которых содержится двоичный код. Тип byte очень полезный для оптимизации работы с памятью в больших массивах.

Размер: 8-bit Значения: -128 to 127

// Java program to demonstrate byte data type in Java
class GeeksforGeeks
{
    public static void main(String args[]) 
    {
        byte a = 126;

        // byte is 8 bit value
        System.out.println(a);
       
        a++;
        System.out.println(a);
        
        // It overflows here because
        // byte can hold values from -128 to 127
        a++;
        System.out.println(a);
        
        // Looping back within the range
        a++;
        System.out.println(a);
    }    
}

short

Размер этого типа 16 бит. Как и тип byte, очень полезен для оптимизации памяти в больших массивах.

Размер: 16 bit Значения: -32,768 to 32,767 (inclusive)

int

Этот тип размером 32 бита.

Размер: 32 bit Значения: -231 to 231 -1 Заметка: В Java SE8 и позднее, мы можем использовать int для того чтобы представить значение без знака, которое может быть в диапазоне [0, 232-1]. Используйте тип Integer, чтобы использовать int как значение без знака.

long

Этот типа размером 64 бита.

Размер: 64 bit Значения: -263 to 263-1. Заметка: в Java SE 8 и выше, можно использовать long, чтобы представить 64 битное значение long без знака, которое может быть в диапазоне от 0 до 264-1. Тип Long предоставляет такие методы как  compareUnsigned, divideUnsigned для различных математических операций.

Числа с плавающей точкой : float and double

float

Это 32 битный IEEE 754 тип c одинарной точностью. Используйте тип float (вместо double) если необходимо сохранить память в больших массивах данных с плавающей точкой.

Размер: 32 бит Суффикс : F/f Пример: 9.8f

double

Это 64 битный IEEE 754 тип c одинарной точностью. Для десятичных значения этот тип устанавливается по умолчанию.

Заметка: Значения типа float и double были разработаны для точных математических вычислений в которых допускается погрешность. Однако, если необходимо проводить более точные расчеты, то лучше использовать типа BigDecimal.

char

Этот тип для работы с одиночными 16 битными Unicode символами. char - это один символ.

Значения: ‘\u0000’ (or 0) to ‘\uffff’ 65535

// Java program to demonstrate primitive data types in Java
class GeeksforGeeks
{
    public static void main(String args[]) 
    {
        // declaring character
         char a = 'G';
         
        // Integer data type is generally 
        // used for numeric values
        int i=89;
        
        // use byte and short if memory is a constraint 
        byte b = 4;
        
        // this will give error as number is 
        // larger than byte range
        // byte b1 = 7888888955;
        
        short s = 56;
        
        // this will give error as number is 
        // larger than short range
        // short s1 = 87878787878;
        
        
        // by default fraction value is double in java
        double d = 4.355453532;
        
        // for float use 'f' as suffix
        float f = 4.7333434f;
       
        System.out.println("char: " + a); 
        System.out.println("integer: " + i); 
        System.out.println("byte: " + b); 
        System.out.println("short: " + s); 
        System.out.println("float: " + f); 
        System.out.println("double: " + d); 
    }    
}

Этот материал является переработанной версией этой статьи.