Примитивный тип данных и тип данных Object в Java с примерами

Опубликовано: 1 Декабря, 2021

Примитивный тип данных : в Java примитивные типы данных являются предопределенными типами данных Java. В них указывается размер и тип любых стандартных значений. В Java есть 8 примитивных типов данных, а именно byte, short, int, long, float, double, char и boolean. Когда сохраняется примитивный тип данных, значения будут присвоены стеку. Когда переменная копируется, создается другая копия переменной, и изменения, внесенные в скопированную переменную, не будут отражать изменения в исходной переменной. Вот программа на Java, демонстрирующая все примитивные типы данных в Java.

Тип данных объекта : их также называют непримитивным или ссылочным типом данных. Они так называются, потому что относятся к каким-то конкретным объектам. В отличие от примитивных типов данных, непримитивные типы данных создаются пользователями в Java. Примеры включают массивы, строки, классы, интерфейсы и т. Д. Когда ссылочные переменные будут сохранены, переменная будет сохранена в стеке, а исходный объект будет сохранен в куче. В типе данных Object, хотя будут созданы две копии, они обе будут указывать на одну и ту же переменную в куче, поэтому изменения, внесенные в любую переменную, будут отражать изменение обеих переменных. Вот программа Java для демонстрации массивов (тип данных объекта) в Java.

Разница между примитивным и объектным типами данных в Java:

Теперь давайте посмотрим на программу, которая демонстрирует разницу между примитивными и объектными типами данных в Java.

Ява

import java.lang.*;
import java.util.*;
class GeeksForGeeks {
public static void main(String ar[])
{
System.out.println( "PRIMITIVE DATA TYPES " );
int x = 10 ;
int y = x;
System.out.print( "Initially: " );
System.out.println( "x = " + x + ", y = " + y);
// Here the change in the value of y
// will not affect the value of x
y = 30 ;
System.out.print( "After changing y to 30: " );
System.out.println( "x = " + x + ", y = " + y);
System.out.println(
"**Only value of y is affected here "
+ "because of Primitive Data Type " );
System.out.println( "REFERENCE DATA TYPES " );
int [] c = { 10 , 20 , 30 , 40 };
// Here complete reference of c is copied to d
// and both point to same memory in Heap
int [] d = c;
System.out.println( "Initially" );
System.out.println( "Array c: "
+ Arrays.toString(c));
System.out.println( "Array d: "
+ Arrays.toString(d));
// Modifying the value at
// index 1 to 50 in array d
System.out.println( " Modifying the value at "
+ "index 1 to 50 in array d " );
d[ 1 ] = 50 ;
System.out.println( "After modification" );
System.out.println( "Array c: "
+ Arrays.toString(c));
System.out.println( "Array d: "
+ Arrays.toString(d));
System.out.println(
"**Here value of c[1] is also affected "
+ "because of Reference Data Type " );
}
}
Выход
 ПЕРВИЧНЫЕ ВИДЫ ДАННЫХ

Первоначально: x = 10, y = 10
После изменения y на 30: x = 10, y = 30
** Здесь затрагивается только значение y из-за примитивного типа данных

ВИДЫ СПРАВОЧНЫХ ДАННЫХ

Первоначально
Массив c: [10, 20, 30, 40]
Массив d: [10, 20, 30, 40]

Изменение значения с индекса 1 до 50 в массиве d

После модификации
Массив c: [10, 50, 30, 40]
Массив d: [10, 50, 30, 40]
** Здесь значение c [1] также зависит от ссылочного типа данных.

Давайте посмотрим на разницу между примитивным и объектным типом данных в табличной форме.

Характеристики Примитивные типы данных Объекты
Источник Предопределенные типы данных Типы данных, определяемые пользователем
Сохраненная структура Хранится в стопке Ссылочная переменная хранится в стеке, а исходный объект хранится в куче
При копировании Создаются две разные переменные с разными присваиваниями (одинаковые только значения) Созданы две ссылочные переменные, но обе указывают на один и тот же объект в куче.
Когда вносятся изменения в скопированную переменную Изменения не отражаются в исходных. Изменения отражены в исходных.
Значение по умолчанию Примитивные типы данных не имеют значения NULL в качестве значения по умолчанию Значение по умолчанию для ссылочной переменной - null.
Пример byte, short, int, long, float, double, char, логическое значение массив, строковый класс, интерфейс и т. д.

Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .