Типы данных в Java: примитивные и непримитивные типы данных
Опубликовано: 2020-12-01Оглавление
Введение
В любом языке программирования тип данных — это атрибут данных, который позволяет компьютеру или компилятору узнать, как программисты хотят назначать данные. Тип данных добавляет ограничение к переменным или функции при присвоении значений.
Эти типы данных определяют поведение данных, например способ хранения значений этого типа и операции, которые можно выполнять с данными. Давайте посмотрим на все типы данных, предоставляемые java.
Примитивные типы данных
Примитивный тип данных не может быть далее разделен на более простой тип данных. Java предоставляет 8 примитивных типов данных, давайте изучим их!
Байт
Байт — это целочисленный тип, в котором хранятся целые числа в диапазоне от -128 до 127, это устраняет проблемы с ограничением памяти, если вы имеете дело с небольшими числами, поскольку для этого требуется только 1 байт памяти. Байтовую переменную можно объявить с помощью ключевого слова «byte». Присвоение байту значения выше 127 вызывает ошибку «несовместимые типы».
байт n1 = 98 ; Система . вне . печататьln(n1); |
Приведенный выше фрагмент выводит 98, как и ожидалось.
короткий
Short — это тип Integer, в котором хранятся целые числа в диапазоне от -32768 до 32767, он потребляет 2 байта памяти с диска. Короткая переменная может быть объявлена с помощью ключевого слова «short». Присвоение короткой переменной значения больше 32767 вызывает ошибку «несовместимые типы».

