logo

Референтни типове данни в Java

Java предлага два вида

Референтни типове на Java

В Java има следните пет типа референтни типове:

Референтен тип Описание
Клас Това е набор от инструкции. Той описва съдържанието на обекта.
Масив Той осигурява структура от данни с фиксиран размер, която съхранява елементи от един и същи тип.
анотации Той предоставя начин за свързване на метаданни с програмни елементи.
Интерфейс Реализира се от Java класове.
Изброяване Това е специален вид клас, който е безопасен за тип. Всеки елемент вътре в enum е екземпляр на този enum.

Референция срещу примитивни типове данни

Референтен тип Примитивен тип
Не е предварително дефиниран освен низа. Той е предварително дефиниран в Java.
Всички референтни типове започват с главна буква. Всички примитивни типове започват с малка буква.
Непримитивните типове имат еднакъв размер. Размерът на примитивен тип зависи от типа данни.
Използва се за извикване или извикване на методи. Не можем да извикаме метода с примитивен тип.
Може да е нула. Не може да бъде нула. Винаги има стойност.
Примери за референтни типове данни са клас, масиви, низ, интерфейс и др. Примери за примитивни типове данни са int, float, double, Boolean, long и др.
JVM заделя 8 байта за всяка референтна променлива по подразбиране. Размерът му зависи от типа данни.
Пример : Демо d1; Пример : int num=78;

Разпределение на паметта и събиране на боклука

В Java, нова ключова дума се използва за създаване на инстанция на класа. С други думи, той създава клас чрез разпределяне памет за нов обект и връщане на препратка към тази памет. Обектите заемат памет в Java heap пространството. Можем също да използваме новата ключова дума, за да създадем обект масив .

 ClassName objectName = new ClassName(); 

Ако няма препратки към даден обект, паметта, използвана от този обект, може да бъде възстановена по време на процеса на събиране на отпадъци.

Преобразуване между примитивен тип и референтен тип

Извиква се преобразуването на примитивен тип в референтен тип автобокс и се извиква преобразуването на референтния тип в примитивен тип разопаковане .

Сравняване на референтен тип

Можем също да сравним референтните типове в Java. Java предоставя два начина за сравняване на референтни типове:

Чрез използване на оператора за равенство (==).

Той сравнява местоположенията на паметта на обектите. Ако адресът на паметта (референцията) на двата обекта е еднакъв, обектите са равни. Имайте предвид, че не сравнява съдържанието на обекта. Например:

 Demo d1 = new Demo('Atlanta'); //creating a reference of Demo class Demo d2 = d1; //assigning the reference d1 into d2 if(d1=d2) //comparing reference 

С помощта на метода String.equals().

Методът принадлежи към низ клас. Той отменя равно на() метод на Обект клас . Той също така използва оператора за равенство (==) за сравняване на референтния тип. Например, разгледайте следния кодов фрагмент:

 String str1='JAVA'; String str2='JAVA'; String str3='java'; System.out.println(str1.equals(str2)); //returns true because content and case is same System.out.println(str1.equals(str3)); //returns false because case is not same 

Копиране на референтен тип

Има две възможности, когато копираме референтни типове, или се прави копие на препратката към обект, или се прави действително копие (създаване на ново копие) на обекта.

В следващия пример сме присвоили препратка към обекта. Ако сме направили някакви промени в обекта, той също ще отразява препратката и обратно.

 Sum s1 = new Sum(); Sum s2= s1;