Типы данных в java
1. Обзор видов данных
Любой язык программирования имеет набор вида данных, виды данных являются базовыми, и они довольно похожи для всех языков. Все виды данных созданы из bit, поэтому я представляю отдельную статью про историю bit и byte. Мой совет вам прочитать ее перед тем, как продолжить с данной статьей.
Java имеет 2 вида данных:
- Примитивные виды данных (Primitive Data Types)
- Ссылочные виды данных (Reference Types)
Существует 8 видов примитивных данных(Primitive Data type) это: boolean, byte, char, short, int, long, float, double.
Вид данных | Значение по умолчанию | Размер |
boolean | false | 1 bit |
char | '\u0000' | 2 byte |
byte | 0 | 1 byte |
short | 0 | 2 byte |
int | 0 | 4 byte |
long | 0L | 8 byte |
float | 0.0f | 4 byte |
double | 0.0d | 8 byte |
- Вид logic: boolean.
- Целочисленные виды (integer): byte, short, char, int, long.
- Виды реальных чисел (real number) (Так же называются плавающей запятой (floating point)): float, double.
Виды ссылок, это объекты созданные с помощью Constructor классов.
2. byte
1 byte это 8 bit расположенных последовательно друг с другом в памяти компьютера. Каждый bit это бинарное число 0 или 1. Java с названием "byte" для целочисленного вида (integer) с малым диапазоном (Размер 1 byte).
Первый bit в ряди состоящей из 8 bit со значением 0 или 1.
Но подождите, он должен быть [-128, 127], почему?
- Если это 0, Java считает его + (Представляет положительные числа)
- Если это 1, Java считает его - (Представляет отрицательные числа)
Но подождите, он должен быть [-128, 127], почему?
Почему наименьшее число вида byte в Java является -128?
Если по правилам первый bit имеет значение 0 эквивалентное знаку +, значение 1 эквивалентное знаку -, то у нас есть 2 способа для представления числа 0 (Смотрите изображение).
Поэтому двоиная последовательность "1 0 0 0 0 0 0" должна быть рассмотрена, как наименьшее число вида данных byte в Java, она представляет -128.
3. boolean
boolean является самым простым видом данных, имеет размер 1 bit. Имеет 2 значения это true и false.
Значение по умолчанию для вида boolean это false.
// Объявить переменнуюю с названием 'valid', вида boolean.
// Она будет иметь значение false (По умолчанию).
boolean valid;
// Объявить переменнуюю с названием 'active', вида boolean.
// Значение true.
boolean active = true;
4. char
Несмотря на то, что "char" является 4 первыми символами слова "Character" (Символ), но вид char в Java используется для хранения целыъ неотрицательных чисел (Non-negative integers) с размером 2 byte. Он так же используется для представления одного символа Unicode, потому что каждый символ соответствует определенному числу (Данное число понимается как код символа).
Потому что char является целым неотрицательным числом, размер 2 byte, поэтому его диапазон это [0, 2*16-1] ( [0, 65535] ).
Когда char понимается как символ Unicode, наименьший символ является '\u0000' (Код 0), и наибольший символ является '\uffff' (Код 65535).
Что такое символ Unicode?
- TODO
5. short
short это вид данных для представления целого числа 2 byte (16 bit), включая целое отрицательное число.
- Наименьшим значением является -32,768 (-2^15) и наибольшим значением является 32,767 (2^15 -1).
- Значением по умолчанию является 0.
** Примечание: Смотрите больше объяснение для определения положительного или отрицательного числа в части вида данных byte.
6. int
Вид данных int используется для представления целого числа с размером 4 byte (32 bit).
- Наименьшее значение: -2,147,483,648 (-2^31)
- Наибольшее значение: 2,147,483,647 (2^31 -1)
- Значение по умолчанию 0.
В Java, вид данных int считается видом значения пол умолчанию для целых чисел. Поэтому, если вы напишете число 100, Java создаст 4 byte регион в памяти для хранения. А если вы хотите, чтобы Java создал 8 byte регион памяти для хранения числа 100, вам нузно написать 100L. (long является целым числом вида 8 byte, представленный в нижней части).
int a = 100;
7. long
Вид данных long используется для представления целых чисел с размером до 8 byte (64 bit).
- Наименьшее значение это -9,223,372,036,854,775,808.(-2^63)
- Наибольшее значение это 9,223,372,036,854,775,807. (2^63 -1)
- Данный вид используется когда нужен диапазон значений шире чем int.
- Значением по умолчанию является 0L.
// You need to add 'L' immediately after 100
// so that Java creates an 8 byte memory area to store 100
long a = 100L;
8. float
Вид данных float используется для представления реальных чисел (real number) с размером 4 byte (32 bit).
- Наименьшее значение: -3.4028235 x 10^38
- Наибольшее значение: 3.4028235 x 10^38
- Значение по умолчанию 0.0f
Пример:
float value = 2.5f;
9. double
Вид данных double используется для представления реальных чисел (real number) с размером 8 byte (64 bit). Это вид по умолчанию для вида реальных чисел.
- Наименьшее значение: -1.7976931348623157 x 10^308
- Наибольшее значение: 1.7976931348623157 x 10^308
- Значение по умолчанию 0.0d
Пример:
double a = 2.5d;
// Так как double является видом по умолчанию для реальных чисел,
// Вы можете написать кратко:
double b = 2.5;
10. Ссылочный вид (Reference Type)
В Java вид данных создается с помощью комбинации примитивных видов, которые называются ссылочным видом (Reference type). Наиболее распространенный ссылчный вид который используется это String, он является комбинацией символов.
Ссылочные виды созданы на основании класса. Класс (class) похож на план (blueprint) для определения ссылочного вида.
class Address {
String address;
String cityName;
}
class Student {
String fullName;
int age;
Address address;
}
Java Basic
- Настройте java compiler для обработки вашего Annotation (Annotation Processing Tool)
- Программирование на Java для группы с помощью Eclipse и SVN
- Руководство Java WeakReference
- Руководство Java PhantomReference
- Сжатие и декомпрессия в Java
- Настройка Eclipse для использования JDK вместо JRE
- Методы String.format() и printf() в Java
- Синтаксис и новые функции в Java 8
- Регулярные выражения Java
- Руководство Java Multithreading Programming
- Библиотеки Java JDBC Driver для различных типов баз данных
- Руководство Java JDBC
- Получить значения столбцов, автоматически возрастающих при вставлении (Insert) записи, используя JDBC
- Руководство Java Stream
- Руководство Java Functional Interface
- Введение в Raspberry Pi
- Руководство Java Predicate
- Абстрактный класс и Interface в Java
- Модификатор доступа (Access modifiers) в Java
- Руководство Java Enum
- Руководство Java Annotation
- Сравнение и Сортировка в Java
- Руководство Java String, StringBuffer и StringBuilder
- Обработка исключений Java - Java Exception Handling
- Руководство Java Generics
- Манипулирование файлами и каталогами в Java
- Руководство Java BiPredicate
- Руководство Java Consumer
- Руководство Java BiConsumer
- Что мне нужно для начала работы с Java?
- История Java и разница между Oracle JDK и OpenJDK
- Установить Java в Windows
- Установите Java в Ubuntu
- Установите OpenJDK в Ubuntu
- Установить Eclipse
- Установите Eclipse в Ubuntu
- Быстрое изучение Java для начинающих
- История бит и байтов в информатике
- Типы данных в java
- Битовые операции
- Команда if else в Java
- команды switch в Java
- Циклы в Java
- Массивы (Array) в Java
- JDK Javadoc в формате CHM
- Наследование и полиморфизм в Java
- Руководство Java Function
- Руководство Java BiFunction
- Пример Java encoding и decoding с использованием Apache Base64
- Руководство Java Reflection
- Java Удаленный вызов методов - Java RMI
- Руководство Программирование Java Socket
- Какую платформу я должен выбрать для разработки приложений Java Desktop?
- Руководство Java Commons IO
- Руководство Java Commons Email
- Руководство Java Commons Logging
- Понимание Java System.identityHashCode, Object.hashCode и Object.equals
- Руководство Java SoftReference
- Руководство Java Supplier
- Аспектно-ориентированное программирование Java с помощью AspectJ (AOP)
Show More
- Руководства Java Servlet/JSP
- Руководства Java Collections Framework
- Java API для HTML, XML
- Руководства Java IO
- Руководства Java Date Time
- Руководства Spring Boot
- Руководства Maven
- Руководства Gradle
- Руководства Java Web Services
- Руководства Java SWT
- Руководства JavaFX
- Руководства Oracle Java ADF
- Руководства Struts2 Framework
- Руководства Spring Cloud