короткий n1 = 9876 ; Система . вне . печататьln(n1); |
Приведенный выше фрагмент выводит 9876 в качестве вывода.
Интерн.
Int — это целочисленный тип, в котором хранятся целые числа в диапазоне от -2147483648 до 2147483647, он занимает 4 байта памяти на диске. Как правило, программисты предпочитают больше использовать int для объявления переменной, которая хранит числовые значения. Компилятор Java выдает ошибку «несовместимые типы», если пытается присвоить значение, превышающее диапазон.
интервал n1 = 987654 ; Система . вне . печататьln(n1); |
Приведенный выше фрагмент выводит 987654 в качестве вывода.
Длинная
А вот это интересный тип данных, который занимает 8 байт памяти на диске. Это целочисленный тип, в котором хранятся целые числа в диапазоне от -9223372036854775808 до 9223372036854775807, уф, чтение этого диапазона занимает значительное количество времени.
Это используется, когда тип данных int переполняется для выполняемых нами операций. Помните, что нам нужно заканчивать значение буквой «L» при назначении.
длинный n1 = 987654321098765L ; Система . вне . печататьln(n1); |
Приведенный выше фрагмент выводит 987654321098765, как и ожидалось.
Плавать
Float — это тип данных с плавающей запятой, что означает, что он может хранить значения, включая их десятичную точность. Предположим, вы разработали код для записи всех ваших расходов, но вы достаточно строги и хотите отслеживать каждую потраченную копейку. В этом случае int не будет работать, потому что int может хранить только целые числа.
Для этой задачи нам нужен тип данных с плавающей запятой. Число с плавающей запятой может хранить дробные числа в диапазоне от 3.4e-038 до 3.4e+038 с точностью до 7 цифр. Помните, что вы должны заканчивать значение буквой «f».
число с плавающей запятой n = 98,76f ; Система . вне . распечатать(п); |
Приведенный выше фрагмент выводит 98,76 в качестве вывода.
Читайте: Свойства и преимущества JavaBeans: как использовать?
Двойной
Double похож на float, но, как следует из названия, он в два раза больше float в случае десятичной точности. Он может иметь 15-значную десятичную точность и может хранить дробные числа в диапазоне от 1,7e-308 до 1,7e+308. Помните, что вы должны заканчивать значение буквой «d».
Давайте рассмотрим код, чтобы понять разницу между float и double.
открытый класс Тест { public static void main ( String args[]) { поплавок a1 = 1.f / 70 ; поплавок b1 = 0 ; двойное а2 = 1.d / 70 ; двойное b2 = 0 ; поплавок f1 = 1f ; двойное f2 = 1d ; для ( int я = 0 ; я < 490 ; я ++ ) { б1 = б1 + а1; б2 = б2 + а2; если (я > 1 && я <= 50 ){ f1 = f1 * я; f2 = f2 * я; } } Система . вне . распечатать(b1); //линия 1 Система . вне . распечатать(b2); //строка2 Система . вне . распечатать(f1); //строка3 Система . вне . распечатать(f2); //строка4 } } |
Ручной расчет выражения «(1/70)*490» дает нам 7 в качестве ответа, но выполнение его в java с использованием float и double дает другой ответ. В приведенном выше фрагменте переменная с плавающей запятой и переменная типа double инициализированы 1/70, и добавление этого значения к другой переменной 490 раз должно дать нам 7 в качестве ответа.

При запуске приведенного выше фрагмента строка 1 печатает 6,9999795, что имеет 7-значную десятичную точность, тогда как строка 2 печатает 6,999999999999978, что имеет 15-значную десятичную точность. Поэтому, если float не обеспечивает точной десятичной точности, вы можете выбрать double. Кроме того, число с плавающей запятой с большей вероятностью достигнет бесконечности, поскольку диапазон числа с плавающей запятой меньше по сравнению с двойным.
Например, если вы храните факториал значительно большого числа, эта переменная достигает бесконечности. Из приведенного выше фрагмента мы видим, что есть две переменные, используемые для хранения факториала 50, и в то время, когда мы печатаем результат, строка 3 печатает бесконечность, а строка 4 печатает 3,0414093201713376E64, поэтому, если float не соответствует вашему числовому значению диапазон, то вы можете выбрать двойной.
И float, и double могут использоваться как научные числа с буквой «e», где «e» обозначает степень числа 10. Например, 3e2f эквивалентно 300,0 в типе данных float, а 3e4d эквивалентно 30000,0 в типе данных double.
логический
Логический тип данных может принимать только два значения true и false. Он объявляется с помощью ключевого слова boolean в java. Этот тип данных обычно используется в качестве переменной флага для отслеживания изменений, которые мы делаем в коде. Например, установка флага в значение true, если число делится на 2, в противном случае — false.
логический флаг = истина ; логическое значение b1 = ложь ; Система . вне . println(флаг); // печатает истину Система . вне . распечатать(b1); // печатает ложь |
Чар
Тип данных char используется для хранения одного символа, этот тип данных может быть объявлен с использованием ключевого слова char. Помните, что мы должны заключать символ в одинарные кавычки при назначении, он может хранить как строчные, так и прописные символы в типе данных char.
Сохранение более одного символа в типе данных char вызывает ошибку. Кроме того, есть забавный факт, касающийся типа данных char, а именно: приведение типа char к целочисленному хранению значения ASCII этого символа, и наоборот, также верно.
символ с1 = ' а ' ; символ с2 = 66 ; Система . вне . распечатать(с1); //линия 1 Система . вне . распечатать(с2); //строка2 Система . вне . println(( int )c1); //строка3 |
В приведенной выше строке фрагмента 1 печатает «a» в качестве вывода, как и ожидалось. Строка 2 выводит «B» в качестве вывода, поскольку 66 относится к B в таблице ASCII. Строка 3 выводит 97 в качестве вывода, так как это значение ASCII "a".
Но что, если мы хотим сохранить более одного символа? Мы вернемся к ним в следующих абзацах.
Читайте также: 17 интересных идей и тем для Java-проектов для начинающих
Непримитивные типы данных
Непримитивные типы данных в java также называются ссылочными типами, поскольку они относятся к объектам. Непримитивные типы данных создаются программистом и не являются предопределенными. Поскольку не-примитивы называются объектами, им можно присвоить нуль, чего нельзя сказать о примитивном типе.
В отличие от примитивных типов данных, не примитивный тип данных должен начинаться с заглавной буквы. Все непримитивные типы данных имеют одинаковый размер и занимают одинаковую память на диске, которая отличается в случае примитивных типов данных.
Нить
Строка — это особый тип данных в java, где это противоречит тому факту, что непримитивные типы определяются программистами. Строковый тип данных не является примитивным типом данных, но он предопределен в java, некоторые люди также называют его специальным девятым примитивным типом данных.
Это решает случай, когда char не может хранить несколько символов, для хранения последовательности символов используется строковый тип данных. Помните, что вам нужно заключить последовательность текста в двойные кавычки.
Строка s1 = « Привет! » ; Система . вне . распечатать(s1); |
Приведенный выше фрагмент напечатает «Hey There», как и ожидалось.
Массивы, классы, интерфейсы и т. д. — это несколько других непримитивных типов данных в java.
Как рассчитать диапазон типов данных?
После просмотра диапазонов примитивных типов данных у вас может возникнуть сомнение, а нужно ли нам это помнить? Что ж, ответ будет НЕТ. Но нам нужно помнить размер каждого типа данных, а затем мы можем вычислить диапазон этого типа данных.
Например, тип данных byte занимает 1 байт памяти на диске. На уровне компилятора все данные хранятся в виде битов и в одном байте 8 бит. Теперь один из 8 бит используется для указания знака числа, а оставшиеся 7 бит могут хранить фактическое число, поэтому максимальное число, которое мы можем сохранить, используя 7 бит, равно 128.
Таким образом, -128 — это нижний предел байтового типа данных, а +127 — верхний предел, потому что ноль — это первое число в числовой строке после отрицательных чисел.
Точно так же в типах с плавающей запятой данные разбиваются на 3 части: бит со знаком, мантисса и экспонента. Часть мантиссы используется для хранения десятичной точности, число с плавающей запятой имеет 23 бита мантиссы плюс один скрытый бит, а двойное число имеет 52 бита мантиссы плюс один скрытый бит.
Для числа с плавающей запятой log(2^24)/log(10), что приблизительно равно 7, то есть десятичная точность 7 цифр.
Для двойного числа log(2^53)/log(10), что приблизительно равно 15, то есть десятичная точность 15 цифр.

Запишитесь на курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Заключение
Мы увидели различные типы данных в java, поняли примитивные и непримитивные типы данных, разницу между примитивными и непримитивными. Прошелся по примерам фрагментов кода, чтобы получить базовые знания об объявлении типов данных.
Понял, как вычислить диапазон различных типов данных целочисленных типов данных, как вычислить десятичную точность типов данных с плавающей запятой.
Теперь, когда вы знакомы с различными типами данных в Java, начните их изучать!
Если вам интересно узнать больше о Java, ООП и разработке программного обеспечения с полным стеком, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов интенсивного обучения. Более 9 проектов и заданий, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.
